apt-getはどのように機能しますか?

apt-getはどのように機能しますか?

私は現在Ubuntuを使用しており、仮想マシンにDebianシステムをインストールしようとしています。これはパッケージを処理する必要があることを意味します。私は最初に触れたので、オンライン、特にDebian Wiki(Ubuntu Wikiも便利です)でこれについてたくさん読んでいます。具体的には、ローカルリポジトリを作成する方法とsource.listファイルを正しく編集する方法を学びました。

しかし、どのように機能するかについてはまだいくつかの質問があり、オンラインで詳細を見つけることができません。

  • まず、オンラインストアを使用するときです。私はapt-getがsource.listファイルに書いたリンクをたどってPackages.gzアーカイブを検索することを知っています。私が理解していないのは、この単純なアーカイブです(ただのリストのようです)。インストール可能パッケージ)このパッケージをインストールできますか? Packages.gzは、.debファイルを見つけてインストールを進める方法に関する適切な情報を提供しますか?または他のもの?

  • 第二に、Sources.gzアーカイブについてです。 Packages.gzにリストされているパッケージのソースコードであることを読みましたが、ほとんどの場合は必要ありません。それでは、私のsource.listファイルのSources.gzにこのリンクを追加すると、正確に何が得られますか?ポイントは何ですか?

  • 3. 現地倉庫に関しては、以前の質問に関連しています。 .debファイルを使用してローカルリポジトリを作成する方法を知っていますが、このPackages.gzアーカイブしかないとします。十分ではないですか? Sources.gz アーカイブがあれば動作しますか?

  • 最後に、私はDebianリポジトリにdistリポジトリに加えて、多数の.debsを含むプールリポジトリがあることを見ました。インストール方法を知っていますが(.debとその依存関係をダウンロードしてdpkg -iを使用してインストール)、より簡単な方法はありますか?オンラインで.debを探して、依存関係を探し、すべてをインストールできるより自動化されたものがありますか? (apt-getと同様に、私が知っている限り、apt-getはPackages.gzおよびSources.gzアーカイブでのみ使用でき、.debでは直接使用できません。)

申し訳ありません。これは実際には質問ではなく質問のリストです^^しかし、オンラインで見つけたのは、主に「オンラインリポジトリでapt-getを使用してパッケージとその依存関係を検索し、dpkgを介してインストールする」だけでした。それについて。

ベストアンサー1

  1. Packages.gzには、Filename値と同様のフィールドが含まれていますpool/main/n/name-of-package/name-of-package_version_amd64.deb。これはパッケージマネージャにそのURLを表示するように指示します。
    たとえば、source.list(.d) に次の行がある場合、
    deb https://some-domain.com/some-url some-distribution main
    次のようなファイルがあります。https://some-domain.com/some-url/dists/some-distribution/main/binary-amd64/Packages.gz
    ファイルが参照されるので、pool/main/n/name-of-package/name-of-package_version_amd64.debパッケージマネージャはそれを見ますhttps://some-domain.com/some-url/pool/main/n/name-of-package/name-of-package_version_amd64.deb

  2. Sources.gzは同じように動作しますが、オプションです。apt sourceこれは、事前にビルドされたバイナリを使用するのではなく、直接コンパイルしたい場合にソースコードを取得することで機能します。
    これは、プロジェクトのホームページに行き、ビルドの指示に従う貢献者/好奇心旺盛な人々ではなく、ディストリビューションで使用されるパッケージの正確なバージョンにパッチを適用したいシステム管理者に主に役立ちます。

  3. パッケージがディストリビューションのプールディレクトリにあるがPackages.gz他のディレクトリにある可能性が最も高いですPackage.gz。一般的な行に複数の単語がどのように含まれているかを確認してください。sources.list各単語には独自のファイルがあります。一部を有効にする必要があります。たとえば、Debian はデフォルトでこれを無効にします。ただし、一部のパッケージはまだ利用できません(プールでも利用できません)。信頼できないリポジトリ(UbuntuのPPAなど)を追加したり、不足しているプログラムを直接パッケージしたり(自分や他の人がパッケージマネージャを使用してプログラムを管理できるように)、直接ビルドしてインストールしたりできます(プレフィックスは次のとおりです。と同じでなければならない)。パッケージマネージャとの競合を避けるために使用されます)。
    deb http://archive.ubuntu.com/ubuntu precise main universe multiverse
    mainuniversemultiversePackages.gznon-free/usr/local

  4. 新しい(バージョンが指定された)パッケージが利用可能になると、配布されたReleaseファイルが更新されます。これにより、apt update再ダウンロードする必要があることがわかりますPackages.gz

おすすめ記事