我正在研究可重复的构建,并希望最终得到一个脚本来设置包含我的构建环境的恒定虚拟机映像。现在,我将把时间戳和其他差异来源的问题放在一边,因此“恒定”是指可重现的环境。我知道 Debian ReproducibleBuilds的努力,它对软件包版本提出了要求,以保证相同的构建。我想要类似的东西,但在系统级别。
我从 Alpine 开始,它让我可以非常轻松地创建基于特定版本的虚拟机。
我如何对 Debian 做同样的事情,它提供了例如延伸版本 9.0 到 9.4?
到目前为止,我能想到的最好的办法如下:我查看了发布变更日志,然后使用最接近的快照作为debootstrap的包源。
$ 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
$ …
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用以下命令在 Ubuntu 中创建文件系统:
sudo debootstrap --foreign --no-check-gpg --include=ca-certificates --arch=armhf testing rootfs http://debian.raspbian.com/debian
Run Code Online (Sandbox Code Playgroud)
但出现以下错误:
/usr/sbin/debootstrap: 1294: /usr/sbin/debootstrap: cannot create /home/.../rootfs/test-dev-null: Permission denied
E: Cannot install into target '/home/.../rootfs' mounted with noexec or nodev
Run Code Online (Sandbox Code Playgroud)
有人能帮我一下吗?谢谢!
我的脚本正在 chroot 中用 systemd 替换 sysvinit,同时使用 debootstrap 构建 debian 映像。
由于这是一个“危险”的动作,apt-get 会问一个愚蠢的问题:“要继续输入‘是的,按我说的做!’”
我该如何编写对此的回复?
编辑:我尝试了所有 -y --yes --force-yes 选项,但它们不起作用。