이 절은 선택 사항이다. 사용자가 프로그래머가 아니고 시스템 소프트웨어에서 디버깅을 할 계획이 없다면, 바이너리와 라이브러리에서 디버깅 심볼을 제거해서 시스템 크기를 약 90 MB 줄일 수 있다. 이는 소프트웨어를 더 이상 온전히 디버깅할 수 없다는 점 외에는 다른 불편을 일으키지 않는다.
아래에 언급된 명령어를 사용하는 대부분의 사람들은 어떠한 어려움도 겪지 않는다. 그러나, 오타를 쳐서 새 시스템이 사용할 수 없게 돼버리기 쉬우므로, strip 명령을 실행하기 전에 현재 상태에서 LFS 시스템을 백업하는 것이 좋다.
먼저 선택한 라이브러리의 디버깅 심볼을 별도의 파일에 배치한다. 이 디버깅 정보는 나중에 BLFS에서 valgrind나 gdb를 사용하는 회귀 테스트를 실행할 때 필요하다.
save_lib="ld-2.31.so libc-2.31.so libpthread-2.31.so libthread_db-1.0.so" cd /lib for LIB in $save_lib; do objcopy --only-keep-debug $LIB $LIB.dbg strip --strip-unneeded $LIB objcopy --add-gnu-debuglink=$LIB.dbg $LIB done save_usrlib="libquadmath.so.0.0.0 libstdc++.so.6.0.27 libitm.so.1.0.0 libatomic.so.1.2.0" cd /usr/lib for LIB in $save_usrlib; do objcopy --only-keep-debug $LIB $LIB.dbg strip --strip-unneeded $LIB objcopy --add-gnu-debuglink=$LIB.dbg $LIB done unset LIB save_lib save_usrlib
스트리핑을 수행하기 전에, 스트리핑하려는 바이너리가 실행되지 않도록 각별히 주의하라:
exec /tools/bin/bash
이제 바이너리와 라이브러리는 안전하게 스트리핑될 수 있다:
/tools/bin/find /usr/lib -type f -name \*.a \ -exec /tools/bin/strip --strip-debug {} ';' /tools/bin/find /lib /usr/lib -type f \( -name \*.so* -a ! -name \*dbg \) \ -exec /tools/bin/strip --strip-unneeded {} ';' /tools/bin/find /{bin,sbin} /usr/{bin,sbin,libexec} -type f \ -exec /tools/bin/strip --strip-all {} ';'
많은 파일로부터 파일 형식을 인식하지 못했다고 보고받을 것이다. 이러한 경고는 무시해도 무방하다. 이는 해당 파일이 바이너리 파일이 아닌 스크립트라는 것을 의미한다.