読み書きプログラミング

日常のプログラミングで気づいたことを綴っています

パッケージが外部コマンドを起動できない時は

Rustaceanになろうと四苦八苦しています。
Atomでlinter-rustを入れて、cargoで作ったプロジェクトをいじると、

Failed to run cargo
spawn cargo ENOENT

というエラーが出ます。cargoがパスにないようです。

OS XYosemite以降、ターミナルからコマンドを起動しても環境変数が継承されないようで、Atom内部でのprocess.env.PATHを見ると".:/usr/bin:/bin:/usr/sbin:/sbin"となっています。
確かに/usr/local/binが通っていない。

この問題、アプリによらず解決しようと思うと重い問題ですが、Atomでえいやと解決するには、init.coffeeに以下の1行を記述します。

process.env.PATH = "/usr/local/bin:#{process.env.PATH}"

これで、linter-rustが動くようになりました。