FHSから

FHSから

Perforceバージョン管理クライアント実行可能ファイル()がありますp4/opt/localルートアクセス権がないため入れません。配置する必要がある標準的な場所はありますか$HOME

ローカル実行可能ファイル/バイナリを配置する必要があるファイルシステム階層にルールがありますか$HOME/bin

上記のようなルールが見つかりません。FHSに関するウィキペディア記事

$HOME/binまた、ルールが存在する場合は、ディレクトリパスまたはディレクトリの場所を明示的に含める必要がありますかbin

答え1

通常、システムにインストールされておらず、保守されているバイナリがシステム全体にわたっており、複数のユーザーがアクセスできる必要がある場合は、管理者はこれを行います/usr/local/bin/usr/local

バイナリの唯一のユーザーの場合は、次の場所にインストールするか$HOME/bin$HOME/.local/binあなたが直接インストールすることができ、あなたが唯一の消費者になるので、正しい場所です。ソースからパッケージをコンパイルする場合、$HOMEまたはディレクトリ$HOME/.localに部分的または完全なローカル階層を作成することも適切です。を使用すると、$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$PATHecho $PATH$HOME/bin$HOME/binwhich binaryname$HOME/bin/binaryname$PATH

答え2

〜のように言及されたユーザー/usr/local本質的にシステム管理者がインストールしたソフトウェアのプレフィックスとして使用されますが、配布パッケージからインストールされた/usrソフトウェアには使用する必要があります。

その背後にあるアイデアは、分散ソフトウェア(rpmパッケージなど)とのdeb競合を避け、管理者に「ローカル」プレフィックスに対するすべての権限を付与することです。

これは、管理者がDebianなどのディストリビューションを使用しながらカスタムコンパイルされたソフトウェアをインストールできることを意味します。

FHSから

/または/usrのソフトウェアはシステムアップグレードで上書きできます(この場合、ディストリビューションは/ etcのデータを上書きしないことをお勧めします)。したがって、ローカルソフトウェアは、正当な理由なく/usr/localの外側に配置しないでください。

ユーザー固有のソフトウェアをインストールするとき、ウーサーが提案した$HOME書き込みアクセス権を確保するため、プレフィックスとして使用してください。個人的には、これが$HOME/.local(希望的に)素敵できれいなホームディレクトリを乱すのを防ぐので、よりエレガントなソリューションだと思います!

$HOME/.local/shareそして$HOME/.local/binすでに使用中freedesktop.org XDGの基本ディレクトリ仕様、ディストリビューションを追加するように求められます$HOME/.local/binので、作業中に作成するには$PATH多くの想像力は必要ありません。$HOME/.local/lib

プレフィックスが隠しディレクトリになりたくない場合は、次のようにそのディレクトリへのシンボリックリンクを簡単に作成できます。

ln -s .local ~/local

サイドノート

.config(not .local/etc)がデフォルト値であることは注目に値します。$XDG_CONFIG_HOMEユーザー固有の構成ファイル用。残念ながら、ソフトウェアのかなりの部分がXDGを無視し、どこでも(通常はXDGのルートディレクトリに$HOME)設定ファイルを生成することを指摘したいと思います。また$XDG_CONFIG_HOME、デフォルトが必要な場合は設定を解除できます。$HOME/.config

奇妙なことに、ディストリビューションのデフォルト設定ファイル用に予約されたディレクトリがないため、その中のファイルがディストリビュー/etcションで提供されているのか、システム管理者が編集したのかを知る方法はありません。

答え3

XDGの基本ディレクトリ仕様バージョン0.8では、ローカル実行可能ファイルを次の場所に配置する必要があることを指定します。~/.local/bin:

ユーザー固有の実行可能ファイルは$ HOME / .local / binに保存できます。ディストリビューションでは、このディレクトリをUNIX $ PATH環境変数の適切な場所に表示する必要があります。

ディストリビューションが仕様に従う場合は、「明示的にパスを含める」必要はありません。これ前の質問どのディストリビューションがこれを実行できるかを確認してください。

答え4

/usr/local/binに基づいているようです。インターネットウェブサイト Wiki 技術

関連情報は/usr/bin以下で提供されます。ファイルシステム階層標準、彼らはこのフォルダをシステム上で実行可能なコマンドのホームディレクトリとして定義します。

/usr/bin間と/usr/local/bin間の追加情報ウィキ技術:

  /usr/bin一般ユーザーのためにオペレーティングシステムによって提供される実行可能ファイルの場所。たとえば、ファイルは通常コアオペレーティングシステムには必要ではなく、ルートからアクセスすることはできませんが、これは可能です。

  /usr/local/binすべてのユーザーがパブリックシステムファイルとして使用するためにシステムに追加しますが、オペレーティングシステムでサポートされている公式ファイルではなく、すべての追加の実行可能ファイルの場所です。

   全体的に、/usr/binこれはオペレーティングシステムでバイナリを提供する場所です。/usr/local/binユーザーがバイナリをダウンロードする場所です。

関連情報