it-swarm-ja.com

カスタムパスを使用してPATH変数を永続的にエクスポートできない

composer~/.config/composer/vendor/binの下にあるlaravelインストーラーをインストールしました。どこからでもlaravelをコマンドとして直接使用したいので、$PATH変数にディレクトリを追加しようとしました。おそらく/usr/local/binへのインストーラーのシンボリックリンクを作成できますが、それを永久に設定できない理由はまだわかりません。複数の方法を試しました

  • export PATH=$PATH:~/.config/composer/vendor/bin
  • 上記の~/.profileに追加し、exportステートメントと引用符で囲まれた値なし
  • 上記の~/.bashrcに追加し、exportステートメントと引用符で囲まれた値なし
  • /etc/environmentのようなPATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:~/.config/composer/vendor/bin"に追加する

そのすべてを実行した後(2と3でsourceを実行しました)、現在のセッションで機能しましたが、Terminalを閉じて再度開くと、出力は常に次のようになります。

[email protected]:~$ laravel
laravel: command not found

ホームディレクトリにbash_loginまたはbash_profileファイルがありません。

3
Musterknabe

PATHステートメントの/etc/environmentに完全なディレクトリが必要です。

/home/username/.config/composer/vendor/bin

変更を行った後、/etc/environmentの変更を有効にするには、ホストを再起動する必要があります。

お役に立てれば!

2
Terrance
  • export PATH=$PATH:~/.config/composer/vendor/binは、現在のセッションでのみ機能します。

  • ~/.profileおよび~/.bashrcでは、~/は引用符内で動作しません。引用符を省略するか、$HOMEの代わりに~/を使用してください。

    export PATH=$PATH:$HOME/.config/composer/vendor/bin
    
  • /etc/environmentはシェル構文を許可しないため、~/$HOMEも機能しません。代わりに、フルパスを使用する必要があります。

    PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/youruser/.config/composer/vendor/bin"
    
5
Florian Diesch