LoginSignup
33
12

More than 5 years have passed since last update.

MacでPATHを通し間違えてターミナルでほとんどのコマンドが使えなくなった話

Posted at

プログラミングもコンピュータにも全然詳しくない初心者向けです(私が初心者なので)。なのにググってもまとまった解決法が見つからなくて苦労したので、書きます。

動機

既にAppStore経由でXcodeを入手していたMacで、標準搭載されているRubyではなく、Homebrewとrbenvを導入してバージョン管理をしたかった。

発端

まず、こちらを参考にターミナルからHomebrew本体をインストール。

$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

ここまでは良かった。

あーもうダメ。PATHの通し間違い

Homebrew本体のインストールが済んだので、使えるようにPATHを通します。PATHが何で環境変数がどうとかいうのは、WinでC言語の環境構築をした時に苦い思い出が。

$ echo 'export PATH=/usr/local/bin:SPATH' >> .bash_profile
$ source .bash_profile

出力結果がこちら。

-bash: source: command not found

あれ?やばげなニオイ。Linuxコマンドがnot foundっておかしいでしょ。
ここでコードの1行目を見てほしいのですが、

echo 'export PATH=/usr/local/bin:

の後が

SPATH

になっています。ここ。これがダメ。2時間潰した原因。サイトを目で見て自分で打っていた時に見間違えて打ち間違えたんですね。本当は

$PATH

となります。

間違えたPATHを通した際は

そうでなくてもPATHを間違えちゃったよって人は多いのではないでしょうか。多くない?
正しいパスで何度も書き直しても、エラーこそ出ないものの、(一番上にあるものが優先されるために?)ほとんどのコマンドが使えなくなるのです。lsコマンドすらダメ。
ここで何とか正しいPATHに書き換えたいわけです。そこで以下の手順を行うとターミナルも復活しrbenvからRubyのバージョン管理もできるようになりました。

  • 隠しファイルを表示させているか
    • している
    • していない → [command]+[shift]+[.(ドット)]を同時に押す

隠しファイルを表示している状態でホームディレクトリに移動すると、.bash_profileというファイルがあります。これを何らかのテキストエディタで表示すると…

PATH=/usr/local/bin:SPATH

あった。このSPATHを$PATHに書き換えてやります。
私のようにターミナルから書き換えてやろうと何度もecho 'export〜とやっていると下に新しいのがいくつもできているはずですので、正しいPATH1行にしてください。
また、環境次第では他関係の正しいPATHもあると思うので、くれぐれも該当PATHのみ編集するよう気をつけてください。

なぜそれだけのことに時間を食ったか

・最初は間違えたPATHを通していることに気づかず、この手順以降のコマンドを入力したりしていた
・PATHを通し直す方法を探しても、ターミナルからコマンド入力する方法ばかりが出てきた
・隠しファイルをターミナルコマンド以外で表示させる方法がなかなか見つからなかった
ということにありました。

PATHを通し直した後はbrew doctorを実行したりして、rbenvから任意のバージョンのRubyをインストールできました。この辺はこの記事から。

33
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
33
12