ソースからビルドすることとインストールパッケージを使用することの違いは何ですか?

ソースからビルドすることとインストールパッケージを使用することの違いは何ですか?

知りたいです。何かをインストールするときは、ダブルクリックで実行可能ファイルを簡単にインストールする方法があるのか​​、ソースからビルドする方法があるのか​​を知りたいです。

後者の場合、ソースコードパッケージをダウンロードするのは本当に面倒です。

しかし、両方のアプローチの根本的な違いは何ですか?

答え1

すべてのソフトウェアはプログラム、また〜として知られるソースコードパッケージ。したがって、すべてのソースコードパッケージに立てられるまず、システムで実行します。

これバイナリパッケージ建てられたものです。源泉多くのユーザーがインストールして使用できるように、専用のスタッフがソフトウェアに共通の機能とパラメータを提供します。

バイナリパッケージは設置が容易
しかし、すべてのオプションを使用できない場合があります。アップストリームパッケージから。

したがって、ソースからインストールするには、ソースを直接ビルドする必要があります。これは、依存関係を直接処理する必要があることを意味します。また、パッケージを適切にビルドするには、パッケージのすべての機能を知る必要があります。

ソースからのインストールの利点:

  • セキュリティパッチであれ新機能であれ、最新バージョンをインストールし、常に最新の状態に保つことができます。
  • 必要に応じて設置時に機能を縮小できます。
  • 同様に、バイナリでは利用できないいくつかの機能を追加できます。
  • ご希望の場所に設置してください。
  • 一部のソフトウェアでは、正しいインストールのためにハードウェア固有の情報を提供できます。

簡単に言えばインストール源泉あなたのためヘビーカスタマイジングオプションのインストール中に多くの労力が必要ですバイナリより簡単ですが、できますカスタマイズできません。あなたが望むように。

修正する:以下のコメントにセキュリティ関連パラメータを追加してください。はい、バイナリからインストールするときにソースコードの整合性がないことは本当です。しかし、バイナリをどこで入手するかによって異なります。新しいプロジェクトのバイナリを得るための信頼できるソースがたくさんありますが、唯一の欠点は時間。更新されたバイナリまたは新しいプロジェクトが信頼できるリポジトリに表示されるまでに時間がかかることがあります。

最も重要なのは、ソフトウェアセキュリティに関するこの面白い点を強調したいということです。ベル研究所ページ提供:ジョー以下のコメントに。

答え2

ソースファイルには、開発者が選択した言語(C、C ++、Pythonなど)で書かれたソースコードが含まれており、一般的です。これはディストリビューションに限定されず、ほとんどの場合、オペレーティングシステムに限定されません。

パッケージ(RPMやDEBなど)は、特定の展開用に準備されたバイナリ実行可能ファイル(または解釈されたスクリプトなど)です。コンパイルのためのソースの準備(必要なパッチの追加など)、実際のコンパイル、ディストリビューション設定ファイルの作成、事前および後のインストールスクリプトの作成などのすべての作業は、パッケージマネージャによって実行されます。

つまり、ソースからインストールすることを選択した場合は、自分で行う必要があるすべての作業がパッケージに完了しました。

次の理由で、ほとんどすべての状況でパッケージを使用する方が簡単です。

  • インストールが簡単です。
  • ディストリビューションと連携するように特別に設計されています。
  • 時々、パッケージマネージャはパッチを適用してディストリビューション関連のバグを修正します。
  • パッケージマネージャはそのパッケージを削除します。
  • パッケージマネージャはすべての依存関係を管理します。
  • パッケージマネージャが更新を担当します。
  • システムに開発ツール(コンパイラ、makeなど)をインストールする必要はありません。

ただし、パッケージのバージョンが以前のバージョンであったり、パッケージのバージョンがない場合もあります。この場合、唯一のオプションは直接コンパイルすることです。これを行うには、次の点を考慮する必要があります。

  • システムにすべての開発者ツールがインストールされている必要があります。
  • アップデートの確認と再コンパイルはあなたの責任です。
  • パッケージを含むすべての依存関係がインストールされていることを確認する必要があります。パッケージdevが多い場合があります。
  • ディストリビューションで期待どおりに機能しない場合は、問題をデバッグする必要があります。

追加の努力を傾ける意思がある場合は、ソースでコンパイルすると次のような利点が得られます。

  • 利用可能な最新バージョンにアクセス
  • パフォーマンス/安定性を向上させるためにコンパイルプロセスを最適化するオプション
  • 楽しむ!

一部のディストリビューションのビルド済みパッケージは、インストールおよび実行できるバイナリ実行可能ファイル(RPMやDEBなど)を提供しますが、他のディストリビューションは単にコンパイルプロセスを自動化するパッケージを提供します。

Gentooはebuildsその例です。パッケージは、デフォルトで実行可能ファイルをコンパイルしてインストールする方法を説明するパッケージマネージャに送信する手順です。これは、既存のパッケージマネージャ(自動更新、削除など)の多くの利点を持ちながら、ユーザーが望むようにコンパイルプロセスを最適化できます。

Arch Linuxには、主流のパッケージがバイナリであり、多くの追加パッケージがファイルを使用してシステムでコンパイルされるパッケージングシステムがありますPKGBUILD

答え3

他の答えに加えて、以下を追加したいと思います。

プログラムを直接コンパイルすることにした場合は、コンパイルが一度だけ実行する作業ではないことを考慮する必要があります。コンパイルすることを決定したアプリケーションの開発メーリングリストを購読し、新しいリリース、特にセキュリティ更新プログラムに関する情報を引き続き受け取ることができます。

アプリケーションを更新するたびに新しいバージョンを再コンパイルする必要があるため、毎週時間がかかることに注意してください。

余裕がない場合は、パッケージマネージャに仕事を任せる方が良いでしょう。

答え4

2つのアプローチ(最新ソフトウェア、簡単なインストール/削除、ほとんどのディストリビューションの調整と調整を含む、ローカル要件に合わせて最適化可能)とコスト(最新の状態を維持、バグ注意)、最終パッチの利点を開発した後、ディストリビューションのソースパッケージから始めて、独自のパッケージをビルドして軽減できないバグ修正やバージョン間の非互換性を自分で解決する必要があります。つまり、ディストリビューションでソースコードパッケージを解凍し、ソースコードをアップストリームバージョンに置き換えて、ディストリビューションのパッチまたは構成調整がまだ適用されていることを確認し、バイナリパッケージをビルドします(パッケージ化されたコンテンツのバージョンを変更する必要があります。 )それをインストールしてください。はい、単に構築してインストールする以上のものです。

関連情報