Railsのlocalhost:3000にアクセスできた(なんとか)

はじめに

現状、localhost:3000にアクセスできていない。

rails serverでローカルサーバーを立ち上げる必要がありそうだ。

その過程を見ていこう。

まずは、VScodeで自作Railsアプリを開く

money-appというプロジェクト。

ターミナルも立ち上がっている。

rails serverと打ち込んでみたら、Railsがインストールされていないようだった

Railsは現在、このシステムにインストールされていません。最新バージョンを手に入れるには、シンプルに以下をタイプしてください。

$ sudo gem install rails

そしたら君は、rails コマンドを打ち込めるようになる。

とのことだったので、以下のコマンドを打ち込んだ。

パスワードを求められたので、PCにログインする時のパスワードを入力した。

Railsをインストールしようとするとエラー発生

しばらく時間がかかって、いろんなgemファイルをフェッチしたあと、エラーになった。

エラーメッセージはこちら。

ERROR:  Error installing rails:
        The last version of bundler (>= 1.15.0) to support your Ruby & RubyGems was 2.4.22. Try installing it with `gem install bundler -v 2.4.22` and then running the current command again
        bundler requires Ruby version >= 3.0.0. The current ruby version is 2.6.10.210.

railsのインストールエラー。

日本語にすると以下のようになる。

あなたのRubyとRubyGemsを支える過去のバンドラのバージョンは、2.4.22.でした。「gem install bundler -v 2.4.22」で、それをインストールしてみてください。そしたら、先ほどのコマンドをもう一度打ち込んでください。バンドラはRubyの3.0.0.以降のバージョンが必要です。現在のRubyのバージョンは、2.6.10.210.です。

言われた通りに、「gem install bundler -v 2.4.22」と打ち込んでみた。

今度は権限がないというエラーが発生した

FilePermissionErrorが発生した。権限がないというエラーだろう。

どうしようか。

とりあえず、ググる。

rails FilePermissionError – Google 検索

たくさん出てきた。

gem install rails を実行時の Gem::FilePermissionError を解決する (Railsチュートリアル 1章) #Ruby – Qiita

sudoを先頭につけると解決するかもしれない。

パスワードを求められて入力すると、成功した。

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

ここで再びエラーが発生した。

エラーメッセージはこちら。

ERROR:  Error installing rails:
        ERROR: Failed to build gem native extension.

gem native extensionというgemのネイティブ拡張機能?をビルドできなかったようだ。

先ほどのエラーメッセージ以降のメッセージはこちら。

  current directory: /Library/Ruby/Gems/2.6.0/gems/racc-1.8.1/ext/racc/cparse
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/ruby -I /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0 -r ./siteconf20240808-13261-d40utl.rb extconf.rb
creating Makefile

current directory: /Library/Ruby/Gems/2.6.0/gems/racc-1.8.1/ext/racc/cparse
make "DESTDIR=" clean

current directory: /Library/Ruby/Gems/2.6.0/gems/racc-1.8.1/ext/racc/cparse
make "DESTDIR="
make: *** No rule to make target `/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/include/ruby-2.6.0/universal-darwin23/ruby/config.h', needed by `cparse.o'.  Stop.

make failed, exit code 2

Gem files will remain installed in /Library/Ruby/Gems/2.6.0/gems/racc-1.8.1 for inspection.

現在のディレクトリと、cparse.oが必要でストップしたということが書かれている。

ここから導き出される仮説は、cparse.oというものが足りないということ。

ググってみよう。

