web-dev-qa-db-ja.com

Mac OS X:バイナリファイルが存在する従来の場所

コマンドラインアプリケーションであるアプリケーションをダウンロードしました。パスを明示的に入力しなくても、コマンドラインから実行できる場所に配置したいと考えています。

  1. このようなものに使用される従来のパスは何ですか? /usr/bin?すべてのユーザーに必要なオプションと、管理者アカウントのような特定のユーザーだけに必要なオプションがありますか?

  2. または、アプリケーションディレクトリの下の独自のディレクトリに配置して、パスに追加する必要がありますか?その場合、どのファイルがパスの設定場所を制御しますか?

65
Jason S

コアとなる答え:おそらく/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にインストールしますが、後で簡単に削除してバニラの状態に戻すことができる方法でインストールします。

53
Telemachus

_/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を使用していました。

それが役に立てば幸い...

9
avstrallen

私は/usr/local。これが [いい説明理由] で、これは Filesystem Hierarchy Standard(FHS) を指します。⁢⁢⁢⁢⁢⁢⁢⁢⁢⁢⁢⁢⁢⁢⁢⁢⁢⁢⁢⁢ ⁢⁢⁢⁢⁢⁢⁢⁢⁢⁢⁢、次に/usr/local

このホストに固有のローカルデータの3次階層。通常、bin、lib、shareなどのサブディレクトリがあります。⁢

7
John Topley