Wie installiere ich eine bestimmte Debian/Ubuntu-Releaseversion?

Wie installiere ich eine bestimmte Debian/Ubuntu-Releaseversion?

Ich untersuche reproduzierbare Builds und möchte, dass dies mit einem Skript endet, das einKonstanteVM-Image, das meine Build-Umgebung enthält. Für den Moment werde ich Probleme mit Zeitstempeln und anderen Quellen von Unterschieden beiseite legen, also durch "Konstante", ich meine eine reproduzierbare Umgebung. Ich kenne die DebianReproduzierbare BuildsAnstrengung, die eine Anforderung anPaketversionenum einen identischen Aufbau zu garantieren. Ich möchte etwas Ähnliches, aber gleichzeitigSystemEbene.

Ich habe mit Alpine angefangen, mit dem ich eine VM erstellen kann, die auf einemspezifische Freigabeganz einfach.

Wie würde ich das Gleiche für Debian tun, das beispielsweise bietetstreckenVersionen 9.0 bis 9.4?

Das Beste, was mir bisher eingefallen ist, war Folgendes: Ich habe mir dieÄnderungsprotokoll der Veröffentlichung, dann verwendete man die nächstgelegeneSchnappschussals meine Paketquelle fürdebootstrap.

$ wget -q -O- http://ftp.debian.org/debian/dists/stretch/ChangeLog | grep "Debian.*released"
Sat, 10 Mar 2018 - Debian 9.4 released
Sat, 09 Dec 2017 - Debian 9.3 released
Sat, 07 Oct 2017 - Debian 9.2 released
Sat, 22 Jul 2017 - Debian 9.1 released
Sat, 17 Jun 2017 - Debian 9.0 released
$ # Looking at release 9.2
$ wget -q -O- "http://snapshot.debian.org/archive/debian/?year=2017&month=10" | html2text | sed -e 's/[:-]//g' -e 's/_/T/g' | awk '/20171007/ {print "http://snapshot.debian.org/archive/debian/"$1"Z/"}'
http://snapshot.debian.org/archive/debian/20171007T032909Z/
http://snapshot.debian.org/archive/debian/20171007T103908Z/
http://snapshot.debian.org/archive/debian/20171007T213914Z/
$ mkdir -p chroot_stretch_20171007T103908Z
$ sudo debootstrap --arch=amd64 --variant=minbase stretch chroot_stretch_20171007T103908Z http://snapshot.debian.org/archive/debian/20171007T103908Z/
I: Retrieving InRelease 
I: Retrieving Release 
I: Retrieving Release.gpg 
I: Checking Release signature
I: Valid Release signature (key id 067E3C456BAE240ACEE88F6FEF0F382A1A7B6500)
I: Retrieving Packages 
(...)
$ find -maxdepth 1 -name "chroot_stretch_2017100*" | sort | while read d; do echo $d; cat $d/etc/debian_version; sudo chroot $d apt-cache policy | grep stretch; echo ""; done
./chroot_stretch_20171006T213452Z
9.1
 500 http://snapshot.debian.org/archive/debian/20171006T213452Z stretch/main amd64 Packages
     release v=9.1,o=Debian,a=stable,n=stretch,l=Debian,c=main,b=amd64

./chroot_stretch_20171007T032909Z
9.1
 500 http://snapshot.debian.org/archive/debian/20171007T032909Z stretch/main amd64 Packages
     release v=9.1,o=Debian,a=stable,n=stretch,l=Debian,c=main,b=amd64

./chroot_stretch_20171007T103908Z
9.1
 900 http://snapshot.debian.org/archive/debian/20171007T103908Z stretch/main amd64 Packages
     release v=9.2,o=Debian,a=stable,n=stretch,l=Debian,c=main,b=amd64

./chroot_stretch_20171007T213914Z
9.1
 500 http://snapshot.debian.org/archive/debian/20171007T213914Z stretch/main amd64 Packages
     release v=9.2,o=Debian,a=stable,n=stretch,l=Debian,c=main,b=amd64

./chroot_stretch_20171008T032534Z
9.1
 500 http://snapshot.debian.org/archive/debian/20171008T032534Z stretch/main amd64 Packages
     release v=9.2,o=Debian,a=stable,n=stretch,l=Debian,c=main,b=amd64

Wie wir sehen können, ist der Release-Tag vonApt-Cache-RichtlinieÄnderungen zwischen zwei Schnappschüssen desselben Tages./etc/debian_versionwird nicht aktualisiert, obwohl man auf dieBasisdatei-Paketversionenzeigt an, dass eine neue Version verfügbar gemacht wurde. Beachten Sie, dass bei einer Veröffentlichung kein expliziter Snapshot erstellt wird, sodass dieser Ansatz ein „Best Effort“-Ansatz ist. Folglich gibt es mehrere Möglichkeiten, zu definieren, was Debian Release 9.2 eigentlich ist.

Ich sehe den Sinn von Dot-Releases nicht wirklich, wenn es keine einfache Möglichkeit gibt, sie gezielt anzusprechen. Ich übersehe also wohl etwas Offensichtliches.

Antwort1

Nach längerem Suchen im Internet fand ich einen Thread zum gleichen Thema in der Debian-Benutzerliste:Beschränken Sie apt auf eine bestimmte Jessie-Distribution(Google-Kopie). Dasbestimmter Beitraggibt eine ausführliche Antwort, die sich ebenfalls auf die Debian-Snapshots stützt.

Was noch fehlt, ist ein Snapshot, der eindeutig einer Zwischenversion zugeordnet ist, aber für meinen Zweck reicht jeder aus.

Um eine offizielle Version mit einem Snapshot zu verknüpfen, können Sie die Informationen aus den Jigdo-Dateien verwenden, mit denen Sie ein offizielles ISO neu erstellen können:

$ wget -q -O - https://cdimage.debian.org/mirror/cdimage/archive/8.10.0/amd64/jigdo-bd/debian-8.10.0-amd64-BD-1.jigdo | gunzip | awk -F= '/snapshot.debian.org/ {print $2}'
http://snapshot.debian.org/archive/debian/20171209T215122Z/

verwandte Informationen