참고
github : https://github.com/NuttyJamie/LinuxFromScratch-for-Korean
TCL
이 패키지와 다음 2개(Expect와 DejaGNU)는 GCC, Binutils 그리고 다른 패키지의 테스트 스위트 실행을 지원하기 위해 설치된다. 테스트 목적으로 3개의 패키지를 설치하는 것은 과도해 보일 수 있지만, 가장 중요한 도구가 제대로 작동하고 있다는 것을 확인하는 것은 필수는 아니더라도 매우 안심할 수 있는 일이다. 이 장에서 테스트 스위트를 실행하지 않더라도(필수 사항이 아님), 6장의 테스트 스위트를 실행하기 위해 필요하다.
tar -xvzf tcl8.6.10-src.tar.gz
cd tcl8.6.10
cd unix
./configure --prefix=/tools
TCL 테스트 스위트를 실행한다.
TZ=UTC make test
make install
chmod -v u+w /tools/lib/libtcl8.6.so
make install-private-headers
ln -sv tclsh8.6 /tools/bin/tclsh
이후 디버깅 기호를 나중에 지울 수 있도록, 설치된 라이브러리르 쓰기 기능으로 설정
Tcl 의 헤더 설치, (expect 패키지 빌드시 사용)
심볼릭 링크를 생성한다.
Expect
tar xf expect5.45.4.tar.gz
cd expect5.45.4
cp -v configure{,.orig}
sed 's:/usr/local/bin:/bin:' configure.orig > configure
Expect 의 configure 스크립트가 호스트 시스템에서 찾을 수 있는 /usr/local/bin/stty 가 아닌 /bin/stty 를 사용하도록 강제한다. 이를 통해 test suite 툴을 툴체인의 최종 빌드에서 사용할 수 있게 된다.
./configure --prefix=/tools \
--with-tcl=/tools/lib \
--with-tclinclude=/tools/include
--with-tcl=/tools/lib
이 옵션을 통해 configure 스크립트가 호스트 시스템에서 기존 것을 찾는 대신 임시 도구 위치에서 Tcl을 찾을 수 있다.
--with-tclinclude=/tools/include
Expect가 Tcl의 내부 헤더를 어디서 찾을지 확실하게 지정한다. 이 옵션을 사용하면 Tcl의 헤더 위치를 자동으로 검색하지 않으므로 configure에 실패하는 상황을 방지할 수 있다.
make
make test
make SCRIPTS="" install
호스트는 LFS 통제하에 있지 않기 때문에 test 는 실패할 수 있다.
SCRIPTS="" 매크로를 통해 필요하지 않은 추가적인 Expect 스크립트의 설치를 방지한다.
설치된 프로그램들: expect
설치된 라이브러리: libexpect-5.45.so (/tools/lib/expect5.45.4/libexpect5.45.4.so)
DejaGNU
DejaGNU 패키지는 다른 프로그램들을 테스트하기 위한 프레임워크를 담고 있다
tar xf dejagnu-1.6.2.tar.gz
cd dejagnu-1.6.2
./configure --prefix=/tools
make install
make check
이후의 임시 시스템을 위한 패키지 설치는 단순 반복이기 때문에 아래 링크로 대체한다.
소유권 변경
$LFS/tools 디렉토리가 lfs 유저의 소유로 되어 있을 경우, LFS 시스템이 완성된 후 lfs 유저가 존재하지 않거나, 동일한 유저 ID를 가진 다른 유저가 생길 수 있다. 이 경우 $LFS/tools 디렉토리와 그 안의 파일들이 새로운 유저에 의해 조작될 위험이 있다. 이를 방지하기 위해, 해당 디렉토리의 소유권을 root로 변경하는 것이 좋다.
chown -R root:root $LFS/tools
'SW > Linux (Kernel)' 카테고리의 다른 글
Linux From Scratch 개발 노트 7 - 시스템 소프트웨어 설치 (1) | 2024.09.17 |
---|---|
Linux From Scratch 개발 노트 5 - 임시 시스템 구축(libstdc++,binutils, gcc) (0) | 2024.08.30 |
Linux From Scratch 개발 노트 4 - 임시 시스템 구축(binutils, gcc, glibc) (0) | 2024.08.29 |
Linux From Scratch 개발 노트 3 - 계정 생성 (0) | 2024.08.28 |
Linux From Scratch 개발 노트 2 - Host System (0) | 2024.08.27 |
댓글