我的目标是使用基本的 Unix 工具集(bash
、cp
、touch
、cat
等)建立 chroot ,并且任何必要的依赖项都需要apt get
在代码空间内运行。使用 debootstrap 让我更接近。基本工具都安装好了,可以运行了apt get
。问题是子进程不起作用。我希望最后一行打印“test”,但实际上我收到一个错误,说子进程的文件句柄不好。我本以为普通的 debootstrap 环境会被充分煮熟,以便子进程工作,但情况似乎并非如此。有一个开关我可以通过吗?
$ sudo apt-get install -y binutils debootstrap
$ cd /home/codespace
$ CHROOT=/home/codespace/chroot
$ mkdir -p "${CHROOT}"
$ sudo debootstrap stable "${CHROOT}" http://deb.debian.org/debian/
$ sudo chroot "${CHROOT}"
$ cat < <(echo test)
bash: /dev/fd/63: No such file or directory
为了重现,
这也会在代码空间之外重现,因此任何 Ubuntu 环境都可能会产生类似的结果。
答案1
找到了答案这里。结果发现/proc
没有安装。为了安装进程我跑了
$ cd "${CHROOT}"
$ sudo mount --types proc /proc proc/
现在一切正常了!
$ cat < <(echo test)
test