
私は現在 Ubuntu を使っていて、VM に Debian システムをインストールしようとしています。つまり、パッケージを扱う必要があるということです。私は初心者なので、Web や特に Debian wiki (ubuntu wiki も便利です) でそれについてたくさん読みました。特に、ローカル リポジトリの作成方法と、sources.list ファイルを適切に編集する方法を学びました。
しかし、それがどのように機能するかについてはまだいくつか疑問があり、その詳細は Web 上で見つけることができませんでした。
まず、オンラインリポジトリを使用する場合。apt-getはsource.listファイルに書き込んだリンクをたどり、Packages.gzアーカイブを検索すると理解しました。理解できないのは、この単純なアーカイブ(リストのみのようです)がどのようにしてインストール可能なパッケージ) はパッケージのインストールを許可しますか? Packages.gz は、.deb ファイルを見つけてインストールを続行する方法に関する適切な情報を提供しますか? それとも別のものですか?
次に、Sources.gz アーカイブについて。これは Packages.gz にリストされているパッケージのソース コードであると読みましたが、ほとんどの場合は必要ありません。では、この Sources.gz へのリンクを source.list ファイルに追加した場合、実際に何が得られるのでしょうか。その目的は何でしょうか。
3 番目は、ローカル リポジトリについてです。これは前の質問と関連しています。.deb ファイルを使用してローカル リポジトリを作成する方法はわかっていますが、この Packages.gz アーカイブしかないとします。これでは不十分ですよね? Sources.gz アーカイブがあれば、機能しますか?
最後に、Debian リポジトリには、dist リポジトリに加えて、大量の .deb を含む pool リポジトリがあることを知りました。それらをインストールする方法は知っています (.deb とその依存関係をダウンロードし、dpkg -i でインストールする) が、もっと簡単な方法はありますか? オンラインで .deb を見つけて、その依存関係を見つけて、すべてをインストールできる、もっと自動化された方法はありますか? (apt-get と同じように動作しますが、私が理解している限りでは、apt-get は Packages.gz および Sources.gz アーカイブでのみ動作し、.deb では直接動作しません)
申し訳ありませんが、これは実際には質問ではなく、質問のリストです^^しかし、オンラインで見つけたものはほとんどが「オンラインリポジトリでパッケージとその依存関係をapt-getで検索し、dpkgを介してインストールする」というものだったので、それについてもっと詳しく知りたいと思っています。
答え1
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
、それぞれにファイルがあることに注意してください。debian などはデフォルトで無効になっているため、いくつかを有効にする必要があるかもしれません。ただし、一部のパッケージは依然として利用できません (プールにさえありません)。信頼できないリポジトリ (Ubuntu の PPA など) を追加するか、不足しているプログラムを自分でパッケージ化するか (そうすれば、自分や他のユーザーがパッケージマネージャーを使用してそのプログラムを管理できます)、または自分でビルドしてインストールする (パッケージマネージャーとの競合を避けるため、プレフィックスを使用する必要があります) ことを選択できます。universe
multiverse
Packages.gz
non-free
/usr/local
- 新しい(バージョンの)パッケージが登場すると、
Release
配布用のファイルが更新されます。これにより、apt update
再ダウンロードが必要であることがわかりますPackages.gz
。