Techioz Blog

gem は、現在の Ruby バージョンが 2.5.0 ではないのに、なぜそれを教えてくれるのですか?

概要

コンテキスト: 変更を表示するたびに本番環境にデプロイする必要がなく、GitHub Pages サイトで作業できるように、Ubuntu 18.04 LTS に jekyll をインストールしようとしています。

状況は次のとおりです。 sudo gem install jekyll を実行すると、google-protobuf をインストールするように指示されます。 sudo gem install google-protobuf を実行すると、次のように表示されます。

rbenv バージョンを実行すると、システムに 2 つのバージョンがあることが表示されます

システムのバージョン 2.5.0 が問題の原因だと思いますが、ruby -v を実行すると次のような出力が表示されます。

rbenv グローバル出力の実行

したがって、システムがまだ 2.5.0 を使用していることは意味がありません。誰かが修正内容を明らかにしてもらえますか?

解決策

rbenv については知りませんが (rvm、asdf、その他の同様のツールについては)、Ruby バージョン管理者としての仕事は、異なるユーザー向けに異なる gem がインストールされた異なる/複数の Ruby 環境をセットアップすることです。

sudo gem install … を呼び出すと、高い権限を持つユーザー (スーパー ユーザー) がデフォルトで使用できるグローバル gem コマンドに解決される可能性があります。おそらく、rbenv はこの場合に設定されていないため、システム全体にインストールする Ruby および gem コマンドにフォールバックします。これは、Ubuntu 18.04 上の Ruby 2.5 であると思われます。

したがって、sudo を使用せずにコマンドを実行してみてください。これが失敗した場合は、システム全体のパッケージ (ライブラリ) をインストールする必要があるため、これを実現する方法については rbenv ドキュメントを参照してください。実行するコマンドのリスト (例: sudo apt install libprotobuf) が表示されたり、システムを変更するためのパスワードの入力を求められたりする場合があります。