コマンドラインアプリケーションであるアプリケーションをダウンロードしました。パスを明示的に入力しなくても、コマンドラインから実行できる場所に配置したいと考えています。
このようなものに使用される従来のパスは何ですか? /usr/bin
?すべてのユーザーに必要なオプションと、管理者アカウントのような特定のユーザーだけに必要なオプションがありますか?
または、アプリケーションディレクトリの下の独自のディレクトリに配置して、パスに追加する必要がありますか?その場合、どのファイルがパスの設定場所を制御しますか?
コアとなる答え:おそらく/usr/local/bin
が必要です。 macOSの最新のバージョンによっては、デフォルトの$PATH
を更新する必要がある場合があります。詳細については、以下を参照してください。
UPDATE 12-01-2018元の回答を書いてからのある時点で、Appleがデフォルトを変更しました$PATH
。結果として、以下で私が言うことの多くは最近のMacには関係ありません。ターミナルでecho $PATH
と入力し、/usr/local/bin
を最初に入力すると、以下の変更をすべて無視できます。 $PATH
。
元の答え
Macはこの点で珍しいです。通常のユーザーのデフォルトの$PATH
変数は次のようになります。
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin
/usr/local/bin
の後に/usr/bin
と/bin
を置くことにより、Macは通常のシステムを向上させます。通常は、何かを/usr/local/bin
に入れることができ(たとえば、非標準的な方法でコンパイルされた2番目のPerlインタープリター)、通常のユーザーは、システム全体ではなくカスタムのカスタムインタープリターを最初にヒットします。これはいい。ユーザーはバリアントを取得できますが、システムは純粋なままです。ただし、Appleのデフォルトの$PATH
の場合、/usr/bin
または/bin
のアイテムは、/usr/local/bin
の前に検索されます。 (これは基本的に、たとえば、カスタムPerlを/usr/local/bin
にインストールする目的に反します。)
これを修正するには、ユーザーのホームディレクトリにある$PATH
ファイルを編集して、通常のユーザーの.profile
を変更します。 (新規インストールの場合、このファイルは存在しない可能性があります。その場合は作成してください。)
準関連: Homebrew は、Macに優れたパッケージ管理を提供します。デフォルトでは、Homebrewはソフトウェアを/usr/local
にインストールしますが、後で簡単に削除してバニラの状態に戻すことができる方法でインストールします。
_/usr/local/bin
_および_/usr/local/sbin
_は、ソースビルド用の多くのメイクファイルがデフォルトでそこにインストールされるため、パスに追加する価値があります。
MacPorts を使用する場合は、_/opt/local/bin
_および_/opt/local/sbin
_も追加する価値があります。
これを行う最良の方法は、
_export PATH=/usr/local/bin:/usr/local/sbin:/opt/local/bin:/opt/local/sbin:$PATH
_
ホームディレクトリの_.bashrc
_ファイル(非表示になっているため、CLIがこれを行うための最良の方法です)に、またはシステム全体のパスを変更する場合は、同じ行を_/etc/bashrc
_(非表示ではありません)。ただし、これを行うにはSudo
が必要です。
ユーザーの家に_.bashrc
_がない場合は、作成してこの行に追加できますが、作成するファイルのアクセス許可を変更して、問題のユーザーが読めるようにすることを忘れないでください(明らかに自分のプロファイルで行う場合は関係ありません)。
末尾の_$PATH
_は、システムのデフォルトパスを以前に配置したものに追加します。システムは指定されたパスの順序でバイナリを検索するため、システムにデフォルトでインストールされる_/usr/local
_または_/opt/local
_にバイナリをインストールする場合、インストールするバージョンが最初に見つかります。 、(めったに)物事を混乱させることができます。要注意です。
良い情報は ここ です。
上記は、シェルで Bash を使用していることを前提としていることに注意してください。これは Mac OS X v10.4 (Tiger)および Mac OSのデフォルトです) X v10.5 (Leopard)、ただし以前のシステムではなく、構文が異なるtcsh
を使用していました。
それが役に立てば幸い...
私は/usr/local
。これが [いい説明理由] で、これは Filesystem Hierarchy Standard(FHS) を指します。 、次に/usr/local
:
このホストに固有のローカルデータの3次階層。通常、bin、lib、shareなどのサブディレクトリがあります。