自分でコンパイルしたソフトウェアはどこに置けばいいですか?

自分でコンパイルしたソフトウェアはどこに置けばいいですか?

Fedora マシンでソフトウェアをコンパイルする必要があります。パッケージ化されたソフトウェアに干渉しないようにするには、どこに置くのが最適でしょうか?

答え1

少なくとも Debian 系のシステムでは、経験則は次のようになります。

  • /usr/local「システム全体」に関係するもの、つまり/usr/localディストリビューションのデフォルトの にある傾向があり、 、などの$PATH標準的な UNIX ディレクトリ階層に従います。/usr/local/bin/usr/local/lib

  • /optシステム全体に公開することが信頼できないものについては、アプリごとにプレフィックス ( 、/opt/firefox-3.6.8など/opt/mono-2.6.7) を付けて保存します。ここに保存するファイルはより慎重な管理が必要ですが、システムに障害を起こす可能性も低く、フォルダを削除するだけで消えるので削除も簡単です。

答え2

本当に干渉させたくない場合は、 のどこにも置かないでください$PATH

にインストールしたい場合は$PATH、少なくとも にインストールしないようにしてください/usr/local。ディストリビューションによって にインストールされた場合でも、多くのソフトウェアが にインストールされていることがわかりました/usr

カスタムコンパイルされたソフトウェアをインストールする私のお気に入りの方法は、自分の$HOMEディレクトリにインストールすることです。この方法なら、何も使用する必要がなくsudo、システムの他の部分から非常にうまく分離されます。たとえば、次のようになります。

mkdir ~/stage
./configure --prefix=/home/username/stage && make && make install

必要に応じて、/home/username/stage/binに追加することもできます$PATH

答え3

FHSはそれを/usr/localに置くように言っていますディストリビューションが触れるべきではない場所。 ソースとライブラリの/usr/local/binバイナリについては、/usr/local/src/usr/local/libFHS仕様詳細情報

答え4

それらを に置きます/usr/local/src

私がやっているのは、このディレクトリにソースを展開することです。次のようなパスが作成されます。

/usr/local/src/postgresql-8.3.7

次に、それにシンボリック リンクを作成します。

/usr/local/src # ln -s  postgresql-8.3.7 postgresql

すべての構築を で行います/usr/local/src/postgresql

この方法を使用すると、バージョン間を切り替えたり、どのバージョンを使用しているかを文書化したりする必要がある場合に役立ちます。

関連情報