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 - فقط-الاحتفاظ-التصحيح $ LIB $ LIB.dbg قطاع - شريط غير ضروري $ 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 - فقط-الاحتفاظ-التصحيح $ LIB $ LIB.dbg قطاع - شريط غير ضروري $ 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 - فقط-الاحتفاظ-التصحيح $ LIB $ LIB.dbg قطاع - شريط غير ضروري $ 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 - فقط-الاحتفاظ-التصحيح $ LIB $ LIB.dbg قطاع - شريط غير ضروري $ LIB
objcopy --add-gnu-debuglink = $ LIB.dbg $ LIB
فعل
قم بإلغاء تحديد LIB save_lib save_usrlib
قبل إجراء عملية التجريد ، احرص على التأكد من عدم تشغيل أي من الثنائيات التي على وشك التجريد:
إكسيك / أدوات / بن / باش
إكسيك / أدوات / بن / باش
الآن يمكن تجريد الثنائيات والمكتبات بأمان:
/ 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 {} '؛'
سيتم الإبلاغ عن عدد كبير من الملفات على أنها لم يتم التعرف على تنسيقها. يمكن تجاهل هذه التحذيرات بأمان. تشير هذه التحذيرات إلى أن هذه الملفات هي برامج نصية وليست ثنائيات.