いつソースからコンパイルしてインストールする必要がありますか?

いつソースからコンパイルしてインストールする必要がありますか?

Linuxシステムにソフトウェアをインストールするには、さまざまなツール(たとえば、、yumなどapt-get)を使用して、リポジトリからパッケージをインポートまたはダウンロードしたパッケージをインストールできます。rpmdpkg

または.tar.gz2、(一般的に)ソースコードアーカイブをダウンロードし、以下を使用して手動でコンパイルすることもできます.

./configure
make
make install

または同様です。私の質問は、いつソースからコンパイルしてインストールする必要がありますか?

答え1

通常、ディストリビューションが提供するパッケージを使用し、関連するパッケージマネージャ(dpkg/apt-getDebianベースのシステムなど)を使用することをお勧めします。ディストリビューションの使命は、競合が発生しないようにソフトウェアをパッケージ化して構成することです。

場合によっては、ディストリビューションに必要なソフトウェアがない場合、または次のような他の理由がある場合があります。

  • 最新バージョンが必要です。
  • 特別な構成をしたい、パッチなどを含めたいです。
  • より高いパフォーマンスが必要なので、特にハードウェア(プロセッサ...)に合わせてソフトウェアを最適化したいと思います。

ソフトウェアを直接コンパイルしたいからです(特にすべての依存関係がわからない場合は非常に難しいかもしれません)。

これには、次のようなさまざまなオプションがあります。

  • ソース、通常はtarball(=*.tar.gzファイル)、またはアップストリームソースリポジトリ(githubなど)から再構築します。
  • ビルド済みのパッケージをダウンロード/インストールします(直接または非公式のリポジトリを使用)。
  • ディストリビューションの既存のパッケージソースを使用し、手動で更新した後にインストールできる新しいパッケージを作成します。

ソフトウェアのインストールにパッケージマネージャを使用しない場合は、パッケージマネージャが使用する場所以外の場所にソフトウェアをインストールすることをお勧めします。指定されたプレフィックスはです/usr/local/。ホームフォルダの新しいサブディレクトリ/optまたはホームフォルダ内の場所にインストールすることもできます。

答え2

私が言うことは、必要な場合にのみソースからコンパイルすることです。システムを管理するときにどのような対価を取っても、パッケージマネージャの管理機能を失わないようにする必要があります。

通常、ソースパッケージをインポートしてビルドするか、ソースから再ビルドしますが、ディストリビューションパッケージマネージャのパッケージ開発者に提供されているツールを使用してこれを行います。

はい

通常、RedhatベースのディストリビューションのソースRPMをダウンロードし、そのパッケージの最新のtarballに変更してから、次のように再構築します。

$ rpmbuild --rebuild some.package.src.rpm

再ビルドして使用またはyumインストールしますrpm

引用する

答え3

ディストリビューションパッケージが要件に合わない場合は、ソースからコンパイルしてインストールする必要があります。たとえば、パッケージにコンパイルされていないオプションを追加する必要がある場合、または特定のライブラリに接続するためにパスを変更する必要がある場合です。または、まだパッケージされていない最新バージョンが必要な場合。

答え4

短い答え:必要なとき。

長い答え:ほとんどのディストリビュータは、最も一般的に使用されるソフトウェアのプリコンパイル済みパッケージをリポジトリに提供します。まず、コンパイルは初心者にとって非常に痛いかもしれません。第二に、ディストリビュータは、すべてのシステムが同じバイナリを持っていると仮定することができるので、デプロイがより安定しています。これらのプリコンパイル済みパッケージは、リポジトリにリリースされる前にパブリッシャとバージョンに応じて非常に困難なテスト手順を実行します。したがって、直接コンパイルする前にディストリビューションのソフトウェアソースを使用することをお勧めします。他の方法がない場合、またはソフトウェアリポジトリでパッケージを使用できず、他のソフトウェアが同じパッケージを提供していない場合は、手動でコンパイルできます。

関連情報