<Poprzedni | Spis treści | Następne>
6.79. Ponowne rozbieranie
Ta sekcja jest opcjonalna. Jeśli zamierzony użytkownik nie jest programistą i nie planuje debugowania oprogramowania systemowego, rozmiar systemu można zmniejszyć o około 90 MB, usuwając symbole debugowania z plików binarnych i bibliotek. Nie powoduje to żadnych niedogodności poza brakiem możliwości pełnego debugowania oprogramowania.
Większość osób korzystających z poleceń wymienionych poniżej nie napotyka żadnych trudności. Jednakże łatwo jest popełnić literówkę i sprawić, że nowy system stanie się bezużyteczny, więc przed uruchomieniem rozebrać się poleceń, warto wykonać kopię zapasową systemu LFS w jego bieżącym stanie.
Najpierw umieść symbole debugowania dla wybranych bibliotek w oddzielnych plikach. Te informacje debugowania są potrzebne, jeśli później w BLFS zostaną uruchomione testy regresji korzystające z valgrind lub gdb.
save_lib="ld-2.30.so libc-2.30.so libpthread-2.30.so libthread_db-1.0.so" cd /lib
dla LIB w $save_lib; Do
objcopy --only-keep-debug $LIB $LIB.dbg strip --strip-niepotrzebne $LIB
objcopy --add-gnu-debuglink=$LIB.dbg $LIB
zrobić
save_usrlib="libquadmath.so.0.0.0 libstdc++.so.6.0.27 libitm.so.1.0.0 libatomic.so.1.2.0"
płyta CD /usr/lib
dla LIB w $save_usrlib; Do
objcopy --only-keep-debug $LIB $LIB.dbg strip --strip-niepotrzebne $LIB
objcopy --add-gnu-debuglink=$LIB.dbg $LIB
zrobić
usuń LIB zapisz_lib zapisz_usrlib
save_lib="ld-2.30.so libc-2.30.so libpthread-2.30.so libthread_db-1.0.so" cd /lib
dla LIB w $save_lib; Do
objcopy --only-keep-debug $LIB $LIB.dbg strip --strip-niepotrzebne $LIB
objcopy --add-gnu-debuglink=$LIB.dbg $LIB
zrobić
save_usrlib="libquadmath.so.0.0.0 libstdc++.so.6.0.27 libitm.so.1.0.0 libatomic.so.1.2.0"
płyta CD /usr/lib
dla LIB w $save_usrlib; Do
objcopy --only-keep-debug $LIB $LIB.dbg strip --strip-niepotrzebne $LIB
objcopy --add-gnu-debuglink=$LIB.dbg $LIB
zrobić
usuń LIB zapisz_lib zapisz_usrlib
Przed wykonaniem usuwania należy zachować szczególną ostrożność, aby upewnić się, że żaden z plików binarnych, które mają zostać usunięte, nie jest uruchomiony:
wykonaj /tools/bin/bash
wykonaj /tools/bin/bash
Teraz można bezpiecznie usunąć pliki binarne i biblioteki:
/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} -wpisz 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} -wpisz f \
-exec /tools/bin/strip --strip-all {} ';'
Duża liczba plików będzie zgłaszana jako nierozpoznana format pliku. Ostrzeżenia te można bezpiecznie zignorować. Te ostrzeżenia wskazują, że te pliki są skryptami, a nie plikami binarnymi.