railsチュートリアルの第6版をゲットして、Railsをインストールしようとしたら、2回ほど詰まったので、どう解決したかを書いていきます。
1. 開発環境
OS:Mac BigSur ver11.4
rbenv:1.1.2
ruby:3.0.1
shell:zsh
2. minemagic
エラーの内容
railsチュートリアルに記載のある、rails 6.0.3を入れるために
gem install rails -v 6.0.3
をしたところ、以下のエラーが出ました
ERROR: Error installing rails:
ERROR: Failed to build gem native extension.
current directory: /Users/shiorin/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/mimemagic-0.3.10/ext/mimemagic
/Users/shiorin/.rbenv/versions/3.0.1/bin/ruby -I/Users/shiorin/.rbenv/versions/3.0.1/lib/ruby/3.0.0 -rrubygems /Users/shiorin/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/rake-13.0.3/exe/rake RUBYARCHDIR\=/Users/shiorin/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/extensions/x86_64-darwin-20/3.0.0/mimemagic-0.3.10 RUBYLIBDIR\=/Users/shiorin/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/extensions/x86_64-darwin-20/3.0.0/mimemagic-0.3.10
rake aborted!
Could not find MIME type database in the following locations: ["/usr/local/share/mime/packages/freedesktop.org.xml", "/opt/homebrew/share/mime/packages/freedesktop.org.xml", "/opt/local/share/mime/packages/freedesktop.org.xml", "/usr/share/mime/packages/freedesktop.org.xml"]
minemagic-0.3.10で何か問題が起きているっぽい...
詳しく調べてみたところ、ライセンス関連の問題が起こっていることによる失敗のようでした。
Railsの一部であるactivestorageが依存しているmimemagic gemが、ライセンス関連の問題でrubygems.orgから取り下げられました。これにより、mimemagic <= 0.3.5に依存しているRailsアプリがbundle installに失敗するようになりました。
( mimemagicの最新動向 - HackMD より引用)
解決した方法
HackMDやエラーメッセージをみたところ、shared-mime-info
を入れたら解消されるとのことだったので、インストール
$ brew install shared-mime-info
ただその時に、xcode-select --install
をしなくてはいけないというエラーが出たので、実行したところサーバから入手できないとの表示が...
この現象はmacのバージョンが古いのが原因だったので、Big Surにアップデートしたところ、無事にshared-mime-info
を入れることができました
3. Rails is not currently installed on this system.
エラーの内容
shared-mime-info
が無事にインストールできたので、改めてrails 6.0.3を入れてみたところ
$ gem install rails -v 6.0.3
...
Successfully installed nio4r-2.5.7
Successfully installed actioncable-6.0.3
Successfully installed rails-6.0.3
17 gems installed
うまくいっていそうにも関わらず、sudoをつけて再インストールしてみても、railsコマンドがないというエラーが出続けました...
$ 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をつけてインストールしても、変わらずにrailsコマンドがないというエラーが出続ける...
ということで、railsを参照している元がのPATHを確認してみました。
$ which -a rails
/Users/shiorin/.rbenv/shims/rails
/usr/bin/rails
$ which rails
/usr/bin/rails
私は、rbenvからrubyを入れていたので、やっぱりrailsの参照元が違うことが原因そう
なので、railsがrbenvの方から参照するように、zsh_profileに以下を追加しました。
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
するとrailsの参照元が、rbenvになったので
晴れて、railsがインストールされたことを確認できました
$ rails -v
Rails 6.0.3
これで、無事にRailsチュートリアル_第6版のスタートがきれそうです
参考記事