bash
私の目標は、デフォルトのUnixツールセット(、、、cp
などtouch
)を使用してchrootを設定し、cat
必要な依存関係を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