回答:
すべてのソフトウェアはプログラムであり、ソースパッケージとも呼ばれます。したがって、システムで実行するには、すべてのソースパッケージを最初にビルドする必要があります。
バイナリパッケージがすでに構築されてから1ですソース、多数のユーザがインストールして使用できるように、ソフトウェアで提供される一般的な機能とパラメータを持つ人で。
バイナリパッケージは簡単にインストールできます。
しかし、アップストリームパッケージのすべてのオプションがあるわけではありません。
したがって、ソースからインストールする場合は、ソースコードを自分でビルドする必要があります。つまり、依存関係を自分で管理する必要があります。また、それに応じてビルドできるように、パッケージのすべての機能を認識する必要があります。
ソースからインストールする利点:
短いインストールで元があなたに与え重いカスタマイズ、同時にオプションからインストールしながら、それは、多くの労力を要しバイナリは簡単ですが、あなたがあり、カスタマイズすることはできませんあなたが望むように。
更新:以下のコメントにセキュリティに関連する引数を追加します。はい、バイナリからインストールする場合、ソースコードの整合性がないことは事実です。ただし、バイナリの入手元によって異なります。新しいプロジェクトのバイナリを入手できる信頼できるソースがたくさんありますが、唯一のマイナスは時間です。更新のバイナリまたは新しいプロジェクトでさえ、信頼できるリポジトリに表示されるまでに時間がかかる場合があります。
そして何よりも、ソフトウェアのセキュリティについて、ジョーが以下のコメントで提供しているベルラボのこの陽気なページを強調したいと思います。
ソースファイルには、開発者が選択した任意の言語(C、C ++、Pythonなど)で開発者が作成した元のコードが含まれ、汎用です。ディストリビューションに固有のものではなく、多くの場合、オペレーティングシステムに固有のものでもありません。
パッケージ(RPMやDEBなど)は、特定のディストリビューション用に事前に準備されたバイナリ実行可能ファイル(または解釈されたスクリプトなど)です。コンパイル用のソースの準備(必要なパッチなどの追加)、実際のコンパイル、ディストリビューション固有の構成ファイルの作成、インストール前後のスクリプトの作成などのタスクはすべて、パッケージメンテナーによって行われます。
言い換えると、すべてのロバの作業はパッケージで行われていますが、ソースからインストールする場合は自分で行う必要があります。
次のように、ほぼすべての場合にパッケージを使用する方がはるかに簡単です。
ただし、パッケージ化されたバージョンが古いバージョンである場合もあれば、パッケージ化されたバージョンがない場合もあります。その場合、自分でコンパイルすることが唯一のオプションです。その場合、次のことを考慮する必要があります。
dev
パッケージを含むすべての依存関係がインストールされていることを確認する必要があります-それらの多くが存在する可能性があります。余分な労力を払う意思がある場合は、ソースからコンパイルすると次の利点が得られます。
一部のディストリビューションのビルド済みパッケージは、インストールして実行する準備が整ったバイナリ実行可能ファイルを提供しますが(RPMおよびDEBは例です)、他のディストリビューションはコンパイルプロセスを単純化するパッケージを提供します。
Gentoo ebuilds
がその一例です。パッケージは基本的に、実行可能ファイルをコンパイルおよびインストールする方法を説明するパッケージマネージャーへの指示です。これには、従来のパッケージマネージャーの多くの利点(自動更新、アンインストールなど)があり、ユーザーは自分の好みに合わせてコンパイルプロセスを最適化できます。
Arch Linuxには、メインストリームパッケージがバイナリであるパッケージシステムがありますが、多くの追加パッケージはPKGBUILD
ファイルを使用してシステム上でコンパイルされます。
ソースからビルドすると、マシンのアーキテクチャを正確に指定できます。新しいCPUには、コンパイラが理解できる追加の命令があり、パフォーマンスを少し絞ります。通常、ビルド前のパッケージは、まだ一般的に使用されている最も古いCPUに依存しています。
これは、たとえばバイオインフォマティックパイプラインのツールや地球物理モデリングツールなど、CPUを非常に頻繁に使用するプロジェクトクリティカルなアプリケーションにとって最も重要です。このようなソフトウェアは、非常に制御された環境で実行され、それ自体ではアクセス制御を備えていません。そのため、数日または数時間でパッチを適用する必要のある緊急のセキュリティバグはほとんどありません。最初は未知のアーキテクチャの別のマシンで実行する必要はほとんどありません。
はい、私は知っています、コンピュータは今非常に非常に高速であり、あなたが取る努力や行動は非常に非常に高価ですが、座ってプログラムを完了するのを待って3日目に(これは私が話している状況です)そのような真実疑わしく見え始めます。
別の方法として、ブラウザなどのアプリケーションは、それらを最新の状態に保つことが非常に重要であるため、メンテナーリポジトリから(より多くのダウンロード済みのビルド済みパッケージからではなく)使用する必要があります。
両方の世界を最大限に活用する1つの方法(最新のソフトウェア、簡単なインストール/アンインストール、ほとんどのディストリビューションの調整と適応、現地の要件に合わせた最適化が可能)、コスト(最新の状態を維持し、バグに注意する必要があります)そして、土壇場のパッチ、開発に従ってください、あなたはバグ修正とバージョン間の非互換性に関してあなた自身であります)軽減することはできません(多く)、あなたのディストリビューションからのソースパッケージから始めて、あなた自身のパッケージを構築することです はい、構築およびインストールするだけではありません。