특정 Debian/Ubuntu 릴리스 버전을 설치하는 방법은 무엇입니까?

특정 Debian/Ubuntu 릴리스 버전을 설치하는 방법은 무엇입니까?

재현 가능한 빌드를 조사 중이며 이를 설정하는 스크립트로 끝나기를 바랍니다.끊임없는내 빌드 환경이 포함된 VM 이미지입니다. 지금은 타임스탬프 및 기타 차이점 소스에 대한 문제는 제쳐두겠습니다.끊임없는", 재현 가능한 환경을 의미합니다. 나는 데비안을 알고 있습니다.재현 가능한 빌드노력을 요구합니다.패키지 버전동일한 빌드를 보장합니다. 비슷한 것을 원하지만체계수준.

저는 Alpine으로 시작했는데 이를 기반으로 VM을 만들 수 있었습니다.특정 릴리스아주 쉽게.

예를 들어 데비안에 대해 동일한 작업을 수행하려면 어떻게 해야 합니까?뻗기9.0~9.4 릴리스?

지금까지 내가 생각해 낼 수 있는 최선의 방법은 다음과 같습니다.릴리스 변경 로그, 그런 다음 가장 가까운 것을 사용했습니다.스냅 사진내 패키지 소스로디부트스트랩.

$ 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

보시다시피, 릴리스 태그는적절한 캐시 정책같은 날의 두 스냅샷 사이의 변경 사항입니다. 하지만/etc/debian_version확인해봐도 업데이트가 안되네요기본 파일 패키지 버전새로운 버전이 출시되었음을 보여줍니다. 릴리스 시에는 명시적인 스냅샷이 생성되지 않으므로 이 접근 방식은 "최선의" 접근 방식입니다. 결과적으로 데비안 릴리스 9.2가 실제로 무엇인지 정의하는 방법은 여러 가지가 있습니다.

도트 릴리스를 대상으로 하는 간단한 방법이 없으면 도트 릴리스의 요점을 실제로 알 수 없으므로 분명한 것이 누락된 것 같습니다.

답변1

더 많은 웹 검색을 한 후 데비안 사용자 목록에서 동일한 주제에 대한 스레드를 발견했습니다.특정 Jessie 배포판으로 제한(구글 카피). 이것특정 게시물데비안 스냅샷에 의존하여 긴 답변을 제공합니다.

아직 누락된 것은 포인트 릴리스와 명확하게 연결된 스냅샷이지만 어떤 것이든 내 목적에 적합합니다.

공식 릴리스를 스냅샷에 연결하려면 공식 ISO를 다시 빌드할 수 있는 jigdo 파일의 정보를 사용할 수 있습니다.

$ 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/

관련 정보