debootstrapを使用してcodespaceに作成されたchroot内で開始されたサブプロセスは、/ dev / fd / 62で失敗します。そのファイルまたはディレクトリはありません。

debootstrapを使用してcodespaceに作成されたchroot内で開始されたサブプロセスは、/ dev / fd / 62で失敗します。そのファイルまたはディレクトリはありません。

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

再現するためには、

  • codespaces ベータ登録ここ
  • コード空間の開始このプロジェクト、bashシェル(ctrl + `)を開きます。
  • 上記を実行してください。

これはコード空間の外でも再現されるため、すべてのUbuntu環境で同様の結果が生成される可能性があります。

答え1

答えを見つけましたここ/procインストールされていないことがわかりました。私が実行したインストールプロセスのために

$ cd "${CHROOT}"
$ sudo mount --types proc /proc proc/

今、すべてがうまくいきます!

$ cat < <(echo test)
test

関連情報