ほとんどのディストリビューションには、プログラムを簡単にインストールできるパッケージマネージャがあります。ソースコードを含むパッケージの場合は、いつでも直接コンパイルできます。手動コンパイル結果とパッケージインストール結果の間には明らかな違いはありますか? (同じコードベースを想定)
答え1
手動コンパイル結果とパッケージインストール結果の間には明らかな違いはありますか? (同じコードベースを想定)
たとえば、特定の機能を無効にしたり、速度ではなくコードサイズを最適化したりするために生成されたバイナリを調整するために使用できるさまざまなコンパイル時間フラグがあります。
また、ドライブビルドシステムを備えた多くのパッケージは、手動でインストールconfigure
するときにパッケージの/usr/local
デフォルト値があります/usr
。
ルート図ソースコードからコンパイルします。柔軟性を犠牲にすることなく、パッケージマネージャの利便性を享受できます(いつでもebuild
ローカルオーバーレイで調整できます)。
答え2
...簡単な答えは、プログラムがすでにコンパイルされ、特定のパターン、メモリ、プロセッサ、ファイルシステムなどに応じて「実行準備」になっていることです。コンパイルに加えて、以下を作成できるソースコードがすでにあります。お金!あなたが望むなら!結果のプログラムはより効率的になるでしょう。はすでに標準化されたサイズで店頭で購入したり、テーラーに行って寸法に応じて注文した方がより公正で快適です。
答え3
ソースコードを直接コンパイルして生成されたバイナリは、パッケージに含まれるバイナリとは大きく異なることがあります(コンパイラフラグと配布パッチによって異なります)。
パッケージには通常、従来の構成、制作、インストールダンスでは処理されないいくつかの便利な追加機能が付属しています。
- 簡単なアップグレード方法
- パッケージを削除する簡単な方法。一部のプロジェクトには実行オプションが含まれていますが、
make uninstall
すべてではなく、インストールされているすべてのソフトウェアのソースコードを保持する必要があります。 - 依存関係を自動的にインストールします。パッケージは、パッケージマネージャがインストールする他のパッケージによって異なります。コードをコンパイルする前に、正しい依存関係を直接インストールする必要があります。
- SystemDユニットファイルまたはinit.dスクリプトはパッケージによってインストールされます。
- デフォルトのディレクトリ、プロファイル、ユーザー、およびグループが作成されます。