6.79. 再次剥离
本节是可选的。 如果目标用户不是程序员并且不打算对系统软件进行任何调试,则通过从二进制文件和库中删除调试符号,可以将系统大小减少约 90 MB。 除了无法再完全调试软件之外,这不会造成任何不便。
大多数使用下面提到的命令的人不会遇到任何困难。 但是,很容易打错字并使新系统无法使用,因此在运行之前 剥离 命令,最好备份 LFS 系统的当前状态。
首先将所选库的调试符号放在单独的文件中。 如果稍后在 BLFS 中运行使用 valgrind 或 gdb 的回归测试,则需要此调试信息。
save_lib="ld-2.30.so libc-2.30.so libpthread-2.30.so libthread_db-1.0.so" cd /lib
用于 $save_lib 中的 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"
光盘 /usr/lib
用于 $save_usrlib 中的 LIB; 做
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
用于 $save_lib 中的 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"
光盘 /usr/lib
用于 $save_usrlib 中的 LIB; 做
objcopy --only-keep-debug $LIB $LIB.dbg strip --strip-unneeded $LIB 复制代码
objcopy --add-gnu-debuglink=$LIB.dbg $LIB 复制代码
完成
取消设置 LIB save_lib save_usrlib
在执行剥离之前,请特别注意确保没有任何即将剥离的二进制文件正在运行:
执行 /tools/bin/bash
执行 /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} -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 {} ';'
大量文件将被报告为无法识别其文件格式。 这些警告可以安全地忽略。 这些警告表明这些文件是脚本而不是二进制文件。