6.79. Dezbrăcând din nou
Această secțiune este opțională. Dacă utilizatorul vizat nu este un programator și nu intenționează să efectueze nicio depanare pe software-ul de sistem, dimensiunea sistemului poate fi redusă cu aproximativ 90 MB prin eliminarea simbolurilor de depanare din binare și biblioteci. Acest lucru nu cauzează niciun inconvenient în afară de faptul că nu mai puteți depana complet software-ul.
Majoritatea persoanelor care folosesc comenzile menționate mai jos nu întâmpină dificultăți. Cu toate acestea, este ușor să faceți o greșeală de tipar și să faceți noul sistem inutilizabil, așa că înainte de a rula strip comenzi, este o idee bună să faceți o copie de rezervă a sistemului LFS în starea sa actuală.
Mai întâi plasați simbolurile de depanare pentru bibliotecile selectate în fișiere separate. Aceste informații de depanare sunt necesare dacă rulați teste de regresie care folosesc valgrind sau gdb mai târziu în BLFS.
save_lib="ld-2.30.so libc-2.30.so libpthread-2.30.so libthread_db-1.0.so" cd /lib
pentru LIB în $save_lib; do
objcopy --only-keep-debug $LIB $LIB.dbg strip --strip-unneeded $LIB
objcopy --add-gnu-debuglink=$LIB.dbg $LIB
făcut
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
pentru LIB în $save_usrlib; do
objcopy --only-keep-debug $LIB $LIB.dbg strip --strip-unneeded $LIB
objcopy --add-gnu-debuglink=$LIB.dbg $LIB
făcut
dezactivați LIB save_lib save_usrlib
save_lib="ld-2.30.so libc-2.30.so libpthread-2.30.so libthread_db-1.0.so" cd /lib
pentru LIB în $save_lib; do
objcopy --only-keep-debug $LIB $LIB.dbg strip --strip-unneeded $LIB
objcopy --add-gnu-debuglink=$LIB.dbg $LIB
făcut
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
pentru LIB în $save_usrlib; do
objcopy --only-keep-debug $LIB $LIB.dbg strip --strip-unneeded $LIB
objcopy --add-gnu-debuglink=$LIB.dbg $LIB
făcut
dezactivați LIB save_lib save_usrlib
Înainte de a efectua decaparea, aveți grijă deosebită pentru a vă asigura că niciunul dintre fișierele binare care urmează să fie eliminate nu rulează:
exec /tools/bin/bash
exec /tools/bin/bash
Acum, binarele și bibliotecile pot fi eliminate în siguranță:
/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} -tip f \
-exec /tools/bin/strip --strip-all {} ';'
/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} -tip f \
-exec /tools/bin/strip --strip-all {} ';'
Un număr mare de fișiere va fi raportat ca având formatul de fișier nerecunoscut. Aceste avertismente pot fi ignorate în siguranță. Aceste avertismente indică faptul că acele fișiere sunt scripturi și nu binare.