我在实时构建方面遇到问题
$ sudo lb build --interactive shell
返回
chroot: failed to run command ‘/usr/bin/env’: No such file or directory
有人知道发生了什么事吗?
答案1
我遇到了同样的事情,我认为这是因为我的工作目录是通过 vagrant 从我的主机操作系统(mac osx)挂载的。
P: If the following stage fails, the most likely cause of the problem is with your mirror configuration or a caching proxy.
P: Running debootstrap...
mknod: ‘/vagrant/tutorial1/chroot/test-dev-null’: Operation not permitted
E: Cannot install into target '/vagrant/tutorial1/chroot' mounted with noexec or nodev
P: Begin unmounting filesystems...
P: Saving caches...
chroot: failed to run command ‘/usr/bin/env’: No such file or directory
该'/usr/bin/env': No such file or directory
错误是因为 debootstrap 失败,我敢打赌正在运行的命令是这样的:chroot /vagrant/tutorial1/chroot /usr/bin/env FOO=bar baz
,而 chroot 无法找到/usr/bin/env
我移出了机器上的 /vagrant 路径,但它似乎正在正常工作。
尝试查看输出中较早的消息以寻找线索。如果您仍不确定,请随意在此处粘贴更多输出!
答案2
@kitchen 对错误消息含义的诊断是准确的,但场景与我的不符。我发现./chroot/debootstrap/debootstrap.log
包含有关命令为何debootstrap
失败的其他信息:
dpkg-deb: error: archive './/var/cache/apt/archives/base-files_10.1ubuntu2_arm64.deb'
has premature member 'control.tar.xz' before 'control.tar.gz',
giving up
事实证明该dpkg
软件包已经过时了。使用apt-get install -y dpkg
fixed进行升级这个错误。
答案3
如果有人再次遇到此问题(来自 Google):
Ubuntu 忘记将一些密钥包含到 Debootstrap 用于验证 Release 文件的 ubuntu-archive-keyring 中。
解决方案就是以 root 身份运行此命令
gpg --no-default-keyring --keyring /usr/share/keyrings/ubuntu-archive-keyring.gpg --keyserver keyserver.ubuntu.com --recv-keys 40976EAF437D05B5
答案4
更改镜像,正如你所说 lb build stop after
chroot: failed to run command ‘/usr/bin/env’: No such file or directory
发生这种情况是因为您在 include.chroot.packages 中设置的所有包并未全部下载。
因此系统在此时卸载,现在 chroot 甚至无法使用望远镜:))
change mirror in lb config , use stable mirror
我在构建 Amzux 时也遇到过这种情况,解决方案是更改镜像。
您还可以在 chroot/var/apt/cache/archives 中手动添加软件包