<Попередній | зміст | Наступна>
6.79. Знову роздягання
Цей розділ є необов’язковим. Якщо передбачуваний користувач не є програмістом і не планує виконувати будь-які налагодження системного програмного забезпечення, розмір системи можна зменшити приблизно на 90 МБ, видаливши символи налагодження з двійкових файлів і бібліотек. Це не створює ніяких незручностей, окрім того, що ви більше не зможете повністю налагоджувати програмне забезпечення.
Більшість людей, які використовують наведені нижче команди, не відчувають жодних труднощів. Однак легко зробити друкарську помилку і зробити нову систему непридатною, тому перед запуском роздягнутися команд, доцільно зробити резервну копію системи LFS в її поточному стані.
Спочатку розмістіть символи налагодження для вибраних бібліотек в окремі файли. Ця інформація про налагодження необхідна під час виконання регресійних тестів, які використовують valgrind або gdb пізніше в BLFS.
save_lib="ld-2.30.so libc-2.30.so libpthread-2.30.so libthread_db-1.0.so" cd /lib
для LIB в $save_lib; робити
objcopy --only-keep-debug $LIB $LIB.dbg strip --strip-unneeded $LIB
objcopy --add-gnu-debuglink=$LIB.dbg $LIB
зроблений
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
для LIB в $save_usrlib; робити
objcopy --only-keep-debug $LIB $LIB.dbg strip --strip-unneeded $LIB
objcopy --add-gnu-debuglink=$LIB.dbg $LIB
зроблений
скасувати налаштування 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
для LIB в $save_lib; робити
objcopy --only-keep-debug $LIB $LIB.dbg strip --strip-unneeded $LIB
objcopy --add-gnu-debuglink=$LIB.dbg $LIB
зроблений
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
для LIB в $save_usrlib; робити
objcopy --only-keep-debug $LIB $LIB.dbg strip --strip-unneeded $LIB
objcopy --add-gnu-debuglink=$LIB.dbg $LIB
зроблений
скасувати налаштування LIB save_lib save_usrlib
Перш ніж виконувати видалення, подбайте про те, щоб жоден із двійкових файлів, які збираються видалити, не запущено:
exec /tools/bin/bash
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} -тип 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} -тип f \
-exec /tools/bin/strip --strip-all {} ';'
Повідомлятиметься про те, що формат файлів у великій кількості не розпізнається. Ці попередження можна безпечно ігнорувати. Ці попередження вказують на те, що ці файли є сценаріями, а не двійковими файлами.