gitHubの環境設定に失敗してLinuxコマンドが使用できなくなった時の解決方法

GitHub&RubyonRailsアイキャッチ

どうも、フリーランス目指して奮闘中のyuta(@Ho_m_ie)です。

Rails/GitHubを使って開発をしている際、環境構築を行っていると、操作を誤ってLinuxコマンドが使用できなくなったことがありました。

同じ共同開発のメンバーだったchinjuさんに対処法を教わったので、そこでの解消方法をメモとして残しておきます。

初心者は特につまづきやすいところだと思うので気をつけましょう。解決方法だけ知りたい方は、目次の4からどうぞー。

Linuxコマンドが使用できなくなった背景

READMEに記載されていた環境構築をローカルで行っていた。

echo "export PATH=\$HOME/.nodebrew/current/bin:\$PATH" >> ~/.bash_profile を実行

実行直後、lsやrmなどのリナックス系のコマンドが使えなくなってしまう。

ググって見つけた解決法を試してみても改善されず。

PATHが変更されたのかなと思い、ステータスを調べてみました。
Yutas-MacBook-Air:~ ushijimayuuta$ echo $PATH
/Users/ushijimayuuta/.nodebrew/current/bin:SPATH


ここからどのようにしてPATHを変更すればいいかわからなくなったところでchinjuさんに質問。

今回の問題点

    今回は

  • `bash_profile` に unix コマンドを呼び出すための path を何かしら上書きしてしまい、呼出せなくなったこと

が原因だと判明しました。今自分がなんのコマンドを叩いているのか理解していないと起こりやすいエラーです。

chinjuさんとの会話一覧

ここからは今回の問題解消に向けて、chinjuさんとのやりとりを掲載いたします。私が2時間かけて調べてわからなかったことを、たった10分足らずで解決されてしまったすごいお方です。やはり不明点はプロに聞くのに限りますね!

一流フリーランスエンジニアとRailsビギナーとのやりとり

chinjuさん
bash_profile に記述を追加したことが問題だと思いますので、まずはそちらを削除しましょう
yuta
rmコマンドが使えない場合、どのようにググったら出てきますか?
chinjuさん
んー、普通のターミナルを使っているのであれば、
・iTermを導入する(ダメな気がしている)
・Finder から隠しファイル出すようにして、 bash_profile を普通に消す
などでしょうか
yuta
取り急ぎ、iTerm導入してもダメでしたので報告します^^;
chinjuさん
だめですよね、そんな気がしました。
bash_profile の削除ってできました?
ちなみにコマンド実行を直接
`/bin/ls`とかやってもエラーしちゃいますかね?
path で怒られてる気がしてならないので、直接指定して叩けばいける気がしなくもないです
yuta
おお!いけました!
これからずっと直接指定して叩かないとダメですかね^^;
chinjuさん
bash_profile が原因だと思われるので
yuta
なるほど、直接指定してzshとかインストールする感じですかね
chinjuさん
vim って打つと vim 起動します?

yuta
起動しないですね^^;

問題が解決しないので、ここでbash_profileを消すことに

chinjuさん
であればけしましょうか。

`/bin/rm ~/.bash_profile`のコマンドを叩いてください。
あ、そのまえに、

`/bin/mv ~/.bash_profile ~/.bash_profile_backup`

`/usr/bin/touch ~/.bash_profile`

`source ~/.bash_profile`

ダメならターミナル再起動しましょう。

yuta
chinjuさん、いけました!
chinjuさん
お、よかったですー。
yuta
ありがとうございます!

chinjuさんのありがたい解説

chinjuさん
今回Linuxコマンドが使えなくなった理由として、path の指定が原因だということが推測できたので、コマンドが置いてある path を直接叩きにいくことで対処しています。
それが、

`/bin/mv`
`/usr/bin/touch`

とかです。
ちなみに、実際に叩くコマンドは `bin` 配下に置いてあります。
つまり、

  • mv ~/.bash_profile ~/.bash_profile_backup`
  • mv ~/.bash_profile ~/.bash_profile_backup
  • touch ~/.bash_profile`


この部分が該当しますね。
最後に`source ~/.bash_profile`のコマンドを叩くことで設定を反映させています。

bash_profileを初期化したので、アフターケアとして再設定をする必要

chinjuさん

今まで bash_profile に設定していたいろいろが効かなくなっていると思うので

atom ~/.bash_profile_backup

必要なものだけ bash_profile を copy して source で読み込みましょう

yuta
わかりました!

※ちなみに、atom ~/.bash_profile_backupでコマンドを叩いているのは、僕がatomユーザーであるためです。
もしあなたが別のテキストエディタを使用しているのであれば、そのコマンドを実行してくださいね。

確認してみると、nodebrewのpath読み込みがそもそも多かった

yuta
今、bash_profileは
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
export PATH=$HOME/.nodebrew/current/bin:$PATH
alias be='bundle exec'
export PATH=$HOME/.nodebrew/current/bin:\SPATH
export PATH=$HOME/.nodebrew/current/bin:$PATH
export PATH=/usr/local/bin:$PATH

となっていますが、
export PATH=$HOME/.nodebrew/current/bin:\SPATH
をコピーして読み込ません感じですか?
chinjuさん
その行(export PATH=$HOME/.nodebrew/current/bin:\SPATH)が不要なんじゃないですかね。
なんか nodebrew の path 読み込みおおいですねw
したから2, 3 行目いらんとおもいます。
yuta
確かに重複してますねw
もしかたら、さっきPATHを削除したりした際に量産しちゃったかも。。

最後に

初心者ほどtypo(タイピングミス)や早とちりが多いので、コードを書くときは落ち着いて記述するようにしましょう!

コメントを残す

メールアドレスが公開されることはありません。