コマンドラインアプリケーションをダウンロードすると、それらは私の~/Downloads/
ディレクトリにあります。しかし、これはコマンドラインアプリケーションを配置するのに間違った場所だと感じています。Mac OS Xファイルシステムのどこにコマンドラインアプリケーションを保存する必要がありますか?
/Applications/
また、間違っているように感じます。デスクトップアプリケーションの場合はそれ以上です。また/bin/
、OS Xに属するアプリケーションの場合はさらに聞こえます。
コマンドラインアプリケーションをダウンロードすると、それらは私の~/Downloads/
ディレクトリにあります。しかし、これはコマンドラインアプリケーションを配置するのに間違った場所だと感じています。Mac OS Xファイルシステムのどこにコマンドラインアプリケーションを保存する必要がありますか?
/Applications/
また、間違っているように感じます。デスクトップアプリケーションの場合はそれ以上です。また/bin/
、OS Xに属するアプリケーションの場合はさらに聞こえます。
回答:
OS XはUNIXの遺産に由来する/usr/local/bin
ため、特定のユーザーではなくローカルにシステムに属するコマンドラインアプリケーションおよびスクリプト用のシステムファイルを保存する必要があります。次を実行して、最初にこのディレクトリを作成する必要がある場合があります。
sudo mkdir -p /usr/local/bin
次を実行することにより、任意のコマンドラインアプリケーションをそのフォルダーに移動できます。
sudo mv my-binary /usr/local/bin/
これ/usr/local/bin
がターミナルの標準検索パスの一部であることを確認するには/etc/paths
、必要に応じてコンテンツを確認して追加します。
grep -w /usr/local/bin /etc/paths || sudo sh -c 'echo /usr/local/bin >> /etc/paths'
一部のユーザーは、ユーザーレベルのスクリプト用に2つ目のディレクトリを作成しますが、これはさらに個人的な好みに左右されます。
通常、各ユーザーフォルダーにbinディレクトリを作成し、Finderから非表示にしますが、非表示にするかどうかは自分で決定できます。
mkdir ~/bin
chflags hidden ~/bin
この場合、シェル起動スクリプトを変更して、各ユーザーのパスにこの場所を含める必要があります(~/.bash_profile
標準シェルであるbashの場合)
export PATH=$PATH:~/bin
または、実行時に各アプリへのパスをハードコーディングします。
homebrew
私は自分のシェルスクリプトのために経由してインストールされたUnixユーティリティに/ usr / local /を使用します〜/ Dropbox / bin /を$ PATHに追加したため、すべてのMacにすべてのカスタムシェルスクリプトがあります。しかし、代わりに/ usr / local / bin /に加えてそれを行います。
~/bin
ディレクトリを作成し、chflags uchg ~/bin
で非表示にし、ユーザー~/.bash_profile
に追加してユーザーの$ PATHの一部にすることだと思います。~/bin
セキュリティと移行のための優れた場所です。それ以外の場合は、/ usr / local / binに残したものを覚えておく必要があります。そしてln -s ~/bin ~/Dropbox/
またいいです。
/opt
ディレクトリを作成することを検討してください。これは、慣例によりカスタムUnixソフトウェアが表示される別の場所です。
/opt/
完全なアプリケーションには非常に便利ですが/usr/local/bin/
、スタンドアロンのコマンドラインスクリプトにはより適しています。多くの場合/opt/
、関連するスクリプトのコレクションがライブラリとして機能するインスタンスで使用することをお勧めします(例:)/opt/myscriptslib/bin/
。