web-dev-qa-db-ja.com

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

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

130
theotherreceive

経験則、少なくともDebian風味のシステムでは:

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

  • /optは、アプリ全体のプレフィックスを使用して、システム全体で作成すると信頼できないものに使用します。 /opt/firefox-3.6.8/opt/mono-2.6.7など。ここにあるものは、より慎重な管理が必要ですが、システムを破壊する可能性も低く、フォルダーを削除するだけで削除されるため、削除が簡単です。

92
directhex

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

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

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

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

また、必要に応じて、/home/username/stage/bin$PATHに追加できます。

50
Sandy

FHSは/ usr/localに置くように言っています ディストリビューションがそれに触れてはならない場所。 /usr/local/binバイナリ用/usr/local/srcソースと/usr/local/libライブラリ用。詳細は FHS仕様 を参照してください

21
xenoterracide

ほとんどの場合、自分でコンパイルしたものを/opt。それは一種の疑似標準的な場所です。 /usr/localですが、私は自分のものを100%隔離することを好みます。

10
Scott Anderson

それらを/usr/local/src

私が行うことは、このディレクトリにソースを抽出することです。それはのようなパスを作成します

/usr/local/src/postgresql-8.3.7

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

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

すべての建物を/usr/local/src/postgresql

このようにすることは、バージョン間でポップする必要がある場合に役立ち、使用しているバージョンを文書化します。

9

これを思い出して、私はcheckinstallをより頻繁に使用する必要があります!そうすればいつものように

 ./configure
 make

に続く

 Sudo checkinstall

。debファイルを作成するには...

6
Kevin Cantu

[〜#〜] fhs [〜#〜]/usr/local/はソースからコンパイルされたアプリケーションに使用され、/opt/は、ご使用のオペレーティングシステムベンダーでサポートされていないサードパーティアプリケーションに使用されます。

5
Aaron Toponce

可能性がある場合-ソフトウェアをコンパイルしてからFCパッケージを作成することをお勧めします(ソフトウェアパッケージのインストールにyumを使用していると思います)。次に、独自のコンパイル済みソフトウェアのパッケージをインストールし、システム全体を台無しにせずに削除できます。

5
Eimantas

自分で構築したいくつかのアプリケーションを簡単にインストールおよび削除したい場合は、単純なパッケージマネージャーとして Stow を使用できます。

5
Daniel James

私がお勧めする2つのこと:

システム全体: stow を使用し、/ usr/local/stow/package-versionにインストールします。その後、バージョンを簡単に切り替えることができます。

私の家で、または/ usr/local書き込み権限がない場合は、個人的に〜/ .localにプログラムをインストールします。これは、 XDG標準

Stowをローカルで使用することもできますが、私はしませんでした:)

4
elmarco

ソースtarballからdebやrpmを作成するのはそれほど難しくありません。そうすれば、ディストリビューションのパッケージマネージャーの機能を使用して、システムをクリーンに保つことができます。ほとんどの場合、これは私が行うことです。小さなrpmを作成するだけです。

3
wzzrd

多くの開発を行っているため、私はほとんどの人とは少し異なる設定をしています。/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

私はすべてに対してこれをするつもりはありませんが、開発中のそのニース。

3
jacksonh

アプリケーションをコンパイルしている場合は、PATH環境変数にその実行可能ファイルのパスを追加できます。これは他のユーザーには影響しません。

2
Hemant

「それが属する場所に置く」オプションは常にありますが、最初に単純なrpmを記述します。

2
Nils

システム上のすべてのユーザーがアプリケーションを使用できるようにし、必要な権限を持っている場合は、/ optを使用します。アプリケーションを自分(およびroot)だけが使用できるようにするには、/ home/usernameを使用します。

1
Silviu Bogan

RPMを書くことは難しいことではなく、物を置く場所に関するガイドラインがあり、簡単にアンインストールできます。

これを行う場合は、/usrの下ではなく、/usr/localの下にファイルをインストールします。これは、パッケージングシステムを介して送信される他のすべてのファイルと同様です。

0
user55149

これを行う最も簡単な方法は、ソースパッケージ(.src.rpm(RPMitesの場合)、それをアンパックし、新しいソース/構成/何でもそれにハッキングし、バージョンを適切に変更してビルドします。これをインストールすると、パッケージマネージャーが新しいパッケージを認識し、依存関係を考慮してアンインストール/更新できるようになります。

これは初めての雑用ですが、新しいバージョン(またはいくつかの重要なパッチ)が出てきた場合は、更新する方が簡単です。別の利点は、ローカルソフトウェアを使用して独自のリポジトリを作成し、共有できることです。実験室の機械によって。

0
vonbrand