Ada beberapa pertanyaan yang akan saya jawab secara individual:
Bagaimana cara mengunduh (dan tidak menginstal) paket biner individual?
apt-get
memiliki opsi untuk hanya mengunduh paket:
-d Download only - do NOT install or unpack archives
Anda akan menemukan paket yang diunduh di /var/cache/apt/archives/
. Dalam hal ini Anda harus menambahkan konfigurasi daftar sumber baru ke apt.
Bagaimana cara mengunduh paket sumber individual?
apt-get source <package>
atau ketika Anda mengetahui lokasi file .dsc:
dget http://http.debian.net/debian/pool/main/k/knot/knot_1.2.0~rc3-1.dsc
Kedua pendekatan itu memverifikasi tanda tangan pada file
Bagaimana cara menyematkan sources.list alias bagaimana saya tidak mengacaukan instalasi saya?
Anda telah menunjuk ke halaman deskripsi dasar untuk Pinning APT , dan saya hanya akan menambahkan bahwa Anda mungkin ingin membaca manual apt_preferences yang juga memiliki contoh bagus untuk mencapai hal-hal yang Anda butuhkan. Terutama lihat bagian 'Melacak Stabil' di CONTOH, karena ini menjelaskan sesuatu yang sangat dekat dengan kebutuhan Anda:
Ada perintah yang berguna saat bermain dengan banyak sumber dan Pinning APT:
# apt-cache policy knot
knot:
Installed: 1.1.3-1~bpo60+1
Candidate: 1.2.0~rc3-1~bpo60+1
Version table:
1.2.0~rc3-1~bpo60+1 0
500 http://deb.knot-dns.cz/debian/ squeeze/main amd64 Packages
*** 1.1.3-1~bpo60+1 0
100 /var/lib/dpkg/status
1.0.5-1~bpo60+1 0
500 http://ppa.sury.org/debian/ squeeze/main amd64 Packages
Ini menunjukkan bahwa versi yang terinstal adalah 1.1.3-1 ~ bpo60 +1, dan kandidat adalah 1.2.0 ~ rc3-1 ~ bpo60 +1, yang akan diinstal berikutnya apt-get upgrade
. Juga ada beberapa versi lama yang tersedia dari repositori lain.
Bagaimana cara mengunduh kunci arsip Debian?
Kunci arsip Debian diterbitkan di ftp-master . Anda harus mengimpor kunci ke dalam gpg keyring Anda:
$ gpg --import archive-key-6.0.asc
gpg: key 473041FA: public key "Debian Archive Automatic Signing Key (6.0/squeeze) <ftpmaster@debian.org>" imported
gpg: Total number processed: 1
gpg: imported: 1 (RSA: 1)
gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model
gpg: depth: 0 valid: 9 signed: 31 trust: 0-, 0q, 0n, 0m, 0f, 9u
gpg: depth: 1 valid: 31 signed: 38 trust: 25-, 0q, 0n, 1m, 5f, 0u
gpg: depth: 2 valid: 21 signed: 31 trust: 19-, 0q, 0n, 0m, 2f, 0u
gpg: depth: 3 valid: 3 signed: 12 trust: 2-, 0q, 0n, 0m, 1f, 0u
gpg: depth: 4 valid: 1 signed: 8 trust: 1-, 0q, 0n, 0m, 0f, 0u
gpg: next trustdb check due at 2013-09-22
Maka Anda harus memeriksa tandatangannya:
$ gpg --list-sig 473041FA
pub 4096R/473041FA 2010-08-27 [expires: 2018-03-05]
uid Debian Archive Automatic Signing Key (6.0/squeeze) <ftpmaster@debian.org>
sig 3 473041FA 2010-08-27 Debian Archive Automatic Signing Key (6.0/squeeze) <ftpmaster@debian.org>
sig 7E7B8AC9 2010-08-27 Joerg Jaspert <joerg@debian.org>
sig P B12525C4 2010-08-27 [User ID not found]
sig D0EC0723 2010-08-27 [User ID not found]
sig 8AEA8FEE 2010-08-27 [User ID not found]
sig A3AE44A4 2010-08-28 [User ID not found]
sig 00D8CD16 2010-08-28 Alexander Reichle-Schmehl <alexander@reichle.schmehl.info>
sig CD15A883 2010-08-28 [User ID not found]
sig 672C8B12 2010-08-28 [User ID not found]
sig 2 C4CF8EC3 2010-08-28 [User ID not found]
sig 2 D628A5CA 2010-08-28 [User ID not found]
Dan lacak masing-masing kunci GPG ke pengembang Debian dengan melacaknya secara manual, atau memeriksa di proyek Statistik Kunci PGP . Dan kecuali ada rantai dari kunci PGP / GPG Anda ke arsip kunci Debian, Anda harus membuat lompatan keyakinan di beberapa titik waktu.
Cara mengunduh dan memverifikasi masing-masing paket dengan tangan
Jadi pendekatan lain lebih rumit, karena paket deb tidak ditandatangani secara individual, tetapi hanya Release
file yang ditandatangani. Dengan demikian Anda perlu mengunduh dan memverifikasi tanda tangan Release
dan Packages
file bersama dengan paket individual.
Saya akan menambahkan contoh yang akan lebih jelas.
Bayangkan Anda ingin mengunduh paket Debian untuk Knot DNS dari PPA resmi untuk Ubuntu tepatnya pada arsitektur amd64.
Anda harus mengklik direktori dan menemukan file-file ini:
wget http://ppa.launchpad.net/cz.nic-labs/knot-dns/ubuntu/dists/precise/Release
wget http://ppa.launchpad.net/cz.nic-labs/knot-dns/ubuntu/dists/precise/Release.gpg
wget http://ppa.launchpad.net/cz.nic-labs/knot-dns/ubuntu/dists/precise/main/binary-amd64/Packages
wget http://ppa.launchpad.net/cz.nic-labs/knot-dns/ubuntu/pool/main/k/knot/knot_1.2.0~rc3-1~precise+1_amd64.deb
Langkah selanjutnya adalah memverifikasi tanda tangan pada Release
file:
$ gpg --verify Release.gpg Release
gpg: Signature made Fri 01 Mar 2013 07:14:38 PM CET using RSA key ID F9C59A45
gpg: Good signature from "Launchpad Datové schránky"
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
Primary key fingerprint: 5246 3488 670E 69A0 9200 7C24 F233 1238 F9C5 9A45
Tentu saja Anda harus memverifikasi kunci dengan beberapa cara lain (seperti kunci pengelola Debian / Ubuntu, memeriksanya dari launchpad, dll, dll ...)
Setelah memverifikasi tanda tangan yang benar pada Release
file, Anda dapat melanjutkan ke langkah berikutnya - memverifikasi file Paket.
sha256sum Packages
c96a524398cf6e9db033c8299974fe324eba47cc8190efec6495c74e251330ad Packages
$ grep c96a524398cf6e9db033c8299974fe324eba47cc8190efec6495c74e251330ad Release
c96a524398cf6e9db033c8299974fe324eba47cc8190efec6495c74e251330ad 3379 main/binary-amd64/Packages
Seperti yang Anda lihat, tanda tangannya dapat ditemukan dalam Release
file yang ditandatangani , sehingga kami telah memverifikasi integritas Packages
file dengan menghitung dan membandingkan sidik jari SHA-256-nya.
Langkah terakhir serupa. Anda perlu menghitung dan membandingkan sidik jari dari paket individual:
$ sha1sum knot_1.2.0~rc3-1~precise+1_amd64.deb
8b34078e9bfef7aa818b2f926a28838b0ede9f43 knot_1.2.0~rc3-1~precise+1_amd64.deb
$ grep -A 13 "Package: knot$" Packages | grep "^SHA1: "
SHA1: 8b34078e9bfef7aa818b2f926a28838b0ede9f43
Pada titik ini kami telah merantai paket dengan aman ke Release
file yang ditandatangani . Jadi, jika Anda yakin tanda tangan pada Release
file, Anda dapat yakin bahwa paket itu diunduh utuh.
Anda dapat membaca lebih lanjut di artikel Secure APT di Debian Wiki.