6.79. ລອກອອກອີກ
ພາກສ່ວນນີ້ແມ່ນທາງເລືອກ. ຖ້າຜູ້ໃຊ້ທີ່ຕັ້ງໃຈບໍ່ແມ່ນນັກຂຽນໂປລແກລມແລະບໍ່ໄດ້ວາງແຜນທີ່ຈະເຮັດການດີບັກໃດໆກ່ຽວກັບຊອບແວລະບົບ, ຂະຫນາດຂອງລະບົບສາມາດຫຼຸດລົງປະມານ 90 MB ໂດຍການເອົາສັນຍາລັກການດີບັກອອກຈາກຖານສອງແລະຫ້ອງສະຫມຸດ. ອັນນີ້ເຮັດໃຫ້ເກີດຄວາມບໍ່ສະດວກນອກຈາກບໍ່ສາມາດດີບັກຊອບແວໄດ້ຢ່າງເຕັມສ່ວນອີກຕໍ່ໄປ.
ຄົນສ່ວນໃຫຍ່ທີ່ໃຊ້ຄໍາສັ່ງທີ່ໄດ້ກ່າວມາຂ້າງລຸ່ມນີ້ບໍ່ໄດ້ປະສົບກັບຄວາມຫຍຸ້ງຍາກໃດໆ. ຢ່າງໃດກໍ່ຕາມ, ມັນງ່າຍທີ່ຈະເຮັດໃຫ້ການພິມຜິດແລະເຮັດໃຫ້ລະບົບໃຫມ່ບໍ່ສາມາດໃຊ້ງານໄດ້, ດັ່ງນັ້ນກ່ອນທີ່ຈະດໍາເນີນການ ອອກ ຄໍາສັ່ງ, ມັນເປັນຄວາມຄິດທີ່ດີທີ່ຈະເຮັດການສໍາຮອງຂໍ້ມູນຂອງລະບົບ LFS ໃນສະຖານະປັດຈຸບັນຂອງຕົນ.
ທໍາອິດວາງສັນຍາລັກດີບັກສໍາລັບຫ້ອງສະຫມຸດທີ່ເລືອກໃນໄຟລ໌ແຍກຕ່າງຫາກ. ຂໍ້ມູນການແກ້ໄຂນີ້ແມ່ນຈໍາເປັນຖ້າຫາກວ່າການດໍາເນີນການທົດສອບ regression ທີ່ໃຊ້ 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
ໃນປັດຈຸບັນ binaries ແລະຫ້ອງສະຫມຸດສາມາດຖືກຖອດອອກໄດ້ຢ່າງປອດໄພ:
/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 {} ';'
/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 {} ';'
ໄຟລ໌ຈໍານວນຫຼວງຫຼາຍຈະຖືກລາຍງານວ່າມີຮູບແບບໄຟລ໌ຂອງເຂົາເຈົ້າບໍ່ຮັບຮູ້. ຄຳເຕືອນເຫຼົ່ານີ້ສາມາດຖືກລະເລີຍຢ່າງປອດໄພ. ການເຕືອນໄພເຫຼົ່ານີ້ຊີ້ໃຫ້ເຫັນວ່າໄຟລ໌ເຫຼົ່ານັ້ນເປັນ scripts ແທນທີ່ຈະເປັນ binary.