たとえば、AMD64にJessie用の最新のDebianパッケージ「libgcc1」をインストールしたいと思います。
ダウンロードする正しいURLを決定する方法https://packages.debian.org
たとえば、この場合は手動でhttps://packages.debian.orgウェブサイトは最終的に次のような正しいダウンロードにつながりました。
http://ftp.us.debian.org/debian/pool/main/g/gcc-4.9/libgcc1_4.9.2-10_amd64.deb
重要:利用可能なアパートメントはありません。私は.debパッケージから依存関係名を手動で抽出するためのいくつかのコードを書いていますが、今ではパッケージ名の正しい実際の.debパッケージを取得する次のステップを見つけようとしています。
たとえば、次の情報を取得する必要があります。
- パッケージ名:libgcc1
- バージョン:最新
- アーキテクチャ:amd64
- Debian ディストリビューション: Jesse
到着する:
http://ftp.us.debian.org/debian/pool/main/g/gcc-4.9/libgcc1_4.9.2-10_amd64.deb
この関係をどのように確認できますか?
編集:「なぜaptを使用しないのですか?」 aptをインストールしようとしているので、aptは利用できません。
ありがとう
答え1
まあ、あなたに合ったものがあれば...
apt-get -y install --print-uris $PACKAGE | cut -f 2 -d \' | grep \.deb
実際にインストールに必要なすべてのパッケージを提供します。
user@darkstar:~/ $ apt-get -y install --print-uris audacity | cut -f 2 -d \' | grep \.deb
http://archive.ubuntu.com/ubuntu/pool/universe/libs/libsbsms/libsbsms10_2.0.2-1_amd64.deb
http://archive.ubuntu.com/ubuntu/pool/universe/s/serd/libserd-0-0_0.22.0~dfsg0-2_amd64.deb
http://archive.ubuntu.com/ubuntu/pool/universe/s/sord/libsord-0-0_0.14.0~dfsg0-1_amd64.deb
http://archive.ubuntu.com/ubuntu/pool/universe/s/sratom/libsratom-0-0_0.4.6~dfsg0-1_amd64.deb
http://archive.ubuntu.com/ubuntu/pool/universe/s/suil/libsuil-0-0_0.8.2~dfsg0-1_amd64.deb
http://archive.ubuntu.com/ubuntu/pool/universe/a/audacity/audacity-data_2.1.2-1_all.deb
http://archive.ubuntu.com/ubuntu/pool/main/f/flac/libflac++6v5_1.3.1-4_amd64.deb
http://archive.ubuntu.com/ubuntu/pool/universe/libi/libid3tag/libid3tag0_0.15.1b-11_amd64.deb
http://archive.ubuntu.com/ubuntu/pool/universe/l/lilv/liblilv-0-0_0.22.0~dfsg0-1_amd64.deb
http://archive.ubuntu.com/ubuntu/pool/universe/p/portsmf/libportsmf0v5_0.1~svn20101010-4ubuntu1_amd64.deb
http://archive.ubuntu.com/ubuntu/pool/universe/v/vamp-plugin-sdk/libvamp-hostsdk3v5_2.6~repack0-2_amd64.deb
http://archive.ubuntu.com/ubuntu/pool/universe/a/audacity/audacity_2.1.2-1_amd64.deb
よくわからない場合は、一度見てください。http://ftp.us.debian.org/debian/dists/stable/main/binary-amd64 そこからPackages.gzファイルのコピーを入手してください。それを見ると、パッケージ名が次のようにリストされていることがわかります。
Package: audacity
その後数行を過ぎると、次の内容が表示されます。
Filename: pool/main/a/audacity/audacity_2.0.6-2_amd64.deb
それではそうします。残念ながら、行番号が一致しません。
答え2
使用できるものがなければapt
基本的に再実装に閉じ込められているのですapt
。直接取得する方がより合理的かもしれませんapt
。しかし、必ずしなければならないなら...
次の方法で実行されますapt
。指定されたURLで/etc/apt/sources.list
、http://ftp.us.debian.org/debian/
たとえば、アップデートリスト、security.debian.org、および可能なバックポートで他の可能なエントリを考慮することを忘れないでください。
/etc/apt/preferences{,.d}
特定のパッケージがどのソースから提供されるべきかを知るためにルールを評価し、バージョン番号を比較し、事前に準備されたルールを評価する必要があります。
以下で完全なURLを作成してください。
http://ftp.us.debian.org/debian/dists/<name>/<section>/binary-<architecture>/Packages.gz
このファイルには、すべての個々のパッケージの相対URLが含まれています。
また、整合性を確認するためにファイルのハッシュを確認するには、次のファイルが必要です。
http://ftp.us.debian.org/debian/dists/jessie/Release
http://ftp.us.debian.org/debian/dists/jessie/Release.gpg
...そしてその中の公開鍵を使えば/etc/apt/trusted*
これを確認できます。このRelease
ファイルには他のすべてのファイルのハッシュが含まれているため、これらのハッシュを確認する必要があります。
Debian パッケージリポジトリのフォーマットとレイアウトに関する他の微妙なルールを考慮することを忘れてしまったでしょう。
ご覧のとおり、より良いことただaptを使う。
答え3
インストールして使用するのが最善ですapt
。
パッケージをダウンロードするには:
apt-get download libgcc1
パッケージパスを取得するには.deb
:
apt-cache show libgcc1 | grep Filename
出力例:
Filename: pool/main/g/gcc-4.9/libgcc1_4.9.2-10_amd64.deb
編集:答え@男。
パッケージがすでにインストールされている場合は、パッケージgrep-available
で使用できます。dctrl-tools
sudo apt install dctrl-tools
以下は例です(検索パッケージtar
)。
grep-available -P tar -s Filename