質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

1605閲覧

bash: rails: command not found railsコマンドが見つからない

naota7118

総合スコア7

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

1グッド

1クリップ

投稿2024/01/15 03:42

編集2024/01/15 06:55

実現したいこと

railsやrbenvのコマンドを使えるようにしたい

発生している問題・分からないこと

  1. 原因はパスの通し方なのかがわからない
  2. 正しいパスの通し方(設定)がわからない
  3. viで編集できなくなった原因がわからない

上記の状態になるまでの経緯
RubyのバージョンとGemfileで特定されたバージョンが異なるので揃えようと思いました。

Your Ruby version is 3.1.4, but your Gemfile specified 3.2.2

もともと入っていたRubyのバージョンが3.1.4で、rbenvで3.2.2をインストールしました。(rbenv install 3.2.2

インストールしたものの、ruby -vで確認すると、バージョンが3.1.4のままでした。

rbenvでインストールしたほうのRubyのバージョンにするため、こちらの記事を参考に、.bashrcファイルにパスを通す記述をしました。

$ echo '# rbenv' >> ~/.bashrc $ echo 'export PATH=~/.rbenv/bin:$PATH' >> ~/.bashrc $ echo 'eval "$(rbenv init -)"' >> ~/.bashrc

この変更を反映するため、以下のコマンドを実行しました。

source ~/.bashrc

そこから、railsrbenvcommand not foundになりました。

わからないこと

  1. 原因はパスの通し方なのかがわからない
  2. コマンドを実行するためにもともと設定されていたパスがどのファイルで設定されていたかわからない
  3. viで ~/.bashrcファイルを編集できなくなった原因がわからない

.bashrcファイルをいじるまでは、rails -vなどの操作もできていました。
今は毎回以下のコマンドを打たないとほとんどのコマンドが見つからないとなってしまっています。

$ export PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin"

該当のソースコード

# rbenv export PATH=/home/vscode/environment/.ruby-version C C C C C C C eval "$(rbenv init -)"
$ ruby -v ruby 3.1.4p223 (2023-03-30 revision 957bb7cb81) [aarch64-linux]
$ rbenv versions * 3.2.2 (set by /home/vscode/environment/.ruby-version)

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

試したこと

  • viコマンドで~/.bashrcファイルに書き加えた部分を削除しようとしたが、編集できなかった(上記ソースコード内の「C C C...」という記述はその結果残ったものです)
  • VSCodeをインストールしなおしたが変わらなかった
  • ~/.bashrcファイルに読み書き実行の権限を付与したが変わらなかった
  • bashからzshに切り替えようと試みたが、chsh: PAM: Authentication failureと出てできなかった
$ ls -l ~/.bashrc -rwxr--r-- 1 vscode vscode 5105 Jan 15 00:03 /home/vscode/.bashrc

補足

パソコンはMacで、M1 Sonoma 14.2.1です。
Railsチュートリアルという学習教材を進めるための環境を整えようとしているところでして、こちらの記事を参考に、VSCodeとDockerを接続して、VSCodeのターミナルで作業しています。

追記

当初の実現したいこと(railsコマンドを使えるようにしたい≒インストールしたい)は完了しました。
gem install rails -v 7.0.4.3でインストールしました。
通常のターミナルではインストールしていたのですが、今回のVSCode + Dockerという環境ではしていなかったのかもしれません。

Rubyのバージョンが異なる問題については、

Your Ruby version is 3.1.4, but your Gemfile specified 3.2.2

ディレクトリを移動したタイミングで、なぜかrvmを使えという表示が出てきて、それに従うとインストールできました。

$ cd environment/ To install do: 'rvm install "ruby-3.2.2"'

たまたま結果的にインストールできましたが、まだ何も理解してないので、理解しようとしているところです。
今回の反省として、よく理解せずに.bashrcファイルにパスの記述をしてしまいした。
PATHについて学習する良い機会だと思って、以下の記事などで学習していきます。
bash スクリプトの先頭によく書く記述のおさらい
MacOSX での PATH の通し方について解説

ただ、viで.bashrcファイルを編集できない問題はまだ解決しておらず、コマンド入力でパスを追加できても削除できないので、追加するのが少しこわいです。

shinoharat👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

shinoharat

2024/01/15 06:17

> viコマンドで~/.bashrcファイルに書き加えた部分を削除しようとしたが、編集できなかった とのことですが、基本的な vi コマンドの使い方はご存知ですか? ( i を押すと編集モードになるとか、 d を2回押すと行削除できるとか)
naota7118

2024/01/15 06:38

コメントありがとうございます。 > とのことですが、基本的な vi コマンドの使い方はご存知ですか?① i を押すと編集モードになるとか、② d を2回押すと行削除できるとか 理解が浅く、調べながらやっています。②は知りませんでした。iを押して編集モードにして、編集したあと、escを押して「:wq」で上書き保存をしようと試みました。iを押して編集モードにはなるのですが、上矢印を押すとA下矢印を押すとCといった文字が出てきて、文字を削除することもできないため、「:q」を押してそのままにしました。
shinoharat

2024/01/15 07:37

vi で編集モード中に矢印キーを押すと A B C D が挿入されるのは通常の挙動です。 vi ではなく vim を使うと矢印キーが使えると思います。 また、編集モードを使わずに ① shift+g で一番下までスクロール ② d を2連打して行削除 のように操作することでも対応できると思います。
naota7118

2024/01/15 08:43

ありがとうございます! > vim を使うと矢印キーが使える vimをインストールしてやってみたら使えました。 > 編集モードを使わずに ① shift+g で一番下までスクロール ② d を2連打して行削除 これもできました。こんな便利な方法があるんですね! ~/.bashrcに以下の書き方でパスを書いてしまっていたため、ほかのパスが全部上書きされて無効になっていたのだと気づきました。 export PATH=/home/vscode/environment/.ruby-version 教えていただいたやり方で上記を消したら、他のパスが復活しました。 Rubyのバージョンが異なる問題もパスの設定によって解決できるのではと思っています。 いろいろ教えていただき本当にありがとうございます。
naota7118

2024/01/15 08:56

Rubyのバージョンが異なる問題も無事解決いたしました。 パスの設定は必要ありませんでしたが、~/.zshrcにeval "$(rbenv init -)"を書いてsource ~/.zshrcで反映させたらrbenvでインストールしたRubyのバージョンになりました。 ひどく情報不足だったと思いますが、親切に教えていただき感謝いたします。ありがとうございました!
naota7118

2024/01/15 08:57

コメントありがとうございます。 ベストアンサーに選びたいので同じ内容を回答欄に投稿いただけますでしょうか?
shinoharat

2024/01/15 23:43

お気遣いありがとうございます。 しかし、課題の大半はご自身で解決されたように見受けられますので、自己解決として回答を登録された方が良いかと思います。
naota7118

2024/01/16 00:18

承知いたしました。誠にありがとうございました。
guest

回答1

0

自己解決

~/.bashrc に以下の内容を記述していたのが原因でした。

export PATH=/home/vscode/environment/.ruby-version

$PATHを使わずに書いたため、ほかのPATHを上書きしてしまって、他のパスが通らなくなっていました。

viコマンドで編集して削除しようとしてもできず、質問欄で教わったvimコマンドで編集して削除しました。
その結果、もともと設定していたパスが再び通りました。

$ printenv PATH /usr/local/rvm/gems/ruby-3.2.2/bin:/usr/local/rvm/gems/ruby-3.2.2@global/bin:/usr/local/rvm/rubies/ruby-3.2.2/bin:/usr/local/rvm/bin:/vscode/vscode-server/bin/linux-arm64/0ee08df0cf4527e40edc9aa28f4b5bd38bbff2b2/bin/remote-cli:/usr/local/share/rbenv/bin:/usr/local/share/nvm/versions/node/v16.20.2/bin:/usr/local/bundle/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

VSCodeを立ち上げなおしたら、シェルがbashからzshに切り替わっていたので、/.zshrcに

eval "$(rbenv init -)"

と書いて、

source ~/.zshrc

で反映させました。

その結果、無事問題が解決しました。

$ rails -v Rails 7.0.4.3

rbenvでインストールしたRubyを参照するようになりました。

$ which ruby /home/vscode/.rbenv/shims/ruby

投稿2024/01/16 08:40

naota7118

総合スコア7

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問