パッケージは実際にapt-get installを介してどのようにインストールされますか?


29

apt-get installメソッドを使用してパッケージをubuntuにインストールする場合、そのパッケージのソースコードを取得することとゼロからビルドすることとの間に基本的な違いはありますか?ないapt-get install機能は、単にソースをダウンロードして、指定したディレクトリにあなたのマシン上でそれを構築する以上の舞台裏にそこに行くのですか?

最後に(おそらくこれには答えがない)、1つの方法は他の方法よりも優れていますか?ここで私が言っているのは、ソースコードから自分でビルドすることには利点があるのか​​、それをapt-getやらせるほうが良いのですか?

回答:


25

apt、yum、pacman、emergeなどのパッケージ管理システムの利点は次のとおりです。

  • パッケージのどのバージョンがインストールされているか、利用可能かを簡単に照会できます。
  • パッケージを完全に削除するのは簡単で、すべてのファイルがなくなっていることを確認します。
  • パッケージファイルの整合性は簡単に確認できるため、破損しているか改ざんされていないかを確認できます。
  • 新しいバージョンをインストールし、古いバージョンのファイルをすべて削除することにより、パッケージを簡単にアップグレードできます。これにより、物事を混乱させたり壊したりするために、古いパッケージの残留ファイルを残さないようになります。
  • 他のパッケージが提供または要求するものを必要とする、または提供するパッケージを簡単に確認できるため、パッケージが正しく機能するために必要なアイテムを確実に用意できます。
  • パッケージのグループのインストールまたは削除は簡単です。
  • 多くの場合、新しいバージョンにバグがある場合など、パッケージの以前のバージョンにダウングレードすることが可能です。

Fedora用ですが、以下も参照してください。

https://fedoraproject.org/wiki/Package_management_system

ソースからのインストールには利点がある場合があります

  • バイナリをカスタマイズできます(オプションの有効化/無効化)
  • リポジトリで最新のパッケージを入手できます
  • バグ修正に時々必要

しかし、欠点は、新しいバージョンが利用可能になったときにパッケージを手動で更新する必要があり、多くの場合サポートを失うことです。

IMOパッケージのすべてまたはほとんどをコンパイルする場合は、Gentooにアドバイスします。


1
この優れた答えを明確にするために、自分でコンパイルした場合、Update Managerは認識されないままになるため、更新がリリースされてもアプリケーションを更新しません。また、apt(Ubuntuが選択したパッケージマネージャー)はコンパイルされません。既製のコンパイル済みバイナリをダウンロードします。最後に、aptはプログラムのインストールまたは削除時にメニューシステムを自動的に維持します。手動でコンパイルするときは、自分でコンパイルする必要があります。
水田ランダウ

1
パッケージを自分でコンパイルすることのもう1つの小さな利点は、正確なハードウェアに関するより多くの知識でパッケージがコンパイルされ、より速く実行できることです。このルートに進む場合は、checkinstallの使用を検討してください。 asic-linux.com.mx/~izto/checkinstall インストールされたものを追跡し、必要に応じて後できれいに削除するのに役立ちます。
ジョー

私は、より速く走る部分について訂正しました。
ジョー

18

Apt-getは、APTパッケージ処理ユーティリティ(CLI)、SynapticおよびAptitudeのバックエンドです。

apt-getののあなたのシステムチェックからのトリガーにする方法公式ソースやリポジトリファイルに記載されているが

etc/apt/sources.list

例えば 実行中に(私が使用している)、のようなものを実行しますsudo apt-get update && sudo apt-get upgrade

ここに画像の説明を入力してください

ここで、リンクの前にあるIgn(無視)は、そのリポジトリへの最後のアクセス以降変更が行われていないことを示し、Getは、そのリポジトリで新しく利用可能なパッケージの変更を示すSourcesファイルの取得を示します。

いいえ、apt-getユーティリティはソースファイルをダウンロードせず、システムとの安定性と統合がテストされている公式Ubuntuパッケージャーによってパックおよびリリースされた.debパッケージをダウンロードします。

apt-getは、パッケージをダウンロードして見つけることができます

/var/cache/apt

ここでは、すべてUpdates.debパッケージとして表示できます。また、このPrecise-updatesパッケージにアクセスして、バージョンのクロスチェックと比較することもできます

限りコンパイルソースパッケージからは懸念している、それは賢明ではないとさえそれLTSリリースとしてのUbuntu 12.04にはお勧めできません、あなたはここの理由を表示することができます

ソースからコンパイルするか、.debパッケージからインストールする方が良いですか?

ソースからプログラムをコンパイルすると、オペレーティングシステムが高速化されますか?

ソースコードからインストールする利点/欠点

その他の参照:apt-getsources.list


実際には3つのプログラム、apt-getは、aptitudeやsynapticのためのバックエンドですdpkg
ハビエル・ロペスは、

1
Aptitudedpkgのフロントエンドです。一方、dpkgはdpkg-debおよび dpkg-queryの
atenz

2

ソースからビルドする場合、含まれるものにはさらにオプションがあります。からapt-getインストールすると、ビルド済みパッケージがインストールされます。

どちらが優れているかは、必要なものによって異なります。ソースからコンパイルする必要はありませんでしたが、ubuntuラップトップで大規模なことは何もしません。


だから、apt-getは何も構築しません-本質的にバイナリをダウンロードするだけですか?
数学者

3
まさに。ご使用のアーキテクチャ(amd64、i386、armelなど)のビルド済みバイナリをダウンロードしています。
tgm4883

2

apt-getを使用してパッケージのソースをインストールできると思います。

  1. ソースコードリポジトリをアクティブにする必要があります

    /etc/apt/sources.listファイルを開くと、「source」が含まれているコメントアウトされた行(#で始まる)が表示されます。

    それらのコメントを外します

  2. 必要なプログラムの依存関係をインストールします。

    sudo apt-get build-dep "program"

  3. プログラムをダウンロードしてコンパイルします。

    sudo apt-get -b source "program"

その後、ホームディレクトリに.debパッケージを取得します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.