Rails needed by `cparse.o’. Stop. – Google 検索

色々と出てきた。

自分のケースに当てはまらさそうなので、諦めることにした。

4年ほど前に、TECH::EXPERTでRailsを勉強していた時もエラーが解決できずに苦労した。

ここを乗り越えるかどうかで、今後のキャリアが変わってくるだろう。

Rubyのバージョンを上げてみようか

先ほどのエラーメッセージはこちら。

ERROR:  Error installing rails:
        The last version of bundler (>= 1.15.0) to support your Ruby & RubyGems was 2.4.22. Try installing it with `gem install bundler -v 2.4.22` and then running the current command again
        bundler requires Ruby version >= 3.0.0. The current ruby version is 2.6.10.210.

後半に、「バンドラは、Rubyバージョンの3.0.0以上が必要。現在のバージョンは、2.6.10.210ですよ。」という記述があった。

こちらの対応を行っていなかったことに気づいた。

ワンチャンあるかもしれない。

Rubyのバージョンを上げる方法

現在のバージョンは、2.6.10p210。pというのが追加されている。

Rubyのバージョンを上げるには、以下のコマンドを入力すれば良いだろう。

Rubyのバージョン変更 #Ruby – Qiita

その前に、インストール可能なバージョンを確認したい。

こちらのコマンドを叩こう。

Rubyのバージョン変更 #Ruby – Qiita

どうやら、rbenvがインストールされていないようだ。

progateの記事を参考にして、rbenvをインストールしていく。

Rubyの開発環境を用意しよう!(macOS用) | プログラミングの入門なら基礎から学べるProgate[プロゲート]

ものすごいたくさんの処理が走って、完了したみたいだ。

rbenvのバージョン確認が出来た。つまり、rbenvのインストールが完了したということだ。

インストール可能なバージョンリストを確認することができた。3.1.6をインストールしていこう。

かなり時間がかかったが、無事、インストールできたようだ。

再び、Railsのイントールを試みた。しかし、同じエラーが発生した。Rubyのバージョンは関係なかったようだ。

Gemsの後が2.6.0になっているのが気になるので、インストールされているRubyのバージョンを確認してみる。

Rubyのバージョン変更 #Ruby – Qiita

先ほどと変わっていなかった。

どうやら、反映されていないようだ。

Rubyの開発環境を用意しよう!(macOS用) | プログラミングの入門なら基礎から学べるProgate[プロゲート]

rbenv versionsで、現在インストールされているRubyを一覧表示させてみた。

そこで、手掛かりとなるメッセージを発見した。

rbenv: version '3.1.2' is not installed (set by /Users/hiroki/Downloads/money-app/.ruby-vertsion)

今回のプロジェクト「money-app」で定義されている「3.1.2」のRubyがインストールされていないようだ。

解決の方針を立てることができた。

プロジェクトで定義されたバージョンのRubyをインストールする

それでは、始めていこう。

rbenv install 3.1.2で、3.1.2をインストールしていく。

かなり時間はかかったが、上手く行ったようだ。

バージョンは以前のままだ。

使用するRubyのバージョンを変更する

Rubyの開発環境を用意しよう!(macOS用) | プログラミングの入門なら基礎から学べるProgate[プロゲート]

rbenv global 3.1.2を打ち込む。

なぜか上手く行かなかった。

rbenvの方は、ちゃんと「3.1.2」が設定されているようだった。

プロジェクトのルートに「.ruby-version」があることが原因と考えられる。

以下の最後のステップを見ていただきたい。

~/rbenv/version を適用する。「rbenv global x.x.x」で作成されたファイル※ホームディレクトリ(〜/)に .ruby-versionを作成するとglobalのvertionが適用されなくなる。

ということは、今回、ルートに「.ruby-version」があるため、globalで設定したバージョンが適用されず、「.ruby-vertion」に書いてあるバージョンが適用されるということになる。

[初期設定]なぜ「.ruby-version」を作成するのか? #Ruby – Qiita

いまいち理解していないが、以下のコマンドを打ち込んだら、sudo gem install railsでエラーが出なくなった。

railsをインストールしたのに Rails is not currently installed on this system と出る場合の対処法 – Just do IT

ただし、rails serverをすると再び、懐かしいメッセージが表示された。

sudo gem install railsを打ち込むと、先ほどとは違うものがインストールされた様子だ。

突破口を見つけた

以下の記述を見つけた。

無限 Rails is not currently installed on this system. 問題の調査 #Ruby – Qiita

hash -rと打ち込んでから、rails –vertionしてみると、さっきとは違う感じになった。進んでいけそうだ。

黄色の文字の通りに、足りないgemたちをインストールするために、bundle installしてみる。

少々待ったところ、無事に処理が完了した。

これで、railsが使えるようになるのか?

rails –vertionができるようになっていた。素晴らしい。

解決したので、railsのローカルサーバーを立ち上げよう

夜神月が久しぶりにデスノートに触れた時のように、4年くらい前に、TECH:EXPERTでRailsの開発に勤しんでいた頃の記憶が蘇ったかのように、懐かしい画面を確認することができた。これを待っていたのだ。

いや、まだブラウザを確認しているわけではない。舞い上がるのは、まだ早い。

ブラウザを確認する。

エラーが起こっているものの、最初のアクセスできない状況からは脱することができていた。

最初の状態。

この記事は、これで終えたい。

エラーを解決していく様子は、次回のお楽しみに!

翌日

寝て起きたら、同じ状態になっていた。

rails コマンドが使えなかったので、hash -r を行ってみた。

いや、メッセージの通りに「sudo gem install rails」を打ち込むべきだったのかもしれない。

打ち込んでみたら、昨日と同じエラーになった。

しばらくすると、rails serverが問題なくできていた。

wifiが繋がっていなかったことが原因かもしれない。

その他の変化点としては、.ruby-versionの2行目の空白を削除したこと。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

投稿ID : 23469