(Ruby on Railsのインストールエラー(error reading '/dev/fd/9')の続きです。)
しかし苦難はまだまだここからでした。
#壁1 You don't have write permissions
インストールを試みたところ、以下のメッセージが...
$ gem install rails -v "5.2.4.1"
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /Library/Ruby/Gems/2.3.0 directory.
ここで、You don't have write permissions
を検索してみたところ、
gem installでpermissionエラーになった時の対応方法
Railsがインストールできないときの対応|You don't have write permissionsとでてしまう
という記事があったので試してみたのですが、
$ which gem
/Users/ken/.rbenv/shims/gem
$ which ruby
/Users/ken/.rbenv/shims/ruby
パスは正常でした。
そして、
$ sudo gem install bundler
Fetching: bundler-2.2.3.gem (100%)
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /Library/Ruby/Gems/2.3.0 directory.
スーパーユーザー権限での実行時にも同じエラーが出てしまいました。
ここでいろいろググり、いろいろ試しました。
うまくいったのが以下の操作でした。
$ rbenv global 2.6.6
これは、システム全体で使うrubyのバージョンを指定するコマンドとのことでした。(参考リンクrbenv | global と local と .ruby-version の微妙な関係)
そうすると、
$ gem install rails
Fetching activesupport-6.1.0.gem
Fetching rack-test-1.1.0.gem
Fetching i18n-1.8.5.gem
〜〜〜〜
(省略)
〜〜〜〜
Installing ri documentation for rails-6.1.0
Done installing documentation for concurrent-ruby, i18n, tzinfo, zeitwerk, activesupport, rack, rack-test, mini_portile2, nokogiri, crass, loofah, rails-html-sanitizer, rails-dom-testing, builder, erubi, actionview, actionpack, activemodel, activerecord, globalid, activejob, mini_mime, mail, actionmailer, nio4r, websocket-extensions, websocket-driver, actioncable, mimemagic, marcel, activestorage, actionmailbox, actiontext, thor, method_source, railties, sprockets, sprockets-rails, rails after 70 seconds
39 gems installed
ふう、苦労かけやがって。
しかし、さらなる苦難が待ち受けます...
#壁2 Rails is not currently installed on this system.
インストールした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 gem install rails
はまさに直前に実行したコマンドです。
僕が親友によくやる「最近元気?」って聞いて「聞いてねえよ」で返すやつと同じですね。
こちらは無限 Rails is not currently installed on this system. 問題の調査を参考に解決させていただきました。
実際の操作は以下となります。
$ hash rails
原因を簡潔にまとめると、以下のようになります。
・railsコマンドが2箇所に存在した。
・ハッシュテーブルにrailsコマンドが記録されてしまっていた。
・railsをインストールするPathとhashのPathが異なっていた。
ということで、再度railsのバージョンを確認してみると
$ rails --version
Rails 6.1.0
無事にインストールが確認できました。
というより、インストールはできていたんですね。
同じようにインストールで苦労されている方の参考になれば嬉しいです。