Bireysel olarak cevaplayacağım birkaç soru var:
Bireysel ikili paket nasıl indirilir (yüklenmez)?
apt-get
yalnızca paketi indirme seçeneği vardır:
-d Download only - do NOT install or unpack archives
İndirilen paketi içinde bulabilirsiniz /var/cache/apt/archives/
. Bu durumda apt'ye yeni bir kaynak listesi yapılandırması eklemeniz gerekecektir.
Bireysel kaynak paketi nasıl indirilir?
apt-get source <package>
veya .dsc dosyasının yerini biliyorsanız:
dget http://http.debian.net/debian/pool/main/k/knot/knot_1.2.0~rc3-1.dsc
Her iki yaklaşım da dosyalardaki imzayı doğrular
Sources.list'i nasıl sabitleyebilirim, yani kurulumumu nasıl karıştırmam?
APT Pinning için temel açıklama sayfasına zaten işaret ettiniz ve sadece ihtiyacınız olan şeyleri başarmak için güzel örneklere sahip olan apt_preferences man sayfasını okumak istediğinizi ekliyorum . Özellikle ÖRNEKLER'deki 'Kararlılığı İzleme' bölümüne bakın, çünkü ihtiyaçlarınıza çok yakın bir şey açıklar:
Birden fazla kaynak ve APT Sabitleme ile oynarken faydalı bir komut vardır:
# 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
Bu, kurulu sürümün 1.1.3-1 ~ bpo60 + 1 olduğunu ve adayın 1.2.0 ~ rc3-1 ~ bpo60 + 1 olduğunu gösterir apt-get upgrade
. Ayrıca başka bir depodan daha eski bazı versiyonlar var.
Debian arşiv anahtarı nasıl indirilir?
Debian arşiv anahtarı ftp-master'da yayınlanır . Anahtarı gpg anahtarlığınıza aktarmanız gerekir:
$ 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
Sonra imzalarını kontrol etmeniz gerekecek:
$ 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]
Ve Debian geliştiricilerine tek tek GPG anahtarlarını manuel olarak izleyerek veya PGP Anahtar İstatistikleri projesinde kontrol ederek izleyin . Ve PGP / GPG anahtarınızdan Debian anahtar arşivine bir zincir yoksa, bir noktada inanç sıçraması yapmanız gerekecektir.
Tek tek paketleri elle indirme ve doğrulama
Bu nedenle diğer yaklaşım daha karmaşıktır, çünkü deb paketleri ayrı ayrı imzalanmaz, sadece Release
dosya imzalanır. Böylece , tek tek paketle birlikte imza Release
ve Packages
dosyaları indirip doğrulamanız gerekecektir .
Daha net olacak bir örnek ekleyeceğim.
İçin Debian paketini indirmek istiyorum düşünün Knot DNS gelen resmi PPA var Ubuntu için amd64'tür mimarisi hakkında kesin.
Dizinleri tıklamanız ve şu dosyaları bulmanız gerekir:
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
Bir sonraki adım, Release
dosyadaki imzayı doğrulamak olacaktır :
$ 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
Tabii ki anahtarı başka yollarla doğrulamanız gerekir (Debian / Ubuntu sürdürücü anahtarı gibi, fırlatma rampasından kontrol vb.)
Release
Dosyadaki doğru imzayı doğruladıktan sonra bir sonraki adıma geçebilirsiniz - Paketler dosyasını doğrulama.
sha256sum Packages
c96a524398cf6e9db033c8299974fe324eba47cc8190efec6495c74e251330ad Packages
$ grep c96a524398cf6e9db033c8299974fe324eba47cc8190efec6495c74e251330ad Release
c96a524398cf6e9db033c8299974fe324eba47cc8190efec6495c74e251330ad 3379 main/binary-amd64/Packages
Gördüğünüz gibi imza imzalı Release
dosyada bulunabilir, bu nedenle Packages
SHA-256 parmak izini hesaplayıp karşılaştırarak dosyanın bütünlüğünü doğruladık .
Son adım benzer. Tek tek paketin parmak izini hesaplamanız ve karşılaştırmanız gerekir:
$ 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
Bu noktada paketi imzalanan Release
dosyaya güvenli bir şekilde zincirledik . Dolayısıyla, Release
dosyadaki imzayı düşünüyorsanız , paketin sağlam bir şekilde indirildiğinden emin olabilirsiniz.
Debian Wiki'deki Güvenli APT makalesinde daha fazla bilgi bulabilirsiniz .