Perforceバージョンコントロールクライアント(p4
)の実行可能ファイルがあります。 root権限がないため、/opt/local
に配置できません。 $HOME
の下に配置する必要がある標準の場所はありますか?
ファイルシステム階層には、ローカルの実行可能ファイル/バイナリを$HOME/bin
に配置する必要があるという規約がありますか?
WikipediaのFHSに関する記事 で言及されているような規則は見つかりませんでした。
また、実際に規約がある場合、$HOME/bin
ディレクトリへのパス、またはbin
ディレクトリの場所を明示的に含める必要がありますか?
一般に、システムにインストールおよび維持されていないバイナリをシステム全体で複数のユーザーがアクセスできるようにする必要がある場合は、管理者が/usr/local/bin
に配置する必要があります。 /usr/local
の下に完全な階層があり、通常、ローカルでコンパイルおよびインストールされたソフトウェアパッケージに使用されます。
あなたがバイナリの唯一のユーザーである場合は、$HOME/bin
にインストールするのが適切な場所です。自分でインストールでき、あなただけが消費者になるからです。ソースからソフトウェアパッケージをコンパイルする場合は、$HOME
ディレクトリに部分的または完全なローカル階層を作成することも適切です。完全なローカル階層は次のようになります。
$HOME/bin
ローカルバイナリ$HOME/etc
ローカルバイナリのホスト固有のシステム構成$HOME/games
ローカルゲームバイナリ$HOME/include
ローカルCヘッダーファイル$HOME/lib
ローカルライブラリ$HOME/lib64
ローカル64ビットライブラリ$HOME/man
ローカルオンラインマニュアル$HOME/sbin
ローカルシステムバイナリ$HOME/share
ローカルアーキテクチャに依存しない階層$HOME/src
ローカルソースコードconfigure
を実行するときは、インストールのデフォルトのプレフィックスとして$HOME
を指定して、インストールのローカル階層を定義する必要があります。
./configure --prefix=$HOME
これでmake && make install
が実行されると、コンパイルされたバイナリ、パッケージ、マニュアルページ、およびライブラリが$HOME
ローカル階層にインストールされます。 $HOME
ローカル階層を手動で作成していない場合、make install
はソフトウェアパッケージに必要なディレクトリを作成します。
$HOME/bin
にインストールしたら、$HOME/bin
を$PATH
に追加するか、絶対$PATH
を使用してバイナリを呼び出すことができます。一部のディストリビューションでは、デフォルトで$HOME/bin
が$PATH
に含まれます。これをテストするには、echo $PATH
を使用して$HOME/bin
が存在するかどうかを確認するか、バイナリを$HOME/bin
に配置してwhich binaryname
を実行します。 $HOME/bin/binaryname
で戻ってきた場合、デフォルトでは$ PATHにあります。
さらに言及したように 、 /usr/local
は、本質的に、システム管理者によってインストールされたソフトウェア。/usr
は、ディストリビューションのパッケージからインストールされたソフトウェアに使用する必要があります。
この背後にある考え方は、分散ソフトウェア(rpm
やdeb
パッケージなど)との衝突を回避し、管理者に「ローカル」プレフィックスを完全に統治させることです。
これは、debianのようなディストリビューションを使用しながら、管理者がカスタムコンパイルソフトウェアをインストールできることを意味します。
FHSから
/または/ usrに配置されたソフトウェアは、システムのアップグレードによって上書きされる可能性があります(ただし、このような状況では、ディストリビューションが/ etcのデータを上書きしないことをお勧めします)。このため、正当な理由がない限り、ローカルソフトウェアを/ usr/localの外部に配置しないでください。
ユーザー固有のソフトウェアをインストールする場合、 さらに$HOME
を接頭辞として使用することを提案します 。これにより、書き込み権限があることが保証されます。個人的には、$HOME/.local
を使用すると、よりエレガントなソリューションになると思います。
$HOME/.local/share
は、 freedesktop.org XDGベースディレクトリ仕様 ですでに使用されているため、$HOME/.local/bin
を$PATH
に追加して、 $HOME/.local/lib
など。
プレフィックスを非表示のディレクトリにしたくない場合は、次のように、プレフィックスへのシンボリックリンクも簡単に作成できます。
ln -s .local ~/local
.config
(.local/etc
ではない)は、ユーザー固有の構成ファイルに使用される $XDG_CONFIG_HOME
のデフォルト値であることに注意してください。残念ながら、ソフトウェアの大部分はXDGを無視し、好きな場所(通常は$HOME
のルート)に構成ファイルを作成することも指摘しておきます。また、デフォルトの$XDG_CONFIG_HOME
が必要な場合は、$HOME/.config
が設定されていない場合があることに注意してください。
奇妙なことに、ディストリビューションのデフォルトの設定ファイル用に予約されているディレクトリがないため、/etc
のファイルがディストリビューションによって提供されたものか、システム管理者によって編集されたものかを知る方法はありません。