現在Ubuntuで作業していて、VMにDebianシステムをインストールしようとしています。つまり、パッケージを扱わなければなりません。初心者なので、Webや特にdebian wikiで多くのことを読みました(ubuntu wikiも役に立ちます)。特に、ローカルリポジトリを作成する方法とsources.listファイルを適切に編集する方法を学びました。
しかし、それがどのように機能するか、ウェブ上で見つけることができなかった詳細については、まだいくつか質問があります。
まず、オンラインリポジトリを使用する場合。 apt-getがsource.listファイルに書き込んだリンクをたどり、Packages.gzアーカイブを検索することを理解しました。私が理解していないのは、この単純なアーカイブ(installable packagesのリストにすぎないようです)がパッケージのインストールをどのように許可するかです。 Packages.gzは、.debファイルを見つけてインストールを続行する方法に関する適切な情報を提供しますか?それとも別のものですか?
次に、Sources.gzアーカイブについてです。 Packages.gzにリストされているパッケージのソースコードであることがわかっていますが、ほとんどの場合、必要ありません。したがって、このSources.gzへのリンクをsource.listファイルに追加すると、実際に何が得られますか?それの意味は何ですか?
第三に、ローカルリポジトリについて。これは前の質問に関連しています。 .debファイルを使用してローカルリポジトリを作成する方法を知っていますが、このPackages.gzアーカイブしか持っていないとしましょう。十分ではありませんか? Sources.gzアーカイブがある場合、それは機能しますか?
最後に、Debianリポジトリで、distリポジトリに加えて、多くの.debを含むプールリポジトリがあることを確認しました。それらをインストールする方法は知っていますが(.debとその依存関係をダウンロードし、dpkg -iを使用してインストールします)、もっと簡単な方法はありますか? .debをオンラインで見つけ、その依存関係を見つけ、すべてをインストールする、より自動的なものは何ですか? (apt-getと同様ですが、私が理解している限り、apt-getはPackages.gzおよびSources.gzアーカイブでのみ機能し、.debでは直接機能しません)
これは実際には質問ではなく、質問のリストです^^しかし、オンラインで見つけたものはすべて「apt-get search for the package and its dependency in the online repository and install it through dpkg」でした。それについての詳細のように。
Packages.gzには、Filename
フィールドが含まれ、値はおそらくpool/main/n/name-of-package/name-of-package_version_AMD64.deb
のようになります。これは、パッケージマネージャーにそのURLを確認するように指示します。
たとえば、sources.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
を参照します。
Sources.gzは同じように機能しますが、オプションです。これはapt source
と連携して動作し、ビルド済みのバイナリを使用するのではなく、自分でコンパイルする場合にソースを取得します。
これは主に、プロジェクトのホームページにアクセスしてそこでビルドの指示に従うだけの寄稿者/好奇心の強い人々ではなく、ディストリビューションが使用するパッケージの正確なバージョンにパッチを適用したいシステム管理者に役立ちます。
パッケージがディストリビューションのプールディレクトリにあるがPackages.gz
にない場合は、おそらく別のPackage.gz
にあります。一般的なsources.list
行にいくつかの単語があることに注意してください。deb http://archive.ubuntu.com/ubuntu precise main universe multiverse
main
、universe
、およびmultiverse
には、それぞれ独自のPackages.gz
ファイルがあります。たとえばdebianはデフォルトでnon-free
を無効にするため、一部を有効にする必要がある場合があります。ただし、一部のパッケージはまだ利用できません(プール内であっても)。信頼できないリポジトリ(UbuntuのPPAなど)を追加するか、不足しているプログラムを自分でパッケージ化するか(自分や他の人がパッケージマネージャーを使用してそのプログラムを管理できるようにする)、または自分でビルドしてインストールする(/usr/local
接頭辞(パッケージマネージャーとの競合を回避するため)。
Release
ファイルが更新されます。これにより、apt update
はPackages.gz
を再ダウンロードする必要があることを認識できます。