Fedoraマシンでいくつかのソフトウェアをコンパイルする必要があります。パッケージ化されたソフトウェアに干渉しないように、それを配置するのに最適な場所はどこですか?
経験則、少なくともDebian風味のシステムでは:
/usr/local
は、「システム全体」に対応するもの、つまり/usr/local
は、ディストリビューションのデフォルトの$PATH
にある傾向があり、/usr/local/bin
、/usr/local/lib
などの標準のUNIXディレクトリ階層に従います。
/opt
は、アプリ全体のプレフィックスを使用して、システム全体で作成すると信頼できないものに使用します。 /opt/firefox-3.6.8
、/opt/mono-2.6.7
など。ここにあるものは、より慎重な管理が必要ですが、システムを破壊する可能性も低く、フォルダーを削除するだけで削除されるため、削除が簡単です。
本当に干渉させたくない場合は、$PATH
のどこにも配置しないでください。
$PATH
で使用する場合は、少なくとも/usr/local
にインストールしないでください。ディストリビューションによって/usr
にインストールされている場合でも、多くのソフトウェアがそこにあることがわかりました。
カスタムコンパイルされたソフトウェアをインストールするための私のお気に入りの方法は、私の$HOME
ディレクトリにあります。そうすれば、何でもSudo
を使用する必要がなくなり、システムの他の部分から非常にうまく分離されます。例えば:
mkdir ~/stage
./configure --prefix=/home/username/stage && make && make install
また、必要に応じて、/home/username/stage/bin
を$PATH
に追加できます。
FHSは/ usr/localに置くように言っています ディストリビューションがそれに触れてはならない場所。 /usr/local/bin
バイナリ用/usr/local/src
ソースと/usr/local/lib
ライブラリ用。詳細は FHS仕様 を参照してください
ほとんどの場合、自分でコンパイルしたものを/opt
。それは一種の疑似標準的な場所です。 /usr/local
ですが、私は自分のものを100%隔離することを好みます。
それらを/usr/local/src
。
私が行うことは、このディレクトリにソースを抽出することです。それはのようなパスを作成します
/usr/local/src/postgresql-8.3.7
次に、それにシンボリックリンクを作成します。
/usr/local/src # ln -s postgresql-8.3.7 postgresql
すべての建物を/usr/local/src/postgresql
。
このようにすることは、バージョン間でポップする必要がある場合に役立ち、使用しているバージョンを文書化します。
これを思い出して、私はcheckinstallをより頻繁に使用する必要があります!そうすればいつものように
./configure
make
に続く
Sudo checkinstall
。debファイルを作成するには...
[〜#〜] fhs [〜#〜] 、/usr/local/
はソースからコンパイルされたアプリケーションに使用され、/opt/
は、ご使用のオペレーティングシステムベンダーでサポートされていないサードパーティアプリケーションに使用されます。
可能性がある場合-ソフトウェアをコンパイルしてからFCパッケージを作成することをお勧めします(ソフトウェアパッケージのインストールにyumを使用していると思います)。次に、独自のコンパイル済みソフトウェアのパッケージをインストールし、システム全体を台無しにせずに削除できます。
自分で構築したいくつかのアプリケーションを簡単にインストールおよび削除したい場合は、単純なパッケージマネージャーとして Stow を使用できます。
ソースtarballからdebやrpmを作成するのはそれほど難しくありません。そうすれば、ディストリビューションのパッケージマネージャーの機能を使用して、システムをクリーンに保つことができます。ほとんどの場合、これは私が行うことです。小さなrpmを作成するだけです。
多くの開発を行っているため、私はほとんどの人とは少し異なる設定をしています。/home/jackson/bin /ディレクトリーがあり、そこにファイルをインストールし、.bashrcを編集してこれを追加しました。
export PATH=/home/jackson/bin/bin::$PATH
export LD_LIBRARY_PATH=/home/jackson/bin/lib:$LD_LIBRARY_PATH
export PKG_CONFIG_PATH=/home/jackson/bin/lib/pkgconfig:$PKG_CONFIG_PATH
私はすべてに対してこれをするつもりはありませんが、開発中のそのニース。
アプリケーションをコンパイルしている場合は、PATH環境変数にその実行可能ファイルのパスを追加できます。これは他のユーザーには影響しません。
「それが属する場所に置く」オプションは常にありますが、最初に単純なrpmを記述します。
システム上のすべてのユーザーがアプリケーションを使用できるようにし、必要な権限を持っている場合は、/ optを使用します。アプリケーションを自分(およびroot)だけが使用できるようにするには、/ home/usernameを使用します。
RPMを書くことは難しいことではなく、物を置く場所に関するガイドラインがあり、簡単にアンインストールできます。
これを行う場合は、/usr
の下ではなく、/usr/local
の下にファイルをインストールします。これは、パッケージングシステムを介して送信される他のすべてのファイルと同様です。
これを行う最も簡単な方法は、ソースパッケージ(.src.rpm
(RPMitesの場合)、それをアンパックし、新しいソース/構成/何でもそれにハッキングし、バージョンを適切に変更してビルドします。これをインストールすると、パッケージマネージャーが新しいパッケージを認識し、依存関係を考慮してアンインストール/更新できるようになります。
これは初めての雑用ですが、新しいバージョン(またはいくつかの重要なパッチ)が出てきた場合は、更新する方が簡単です。別の利点は、ローカルソフトウェアを使用して独自のリポジトリを作成し、共有できることです。実験室の機械によって。