LoginSignup
0
0

There are no versions of nokogiri (~> 1.14) compatible with your Ruby & RubyGems.

Last updated at Posted at 2024-04-10

Railsに挑戦しようと、かの有名なRuby on Railsチュートリアルに挑戦することにした。
その際に、最初のRailsのインストールで表題のエラーで躓いたので、備忘録としてこちらを執筆。

まずは下記のコマンドでRailsをバージョン指定でインストールしろとのこと。

gem install rails -v 7.0.4.3

上記のコマンドを実行したが、下記のエラーに遭遇。

Fetching nokogiri-1.16.4-x86_64-darwin.gem
ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions for the /Library/Ruby/Gems/2.6.0 directory.

sudoをつけて回避しようと試みる。

sudo gem install rails -v 7.0.4.3

ところが、次は下記のエラーに遭遇。

ERROR:  Error installing rails:
	    There are no versions of nokogiri (~> 1.14) compatible with your Ruby & RubyGems. Maybe try installing an older version of the gem you're looking for?
	    nokogiri requires Ruby version >= 3.0, < 3.4.dev. The current ruby version is 2.6.10.210.

最後の1行で、自分のPCに現在インストールされているRubyにバージョンが古すぎることが判明する。

nokogiri requires Ruby version >= 3.0, < 3.4.dev. The current ruby version is 2.6.10.210.

なので、rubyのバージョンを3.0以上に上げることとする。

ググったところ、rubyをバージョン指定してインストールする方法にrbenvなるものがあるらしいので、こちらを採用する。(詳しくはこちらを参照。)

rbenv -lコマンドでインストールできるrubyのバージョンを表示させたところ、複数個のバージョンが存在した。

$ rbenv install -l
3.0.6
3.1.4
3.2.3
3.3.0

何も考えず()に最も数字が大きいバージョンをインストールする。

$ rbenv install 3.3.0
ruby-build: using openssl@3 from homebrew
==> Downloading ruby-3.3.0.tar.gz...

(中略)

Installed ruby-3.3.0 to /Users/(わしのユーザー名)/.rbenv/versions/3.3.0

NOTE: to activate this Ruby version as the new default, run: rbenv global 3.3.0

今インストールしたバージョンをRubyのデフォルトに設定したいので、下記を実行。

rbenv global 3.3.0

ここで、ruby -vコマンドを実行してrubyのバージョン確認を行ったところ、下記が表示。

$ ruby -v
ruby 2.6.10p210 (2022-04-12 revision 67958) [universal.arm64e-darwin23]

おやおや、3.3.0をインストールしたつもりだったが、rubyのバージョンが変わっていないじゃないか。

そこで、今度はrbenv global 変わらないで検索(入力途中でサジェストされたため、同様のポイントで詰まっている人が他にも多数いる模様)。

下記のQiita記事に辿り着き、「解決策」という見出しにあるコマンドを実行。

結論、下記のコマンドを実行することで自分は解決。

$ source ~/.bash_profile

これを実行したあと、実際にruby --versionを実行したところ、無事に下記を得ることができた。

$ ruby --version
ruby 3.3.0 (2023-12-25 revision 5124f9ac75) [arm64-darwin23]

ruby自身のバージョンを上げることができたため、再度Railsのインストールを試みる。

sudo gem install rails -v 7.0.4.3

その結果が下記。

sudo gem install rails -v 7.0.4.3

(中略)

Successfully installed actioncable-7.0.4.3
Successfully installed rails-7.0.4.3
36 gems installed

A new release of RubyGems is available: 3.5.3 → 3.5.7!
Run `gem update --system 3.5.7` to update your installation.

なにやら最後にRubyGemsのバージョンアップを支持されているので、こちらもそのまま実行。

$ gem update --system 3.5.7
Updating rubygems-update
Fetching rubygems-update-3.5.7.gem
Successfully installed rubygems-update-3.5.7

(中略)

RubyGems installed the following executables:
	/Users/tomoyasusunagawa/.rbenv/versions/3.3.0/bin/gem
	/Users/tomoyasusunagawa/.rbenv/versions/3.3.0/bin/bundle
	/Users/tomoyasusunagawa/.rbenv/versions/3.3.0/bin/bundler

RubyGems system software updated

再度、Railsのインストールを試みる。

$ sudo gem install rails -v 7.0.4.3
Successfully installed rails-7.0.4.3
1 gem installed

ここで、インストールしたrailsのバージョンを確認しようとrails -vコマンドを実行したところ、下記が表示。

$ rails -v
Rails is not currently installed on this system. To get the latest version, simply type:

    $ sudo gem install rails

You can then rerun your "rails" command.

おやおや、sudo gem install railsコマンドは直前で叩いているじゃないか。

一応念のため、もう一回言われたコマンドを実行してみる。

$ sudo gem install rails -v 7.0.4.3
Successfully installed rails-7.0.4.3
1 gem installed

$ rails -v
Rails is not currently installed on this system. To get the latest version, simply type:

    $ sudo gem install rails

You can then rerun your "rails" command.

なんだこれ、無限に同じ場所の繰り返しじゃないか、、、。

そう思いこれもググってみたところ、この件についても先輩がすでに対処されていた。

参考にしたのは下記のQiita記事。

この記事中のtl;drにあった下記にコマンドを何も考えずに実行。

$ hash -r

うん、何も表示されない。

この状態でrailsのバージョンを確認したところ、無事にバージョンが表示された。

$ rails -v
Rails 7.0.4.3

正直、hash -rコマンドの意味は全く分かっていない。
詳細を知りたい方は、先ほどのQiita記事を参照してみてほしい。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0