Live-Build lb build“chroot:无法运行命令‘/usr/bin/env’:没有此文件或目录”

Live-Build lb build“chroot:无法运行命令‘/usr/bin/env’:没有此文件或目录”

我在实时构建方面遇到问题

$ 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 dpkgfixed进行升级这个错误

答案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 中手动添加软件包

相关内容