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

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

新規登録して質問してみよう
ただいま回答率
85.48%
bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Q&A

解決済

1回答

5052閲覧

Macの環境変数が壊れてしまった

tamogi

総合スコア72

bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

1グッド

0クリップ

投稿2017/03/04 09:26

編集2017/03/04 09:32

###前提・実現したいこと
急にMacのnpmコマンドが「command not found」と表示されましたの質問の続きとなります。

おそらくVisualStudio for Mac Preview版をインストールしたタイミングだと思いますが、インストール後に
npm, cordova, adbなどのコマンドを実行すると全て「command not found」と表示されてしまうようになりました。

上記質問の回答を踏まえた上で、もう一度調査したのですが、解決しなかったため、再度質問させていただきます。

###発生している問題・エラーメッセージ
npm, cordova, adbなどのコマンドが全て「command not found」となってしまう。
※cd, pwd, lsといった標準のコマンドは入力可能
※「su -」でrootユーザとして実行した場合は可能。(sudoはダメ)

bash

1$ cordova 2-bash: cordova: command not found 3

###該当のソースコード
上記質問で指摘されたのは、そもそも環境変数$PATHの値がおかしくなっていることが原因ということでした。
正常にコマンドが実行できていた時のPATHの内容を記録していないので、もとがどのような状態だったかはわかりません。

以下、現在の環境変数$PATHの内容です。

bash

1$ echo $PATH 2"/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:"/usr/local/bin:/sbin";";

###試したこと
.bash_profileの内容がおかしいのかと思い、内容を確認したところ、以下のようになっていました。

export ANDROID_HOME=/Users/ユーザ名/Library/Android/sdk export JAVA_HOME=`/usr/libexec/java_home -v 1.8` export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-toolseval $(/usr/libexec/path_helper -s)

特に問題は無いと思っています。ただ、上記「該当のソースコード」のとおり、PATHを出力したときにこの内容は出力されていません。
#そもそもこの時に.bash_profileの中身が出るのかどうかすら理解できていませんが・・・。

続いて、paths.d内を調べました。

bash

1$ cd /etc/paths.d 2$ ls 3#結果なし

現在調べた範囲は上記の内容となりますが、これ以上調べても解決方法がわからず、手詰まりの状態です。
解決策のご教示のほどお願い致します。

###追記
記述漏れがありました。「/usr/libexec/path_helper -s」を実行したところ、以下のようになっています。

bash

1$ /usr/libexec/path_helper -s 2PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:"/usr/local/bin:/sbin";";"; export PATH; 3

明らかにおかしいみたいですが、これを修正するにはどこを修正すれば良いのかがわかりません。

「source ~/.bash_profile」コマンドを実行したところ、以下のようになっています。

bash

1$ source ~/.bash_profile 2-bash: export: `PATH;': not a valid identifier 3

.bash_profileの内容がおかしいというより、上記のpath_helperの出力結果がおかしいのを引津っているような気がします。

ikuwow👍を押しています

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

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

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

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

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

guest

回答1

0

ベストアンサー

.bash_profileの内容がおかしいというより、上記のpath_helperの出力結果がおかしいのを引津っているような気がします。

いや、 path_helper の使い方としては、 /etc/profile にもありますが、

eval `/usr/libexec/path_helper -s`

が正しいです。したがって、 .bash_profile の $(/usr/libexec/path_helper -s) はあきらかにおかしいです。
不要なので、削除されてはいかがでしょうか。

投稿2017/03/04 14:35

mit0223

総合スコア3401

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

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

tamogi

2017/03/04 16:17

ありがとうございます。ご指摘の通り、.bash_profileの最後にくっついていた「eval $(/usr/libexec/path_helper -s)」を削除したところ、無事コマンドが使えるようになりました。 この部分は追加した記憶が無いのですが、いつのタイミングで追加されたのか謎です・・・。
mit0223

2017/03/04 23:43

解決してよかったです。きっと、何かのインストーラが自動的に追加したのでしょうね。付近の状況からみて推論ですが、Android Studio のパスが追加されたときにファイルの最後に改行がない状態で追加され、別のおせっかいなインストーラが eval $(/usr/libexec/path_helper -s) をファイルの末尾に追加したのではないでしょうか。
tamogi

2017/03/07 10:09

なるほど、最後は改行が必要なのですね。 Android系のパスの行は自分で追加したので、改行を意識していませんでした。 そのおせっかいなインストーラは、VSCodeの拡張機能の「Cordova Tools」か、「VS for Mac Preview」のどちらかだと思います。(濡れ衣かもしれませんが・・・。) その2つを同時にインストールし、その直後にコマンドが使えなくなったので・・・。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問