BashからSublime Textを実行できるように設定したところ、異なるチュートリアルでこれを行う2つの方法が見つかりました。
方法1)/usr/local/bin/subl
からSublimeのビンdir:へのシンボリックリンクを作成します
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つの方法が他の方法よりも優れているのか、それとも同じように問題ないのですか?
私が見ることができる唯一の利点は、方法1の場合です。もしPATHディレクトリのディレクトリを少なくすることが有益である場合(実行可能ファイルを探す速度/パフォーマンス?).
既にPATH
にあるディレクトリにシンボリックリンクを追加することをお勧めします。
ソフトウェアをシステム全体で(他のユーザーが)表示できるようにする場合は、/usr/local/bin
へのシンボリックリンクを追加します。ソフトウェアを自分だけに表示したい場合は、PATH
に$HOME/bin/
を1回追加します(一部のディストリビューションでは、bash
シェルが構成されている場合、そのディレクトリが自動的に追加されます)。そこからシンボリックリンクを追加します。
非常に長いPATH
を避ける必要があります(そのため、新しくインストールされたアプリケーションごとにディレクトリを追加しないでください)。どちらもパフォーマンスのためです(ただし、一部のシェルはPATH
ルックアップをキャッシュしているため、問題にならない場合がありますそれだけ)と保守性の目的で(PATH
に多数のディレクトリが含まれていると、混乱を招きます);これはLD_LIBRARY_PATH
にも当てはまります($HOME/lib/
...からのシンボリックリンクを追加することをお勧めします)。
プロセスの一部を自動化する GNU stowの使用を検討することもできます(数年前に使用しようとしましたが、そうではないと感じました)負担に値する)。
最後に、ソースコードからコンパイルする多くのソフトウェアは、/usr/local/
およびその/usr/local/bin/
ディレクトリの下以外の場所にインストールされるように構成できます。 GNU autoconf 機能で構成された無料ソフトウェアの場合(つまり、configure.ac
....から生成されたconfigure
スクリプトがある場合)、--prefix=$HOME/pub/ --exec-prefix=$HOME/bin/
を渡して、ビルド時の他のいくつかのオプション(例:--program-suffix=-mine
、...)。
第3の方法は、wrapシェルスクリプトで実行可能ファイルにすることになりますどのexport
- s拡張されたPATH
例export PATH=$PATH:/opt/something/bin
を使用します...(これは、実行可能ファイルがexecvp
を介して実行されるより多くの内部プロセスをフォークしている場合に必要です)。ところで、ほとんどのFirefoxインストールはそれを行っています(つまり、firefox
またはmozilla
はexec mozilla.bin
....で終わるシェルスクリプトになります)、またはexec
- ingフルパス。したがって、$HOME/bin/sublimetext
(PATH
の$HOME/bin/
がalreadyであると想定)として、小さなシェルスクリプトを追加するだけで済みます。
#!/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
でスクリプトを実行可能にすることを忘れないでください