<Precedenti | Contenuti | Succ.>
6.79. Spogliarsi di nuovo
Questa sezione è facoltativa. Se l'utente previsto non è un programmatore e non prevede di eseguire alcun debug sul software di sistema, le dimensioni del sistema possono essere ridotte di circa 90 MB rimuovendo i simboli di debug da file binari e librerie. Ciò non causa alcun inconveniente, se non l'impossibilità di eseguire il debug completo del software.
La maggior parte delle persone che utilizzano i comandi menzionati di seguito non riscontrano alcuna difficoltà. Tuttavia, è facile commettere un errore di battitura e rendere inutilizzabile il nuovo sistema, quindi prima di eseguire il comando striscia comandi, è una buona idea effettuare un backup del sistema LFS nel suo stato attuale.
Innanzitutto, posizionare i simboli di debug per le librerie selezionate in file separati. Queste informazioni di debug sono necessarie se si eseguono test di regressione che utilizzano valgrind o gdb in un secondo momento in BLFS.
save_lib="ld-2.30.so libc-2.30.so libpthread-2.30.so libthread_db-1.0.so" cd /lib
per LIB in $save_lib; fare
objcopy --only-keep-debug $LIB $LIB.dbg strip --strip-unneeded $LIB
objcopy --add-gnu-debuglink=$LIB.dbg $LIB
fatto
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
per LIB in $save_usrlib; fare
objcopy --only-keep-debug $LIB $LIB.dbg strip --strip-unneeded $LIB
objcopy --add-gnu-debuglink=$LIB.dbg $LIB
fatto
unset 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
per LIB in $save_lib; fare
objcopy --only-keep-debug $LIB $LIB.dbg strip --strip-unneeded $LIB
objcopy --add-gnu-debuglink=$LIB.dbg $LIB
fatto
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
per LIB in $save_usrlib; fare
objcopy --only-keep-debug $LIB $LIB.dbg strip --strip-unneeded $LIB
objcopy --add-gnu-debuglink=$LIB.dbg $LIB
fatto
unset LIB save_lib save_usrlib
Prima di eseguire lo stripping, accertarsi che nessuno dei file binari da strippare sia in esecuzione:
esegui /strumenti/bin/bash
esegui /strumenti/bin/bash
Ora i binari e le librerie possono essere rimossi in modo sicuro:
/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} -tipo 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} -tipo f \
-exec /tools/bin/strip --strip-all {} ';'
Un gran numero di file verrà segnalato come il cui formato non è riconosciuto. Questi avvisi possono essere ignorati senza problemi. Questi avvisi indicano che i file in questione sono script e non file binari.