Railsがインストールできない

※本サイトで紹介している商品・サービス等の外部リンクには、アフィリエイト広告が含まれる場合があります。

エラー内容

デイトラ中級編(DAY5)にてRubyの開発環境を作ったあと、Railsのインストールが出来ない

$ gem install rails -v "6.0.2.1"
  • OS:Mac(Sonoma)
  • 入れたいRuby:ruby 2.7.7
  • 入れたいRails:Rails 6.0.2.1

「nokogiri」のバージョンが異なる

ERROR:  Error installing rails:
	The last version of nokogiri (>= 1.8.5) to support your Ruby & RubyGems was 1.15.6. Try installing it with gem install nokogiri -v 1.15.6 and then running the current command again
	nokogiri requires Ruby version >= 3.0, < 3.4.dev. The current ruy version is 2.7.7.221.
chatGPTによる翻訳

「エラー: Railsのインストール中にエラーが発生しました:
 お使いのRuby & RubyGemsをサポートするnokogiriの最後のバージョンは1.15.6です。gem install nokogiri -v 1.15.6を試してから、現在のコマンドを再実行してください。
 nokogiriはRubyバージョン >= 3.0、< 3.4.devが必要です。現在のRubyバージョンは2.7.7.221です。」


対処法

エラーが出たので、指示どおりインストールしてみる

$ gem install nokogiri -v 1.15.6

再起動する

↓ インストールしたrubyのバージョンを確認する

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

このとき、rubyのバージョンが「2.7.7」から「2.6.10.210」になっていることに気が付かなかった
再起動後か、それ以前からは不明・・・

↓ rbenvのバージョンも確認する

rbenv versions
  system
* 2.7.7 (set by /Users/aya/.rbenv/version)

書き込み権限がありません。

$ gem install rails -v "6.0.2.1"

ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions for the /Library/Ruby/Gems/2.6.0 directory.
chatGPTによる翻訳

「エラー: gemを実行中にエラーが発生しました… (Gem::FilePermissionError)
 /Library/Ruby/Gems/2.6.0 ディレクトリに対する書き込み権限がありません。」


対処法

$ export GEM_HOME="$HOME/.gem"

こちらのコードは以下サイトを参考にしました。


nokogiriとrubyのバージョンが合わない

$ gem install rails -v "6.0.2.1"

(略)
Building native extensions. This could take a while...
Successfully installed racc-1.8.1
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.
chatGPTによる翻訳

「Railsのインストール中にエラーが発生しました:
 お使いのRuby & RubyGemsに互換性のあるnokogiri(~> 1.14)のバージョンはありません。探しているgemの古いバージョンをインストールしてみてください。
 nokogiriはRubyバージョン >= 3.0、< 3.4.dev が必要です。現在のRubyバージョンは2.6.10.210です。」

ruby (2.7.7)に合わせてnokogiri (1.15.6)を入れていたが、ruby(2.6.10.210)になっていたため発生したエラー

ここでようやくruby(2.6.10.210)に気がつく


ruby (2.7.7)を標準にしたい

MacOSがSonomaの場合、以下を実行しなければいけないことを発見する

$ echo 'source ~/.bash_profile' >> ~/.zshrc

デイトラ内に記載があったのに見落としていた

↓ ruby (2.7.7)にならない

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

$ rbenv rehash

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

対処法

↓ もう1文、必要なことを発見する

$ echo 'eval "$(rbenv init -)"' >> ~/.zshrc
$ source ~/.zshrc

こちらのコードは以下サイトを参考にしました。

↓ 無事にruby (2.7.7)に変更できた

$ rbenv global 2.7.7

$ ruby -v
ruby 2.7.7p221 (2022-11-24 revision 168ec2b1e5) [x86_64-darwin23]

gemのネイティブ拡張機能のビルドに失敗

$ gem install rails -v "6.0.2.1"

Building native extensions. This could take a while...
ERROR:  Error installing rails:
	ERROR: Failed to build gem native extension.
(中略)
Ensure you have either installed the shared-mime-info package for your distribution, or
obtain a version of freedesktop.org.xml and set FREEDESKTOP_MIME_TYPES_PATH to the location
of that file.
(以下略)
chatGPTによる翻訳

「ネイティブ拡張機能をビルド中です。これには時間がかかる場合があります…
エラー: Railsのインストール中にエラーが発生しました:
 エラー: gemのネイティブ拡張機能のビルドに失敗しました。」

(中略)

「使用しているディストリビューションに対応したshared-mime-infoパッケージがインストールされていることを確認するか、freedesktop.org.xmlのバージョンを入手して、そのファイルの場所をFREEDESKTOP_MIME_TYPES_PATHに設定してください。」


対処法

↓shared-mime-infoのインストールをしてみる

$ brew install shared-mime-info

こちらのコードは以下サイトを参考にさせていただきました。


再度実行

$ gem install rails -v "6.0.2.1"

インストール完了!!!

$ rails -v
Rails 6.0.2.1