web-dev-qa-db-ja.com

Linuxでプログラムをインストールする必要があるディレクトリはどれですか?

Linuxにプログラムをインストールしてデーモンとして実行したい。 (この場合はチームスピーク3ですが、問題は本質的に一般的です)。パッケージは提供されていません。tarされたバイナリのみが提供されています。そのようなプログラムを慣例的にディレクトリ構造のどこに置くべきですか?

ウェブ上で、/ optは「オプションのアドオンアプリ」用、/ usrは「ユーザープログラム」用であることがわかりました。/optを提案しているチュートリアルと、/ usrを提案しているチュートリアルが見つかりました。

それで、どちらが「より正しい」ですか?

52
Eiver

「より正確」は、ディストリビューションによって異なります。パッケージマネージャーで管理されていないソフトウェアを配置する場所に関するディストリビューションのガイドラインを確認する必要があります(多くの場合/usr/local)OR独自のパッケージを作成する方法について。

TeamSpeakはすべてを1つのフォルダーに配置するだけであると述べたとおり(再編成は簡単ではない場合があります)、はい/opt/がおそらく最善です。

(しかし、たとえば、Archlinuxでは、パッケージマネージャーがそこにインストールできるため、PKGBUILDを作成して/optにインストールします。)

また、ディストリビューション通常Filesystem Hierarchy Standard に従っているため、これがより一般的な規則を探す場所です。

33
Leiaz

独自のソフトウェアをコンパイルする場合は、最終的にインストール場所を制御します。慣例により、(apt、yum、pacmanなどのパッケージマネージャーを介さずに)手動でコンパイルおよびインストールされたソフトウェアは、/usr/localにインストールされます。一部のパッケージ(プログラム)は、/usr/localなど、関連するすべてのファイルを格納するために/usr/local/openssl内にサブディレクトリを作成します。他のパッケージは、/usr/local/sbin/usr/local/etcなどの既存のディレクトリに必要なファイルをインストールします。これらは単にデフォルトの場所であり、コンパイル中に変更できます。

ソフトウェアをコンパイルする場合、--prefix=の実行時に./configureオプションを使用してインストール場所を指定できます。 $ ./configure --help | lessを実行して、パッケージで使用可能なすべてのオプションを確認することを強くお勧めします。さらに、パッケージに付属しているINSTALLおよびREADMEドキュメントを参照することをお勧めします。これらには、パッケージに固有のインストール手順および依存関係情報が含まれている傾向があります。

[〜#〜] fhs [〜#〜] によれば、どこにでもソフトウェアを保存できますが、ローカルにインストールされたソフトウェアのソースコードは/usr/local/srcに保存する必要があることにも注意してください。ソースツリーの保存場所を標準化すると、ストック構成ファイルまたはバイナリをコピーする必要がある場合に、ツリーを簡単に見つけることができます。一部のパッケージで使用されていますが、ソースコードは/usr/srcに保存しないでください。これは、カーネルなどのシステムソフトウェア用に指定されているためです。

最後に、インストール場所が$PATHに含まれていることを確認する必要があります。パッケージを/optにインストールすることに決めたが、$PATHにない場合、シェルは実行可能ファイルを見つけられず、プログラムを呼び出すために絶対パスを使用する必要があります。 ここ[〜#〜] au [〜#〜] からのすばらしいディスカッションは$PATHの構成についてです

追加の読み物:man hier

7
Creek

Linux Standard BaseFilesystem Hierarchy Standard は、おそらくLinuxシステムにソフトウェアをインストールする場所と方法の標準であり、含まれていないソフトウェアを配置することをお勧めします/optまたは/usr/local/またはその中のサブディレクトリ(/opt/<package> /opt/<provider> /usr/local/bin)。

ベストプラクティスは、ダウンロードしたソフトウェアを、dpkgやrpm形式など、ディストリビューションに固有のインストール可能なソフトウェアパッケージに変換することです。これにより、ソフトウェアの報告、アップグレード、および完全な削除が容易になります。

5
HBruijn

バイナリは、一般的な規則に従ってbinフォルダーに格納されます。パッケージ構造をどのように整理するかは自由です。/opt/<prog_name>/バイナリのリストだけの場合。

1
bbsanem

Eclipseインストーラーを使用してEclipseをインストールするときに、同じ質問がありました。

Gimp、Perl、Vimが/usr/shareフォルダにインストールされていることに気づき、そこにインストールすることにしました。

1
senpai

~/.local/bin

これは systemdの標準 で定義されており、ディレクトリの内容について次のように記述されています。

ユーザーの$PATH検索パスに表示される実行可能ファイル。シェルからの呼び出しに役立たない実行可能ファイルをこのディレクトリに配置しないことをお勧めします。これらは、代わりに~/.local/lib/のサブディレクトリに配置する必要があります。この場所にアーキテクチャ依存のバイナリを配置するときは注意が必要です。これは、異なるアーキテクチャの複数のホスト間でホームディレクトリが共有されている場合に問題になる可能性があります。

ディストリビューションによっては、これを~/.bashrcに入れて、パスにディレクトリを追加する必要がある場合があります。

PATH=$PATH:~/.local/bin

this も参照してください。

0
Matthias Braun

プログラムのパック方法に応じて、プログラムをインストールする方法は2つあります。

  1. ソフトウェアマネージャーを介して(apt、synaptic、Gdebiなど)–プログラムはパッケージの形式で、通常は.debまたはrpmです。ほとんどの場合、ソフトウェアマネージャーは依存関係を処理し、通常はバイナリを/usr/binに、構成ファイルを/etcにインストールします。彼らはまたあなたの家のプログラムのための設定ファイルを作成するかもしれません、通常~/.foo。このファイルを編集できる場合は、この方法でセッションの設定を簡単に変更することもできます。パッケージを削除すると、マネージャーはすべてのファイルを見つけ、それらを完全に削除します(すべての場所が特別なテキストファイルに保存されています)。しかし、それはいくつかの設定ファイル、例えばあなたのホームフォルダにあるものを保存するかもしれません。

  2. プログラム(通常は圧縮)を、ご使用のアーキテクチャー用に事前コンパイルされたバイナリー・ファイルの形式でダウンロードします。プログラムの実行可能ファイルは通常、他のファイル(動的にリンクされたライブラリなど)の隣の単一のフォルダにあります。このフォルダ全体は、ルート権限で/optまたは/usr/binにコピーできます。権限が許可する場合は、任意のユーザーが使用できます。私自身、バイナリファイルを含むフォルダをホームフォルダの~/binに配置しました。これで、binファイルを呼び出してプログラムを実行できるはずです。

0
Štěpán Doan