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

관련 정보