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