Linuxにプログラムをインストールし、デーモンとして実行したいと思います。 (この場合はTeam Talk 3ですが、質問は本質的に一般的です)。パッケージは提供されず、tarバイナリのみが提供されます。
慣例的に、ディレクトリ構造内でこのようなプログラムをどこに配置する必要がありますか?
オンラインで私はこれが/opt
「オプションのプラグインアプリケーション」には適用されますが、/usr
「ユーザープログラム」には適用されません。
あるチュートリアルが提案され、/opt
別のチュートリアルが提案されました/usr
。
もしそうなら、どれが「より正確ですか」?
答え1
「より正確」はディストリビューションによって異なります。/usr/local
(一般的に)パッケージマネージャが管理していないソフトウェアをどこに配置するのか、またはそのソフトウェア用に独自のパッケージを作成する方法については、配布手順を確認する必要があります。
あなたが言ったように、TeamSpeakはすべてを1つのフォルダに配置します(簡単には再構成できないかもしれません)。だからそれが/opt/
一番良いようです。
(ただし、たとえばArch Linuxではパッケージマネージャをインストールできるため、まだPKGBUILDを作成してそこにインストールします/opt
。)
リリース版もあります。通常追いかけようファイルシステム階層標準したがって、ここでより一般的な規則を見つけることができます。
答え2
プログラムをどこにインストールしますか?
独自のソフトウェアをコンパイルする場合は、最終的にインストール場所を制御できます。
- いつものように、手動でコンパイルおよびインストールされたソフトウェア(apt、yum、pacmanなどのパッケージマネージャを介していません)
/usr/local
。 - 一部のパッケージ(プログラム)は、関連する
/usr/local
すべてのファイルを保存するためのサブディレクトリを作成します/usr/local/openssl
。 - その他のパッケージ
/usr/local/sbin
などの既存のディレクトリに必要なファイルをインストールします/usr/local/etc
。
これはデフォルトの場所にすぎず、コンパイル中に変更される可能性があります。
./configure 実行時のインストール場所の定義
ソフトウェアをコンパイルするとき、設置場所を指定できます。--prefix=
実行時にこのオプションを使用します./configure
。を実行して、パッケージで利用可能なすべてのオプションを確認することをお勧めします$ ./configure --help | less
。また、パッケージに記載されているマニュアルを参照することをお勧めINSTALL
します。README
これには、パッケージ固有のインストール手順と依存関係情報が含まれる傾向があります。
参考にしてください
また、次の事項も指摘しなければならない。ソフトウェアはどこにでも保存できますが、、によるとFHS、ローカルにインストールされたソフトウェアのソースコードは/usr/local/src
!
ストック構成ファイルまたはバイナリをコピーする必要がある場合は、ソースツリーが保存されている場所を標準化すると、ツリーを簡単に見つけることができます。一部のパッケージでそれを使用しても、/usr/src
システムソフトウェア(カーネルなど)で指定された場所にソースコードを保存しないでください。
PATHが現在地を探していることを確認してください。
最後に、設置場所が$PATH
。 。/opt
$PATH
ここ良い議論がありました。アフリカ連合構成情報$PATH
追加資料:man hier
答え3
これLinux標準ライブラリそしてファイルシステム階層標準Linuxシステムでは、ソフトウェアをどこにインストールする方法の標準と言えます。ディストリビューションに含まれていないソフトウェアをディストリビューション内のサブディレクトリ()に配置することをお勧め/opt
し/usr/local/
ます/opt/<package> /opt/<provider> /usr/local/bin
。
最善の方法は、ダウンロードしたソフトウェアをdpkgやrpm形式などの配布用にインストール可能なパッケージに変換することです。これは、ソフトウェアの報告、アップグレード、および完全な削除に役立ちます。
答え4
バイナリは通常の規則に従ってフォルダに配置されますbin
。パッケージ構造の構成方法はユーザー次第です。/opt/<prog_name>/
バイナリのリストにすぎないか想像できます。