PATHに新しいディレクトリを追加し、PATHにすでに存在するディレクトリへのシンボリックリンクを追加します。

PATHに新しいディレクトリを追加し、PATHにすでに存在するディレクトリへのシンボリックリンクを追加します。

BashでSublime Textを実行できるように設定するときに、他のチュートリアルでこれを行う2つの方法が見つかりました。

方法 1) /usr/local/bin/sublSublime の bin ディレクトリへのシンボリックリンクを作成します。

sudo ln -s /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /usr/local/bin/subl

これは/usr/local/bin私のPATH変数にすでに存在するものを利用します。

...または...

方法 2) Sublime の bin フォルダへのパスを含むように PATH を更新します。

export PATH="/Applications/Sublime Text.app/Contents/SharedSupport/bin/":$PATH

どちらの方法も効果がありますが、1つの方法が他の方法よりも優れているのか、それとも同じことが良いのか疑問に思います。

私が見ることができる唯一の利点は、PATHにより少ないディレクトリを持つことが有益な場合の方法1です(実行ファイルを見つける速度/パフォーマンス?)。

答え1

方法をお探しの場合端末から直接プログラム/スクリプトをコマンドで実行/実行では、スクリプトやリンクを入れるのが/usr/local/bin良い選択だと思います!

もう一つの利点は、すでにパスにあることです。入場これ関連投稿。

ただし、プログラムディレクトリが複数の実行可能ファイルを提供している場合は、そのディレクトリにパスをエクスポートすると、複数のシンボリックリンクを個別に作成するよりも便利であると思います。

答え2

既存のディレクトリにシンボリックリンクを追加する方がPATH 一般的に良い選択肢です。

ソフトウェアがシステム全体で(他のユーザーに)表示されるようにするには、にシンボリックリンクを追加します/usr/local/bin。ディレクトリ(存在する場合)を選択し、ディレクトリにシンボリックリンクを追加します。$HOME/bin/PATHbash

パフォーマンス(ただし、一部のシェルはルックアップをキャッシュするため、それほど重要ではない場合があります)と可用性のために非常に長いディレクトリを避ける必要がありますPATH(したがって、新しくインストールされたアプリケーションごとにディレクトリを追加しないでください)。数十のディレクトリを含めると混乱します。これも適用されます(したがってシンボリックリンクを追加することをお勧めします)。PATHPATHLD_LIBRARY_PATH$HOME/lib/

あなたもそうかもしれません。使用を検討してくださいGNUリポジトリこれはプロセスを部分的に自動化します(数年前に試してみましたが、負担を感じるほど価値がないと判断しました)。

/usr/local/ 最後に、ソースコードでコンパイルされた多くのソフトウェアは、そのディレクトリ以外/usr/local/bin/ の場所にインストールするように設定できます。次の無料ソフトウェアの場合GNU自動設定施設(たとえば、 ...configureでスクリプトを生成)およびconfigure.acビルド時に渡すことができる--prefix=$HOME/pub/ --exec-prefix=$HOME/bin/他のオプション(たとえば...)。--program-suffix=-mine

3番目の方法それがすることは包む一部のシェルスクリプトの実行ファイルwhich export-s は拡張機能です (PATH 例: export PATH=$PATH:/opt/something/bin.... 実行可能ファイルが内部実行プロセスを介してより多くのフォークを実行する場合は必要ですexecvp)。 btw、ほとんどのFirefoxインストールでは、次のいずれかを実行しますfirefoxmozilla)またはexec mozilla.binフルパスを-ingで終わるスクリプトで使用します。execしたがって、単に小さなシェルスクリプトを追加することができます$HOME/bin/sublimetext$HOME/bin/ 次のように仮定)。すでにPATH)には以下が含まれています。

#!/bin/sh
# file $HOME/bin/sublimetext
# if needed add export PATH=$PATH:/Applications/Sublime\ Text.app/Contents/SharedSupport/bin 
exec /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl "$@"

$HOME/bin/subl 必要に応じてスクリプト名を指定することもできます。スクリプトを実行可能にすることを忘れないでください。chmod u+rx $HOME/bin/subl

関連情報