Linux From Scratch - Version 12.1-systemd | ||
---|---|---|
Chapter 7. Entering Chroot and Building Additional Temporary Tools | ||
이전 | 위로 / 처음으로 | 다음 |
가상 커널 파일 시스템 준비 | 디렉터리 생성 |
이제 나머지 필요한 도구를 빌드하는 데 필요한 모든 패키지가 시스템에 설치되었으므로 이제 chroot 환경으로 들어가 임시 도구 설치를 마칠 차례입니다. 이 환경은 최종 시스템을 설치하는 데도 사용됩니다. root 사용자로 다음과 같이 아직은 임시 도구로만 채워진 환경으로 들어갑니다.
chroot "$LFS" /usr/bin/env -i \
HOME=/root \
TERM="$TERM" \
PS1='(lfs chroot) \u:\w\$ ' \
PATH=/usr/bin:/usr/sbin \
MAKEFLAGS="-j$(nproc)" \
TESTSUITEFLAGS="-j$(nproc)" \
/bin/bash --login
사용 가능한 모든 논리 코어를 사용하지 않으려면 이 장과 다음 장에서 패키지를 빌드하는 데 사용할 논리 코어 수로 $(nproc)를 바꾸세요. 8장에 나오는 일부 패키지(특히 Autoconf, Libtool, Tar)의 테스트 스위트는 MAKEFLAGS
의 영향을 받지 않고 대신 TESTSUITEFLAGS
환경 변수를 사용합니다. 여기에서도 다중 코어로 이러한 테스트 스위트를 실행하기 위해 이 변수를 설정했습니다.
env 명령에 -i 옵션을 지정하면 chroot 환경의 모든 변수가 지워집니다. 그런 다음 HOME
, TERM
, PS1
및 PATH
변수만 다시 설정됩니다. TERM=$TERM 구문은 루트 내부의 TERM
변수를 chroot 외부와 동일한 값으로 설정합니다. 이 변수는 vim이나 less 등의 프로그램이 제대로 작동하기 위해 필요합니다. CFLAGS
또는 CXXFLAGS
와 같은 다른 변수가 필요한 경우 여기에 설정하는 것이 좋습니다.
이 시점부터는 모든 작업이 LFS 파일 시스템으로 제한되므로 더 이상 LFS
변수를 사용할 필요가 없으며, chroot 명령은 루트(/) 디렉터리를 $LFS
로 설정한 상태에서 Bash 셸을 실행합니다.
경로에 /tools/bin
이 없다는 점에 유의하세요. 이는 크로스 툴체인이 더 이상 사용되지 않음을 의미합니다.
또한 bash 프롬프트에 I have no name!
메시지가 표시됩니다! 이는 /etc/passwd
파일이 아직 생성되지 않았기 때문에 정상입니다.
참고
이 장의 나머지 부분과 다음 장의 모든 명령은 chroot 환경 내에서 실행하는 것이 중요합니다. 재부팅 등의 이유로 이 환경을 떠나는 경우 7.3.1절 "/dev 마운트 및 생성" 및 7.3.2절 "가상 커널 파일 시스템 마운트"에 설명된 대로 가상 커널 파일 시스템이 마운트되었는지 확인하고 설치를 계속하기 전에 다시 chroot 환경으로 들어갑니다.