Es gibt mehrere Fragen, die ich individuell beantworten werde:
Wie kann ich ein einzelnes Binärpaket herunterladen (und nicht installieren)?
apt-get
hat die Option, nur das Paket herunterzuladen:
-d Download only - do NOT install or unpack archives
Sie finden das heruntergeladene Paket in /var/cache/apt/archives/
. In diesem Fall müssen Sie apt eine neue Quellenlistenkonfiguration hinzufügen.
Wie lade ich ein einzelnes Quellpaket herunter?
apt-get source <package>
oder wenn Sie den Speicherort der .dsc-Datei kennen:
dget http://http.debian.net/debian/pool/main/k/knot/knot_1.2.0~rc3-1.dsc
Beide Ansätze überprüfen die Signatur in den Dateien
Wie pinne ich die sources.list aka wie kann ich meine Installation nicht durcheinander bringen?
Sie haben bereits auf die Seite mit der grundlegenden Beschreibung für APT Pinning verwiesen , und ich möchte nur hinzufügen, dass Sie wahrscheinlich die Hilfeseite apt_preferences lesen möchten, die auch schöne Beispiele für die Ausführung der von Ihnen benötigten Aufgaben enthält . Beachten Sie insbesondere den Abschnitt 'Tracking Stable' in BEISPIELEN, da er etwas beschreibt, das Ihren Anforderungen sehr nahe kommt:
Es gibt einen nützlichen Befehl, wenn Sie mit mehreren Quellen und APT-Pinning spielen:
# 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
Dies zeigt, dass die installierte Version 1.1.3-1 ~ bpo60 + 1 und der Kandidat 1.2.0 ~ rc3-1 ~ bpo60 + 1 ist, der als nächstes installiert wird apt-get upgrade
. Es gibt auch eine ältere Version aus einem anderen Repository.
Wie lade ich den Debian-Archivschlüssel herunter?
Der Debian-Archivschlüssel wird auf ftp-master veröffentlicht . Sie müssen den Schlüssel in Ihren gpg-Schlüsselbund importieren:
$ 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
Dann müssen Sie die Signaturen überprüfen:
$ 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]
Und verfolgen Sie die einzelnen GPG-Schlüssel für Debian-Entwickler, indem Sie sie entweder manuell verfolgen oder z. B. im PGP Key Statistics- Projekt überprüfen . Und wenn es keine Kette von Ihrem PGP / GPG-Schlüssel zum Debian-Schlüsselarchiv gibt, müssen Sie irgendwann einen Vertrauenssprung machen.
So laden Sie einzelne Pakete von Hand herunter und überprüfen sie
Der andere Ansatz ist komplizierter, da deb-Pakete nicht einzeln signiert werden, sondern nur die Release
Datei signiert wird. Daher müssen Sie die Signatur Release
und die Packages
Dateien zusammen mit dem jeweiligen Paket herunterladen und überprüfen .
Ich werde ein Beispiel hinzufügen, das klarer wird.
Stellen Sie sich vor, Sie möchten das Debian-Paket für Knot-DNS von der offiziellen PPA für Ubuntu herunterladen, die genau auf der amd64-Architektur basiert .
Sie müssen durch die Verzeichnisse klicken und die folgenden Dateien finden:
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
Der nächste Schritt wäre die Überprüfung der Signatur in der Release
Datei:
$ 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
Natürlich müssen Sie den Schlüssel auf andere Weise überprüfen (z. B. mit dem Debian / Ubuntu-Betreuer-Schlüssel, über das Launchpad usw. usw.).
Wenn Sie die korrekte Signatur in der Release
Datei überprüft haben , können Sie mit dem nächsten Schritt fortfahren - Überprüfen der Paketdatei.
sha256sum Packages
c96a524398cf6e9db033c8299974fe324eba47cc8190efec6495c74e251330ad Packages
$ grep c96a524398cf6e9db033c8299974fe324eba47cc8190efec6495c74e251330ad Release
c96a524398cf6e9db033c8299974fe324eba47cc8190efec6495c74e251330ad 3379 main/binary-amd64/Packages
Wie Sie sehen, befindet sich die Signatur in der signierten Release
Datei. Daher haben wir die Integrität der Packages
Datei überprüft, indem wir den SHA-256-Fingerabdruck berechnet und verglichen haben.
Der letzte Schritt ist ähnlich. Sie müssen den Fingerabdruck des einzelnen Pakets berechnen und vergleichen:
$ 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
Zu diesem Zeitpunkt haben wir das Paket sicher mit der signierten Release
Datei verkettet . Wenn Sie also der Signatur in der Release
Datei glauben , können Sie sicher sein, dass das Paket intakt heruntergeladen wurde.
Weitere Informationen finden Sie im Artikel zu Secure APT im Debian-Wiki.