web-dev-qa-db-ja.com

すでにインストールされているアプリケーションに対するソースからのコンパイルの影響

私はUbuntu12.04を使用しています。バージョン1.7でリポジトリ(すべての依存関係を含む)からpackage xをインストールしたが、バージョン1.8でのみ使用可能な機能が必要なため、ソースtarをダウンロードしてコンパイルするとします。

./configure  
make  
make install
  • これは既存の1.7バイナリを上書きしますか?
  • 既存のバイナリが上書きされた場合、パッケージマネージャーは新しいバージョン(1.8)を反映し、将来パッケージマネージャーによってpackage xを更新できますか?
  • package ypackage x 1.8の依存関係がある場合、それは満たされますか?

私はこれを説明する良い情報源をオンラインで見つけようとしています。何かアドバイスがあれば教えてください。

8

ソフトウェアセンターから、またはAPTコマンド(apt-getaptitude)またはdpkgを使用してインストールしたものは、パッケージ管理システムに認識されています。 dpkgは低レベルのパッケージ操作ツールです。APTとその仲間は、dpkgを呼び出して実際のインストールを実行し、依存関係とパッケージのダウンロードも処理する高レベルのツールです。

ソースからプログラムをコンパイルする場合、それはパッケージマネージャーに認識されません。 Linuxでの規則は、物事を追跡するのに苦労し、インストールをオーバーライドするという苦痛について従う必要があります。

  • /bin/lib/sbin/usrはパッケージマネージャーに予約されています。
  • /usr/localがシステム管理者用であることを除いて—そこのディレクトリ階層を尊重しますが、ファイルを管理するのはあなた自身です。

より新しいバージョンのソフトウェアを入手する方法のリストについては、 buntu10.04でvim/gvimを7.3にアップグレードする最良の方法? を参照してください。最も簡単な方法は、 [〜#〜] ppa [〜#〜] (ある場合)を取得することです。バイナリパッケージを入手するか、ソースからコンパイルする場合は、 stow を使用して手動でインストールしたソフトウェアを管理することをお勧めします。または、 独自の.debパッケージを作成 —作業量は多くなりますが、頻繁にアップグレードする場合(通常、次のマイナーバージョン用にパッケージをやり直すのは非常に高速です)、またはにデプロイする場合に効果があります。同じディストリビューションを実行している多くのマシン。

ほとんどのプログラムでは、./configure && make && Sudo make installを実行すると、プログラムは/usr/localの下にインストールされます。ソースに付属のドキュメント(通常はREADMEまたはINSTALLというファイル)を確認するか、./configure --helpを実行してこれが当てはまるかどうかを確認してください。プログラムが/usr/localの下にインストールされている場合、パッケージマネージャーによって提供されるバージョンに干渉することはありません。 /usr/local/binはシステムPATHで最初に来ます。管理者(root)としてmake installを実行する必要があることに注意してください。 rootとしてコンパイルしないでください。上記のように、/usr/localに直接インストールするのではなく、stowを使用することをお勧めします。

これはパッケージや他の多くのものに依存します

  1. 使用される命名規則-バイナリにはファイル名にバージョン番号が含まれていますか
  2. インストール場所-デフォルトではoptにありますが、パッケージ化されたバージョンは/ usrにあります
  3. より多くの可能性

短編小説:
一般的な答えはありません。パッケージに大きく依存します。ソースからコンパイルするのではなく、可能であれば公式の+ 1PPAを使用する必要があります。

1
RobotHumans