mirror of
https://github.com/avmaisak/LFS_Book.git
synced 2026-01-14 02:00:45 +00:00
Revision: 11459 Author: bdubbs Date: 1 сентября 2018 г. 22:12:51 Message: Trivial text corrections ---- Modified : /trunk/BOOK/appendices/dependencies.xml Modified : /trunk/BOOK/chapter01/whatsnew.xml
78 lines
4.9 KiB
XML
78 lines
4.9 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
||
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||
<!ENTITY % general-entities SYSTEM "../general.ent">
|
||
%general-entities;
|
||
]>
|
||
|
||
<sect1 id="ch-system-strippingagain">
|
||
<?dbhtml filename="strippingagain.html"?>
|
||
|
||
<title>Повторная очистка от отладочных символов</title>
|
||
|
||
<para>Этот раздел является необязательным. Если вы не
|
||
программист и не планируете выполнять отладку установленного программного обеспечения, то общий размер системы можно сократить примерно на 90 МБ, удалив отладочные символы из двоичных файлов и библиотек. Такая операция не вызовет проблем, за исключением того, что не получится выполнить отладку установленного программного обеспечения.</para>
|
||
|
||
<para>Большинство пользователей, которые используют приведенные ниже команды, не испытывают никаких трудностей. Тем не менее, легко сделать опечатку и сделать новую систему непригодной для использования, поэтому перед запуском команд рекомендуется создать резервную копию системы LFS в текущем состоянии.</para>
|
||
|
||
<para>Сначала расположим отладочные символы для выбранных библиотек в отдельные файлы. Отладочная информация необходима для запуска регрессионных тестов, которые используют <ulink
|
||
url='&blfs-book;/general/valgrind.html'>valgrind</ulink> или <ulink
|
||
url='&blfs-book;/general/gdb.html'>gdb</ulink> позднее в книге BLFS.
|
||
</para>
|
||
|
||
<!-- also of interest are libgfortan, libgo, libgomp, and libobjc from gcc -->
|
||
|
||
<!--<screen><userinput>save_lib="ld-2.25.so libc-2.25.so libpthread-2.25.so libthread_db-1.0.so"-->
|
||
<screen><userinput>save_lib="ld-&glibc-version;.so libc-&glibc-version;.so libpthread-&glibc-version;.so libthread_db-&libthread_db-version;.so"
|
||
|
||
cd /lib
|
||
|
||
for LIB in $save_lib; do
|
||
objcopy --only-keep-debug $LIB $LIB.dbg
|
||
strip --strip-unneeded $LIB
|
||
objcopy --add-gnu-debuglink=$LIB.dbg $LIB
|
||
done
|
||
|
||
save_usrlib="libquadmath.so.&libquadmath-version; libstdc++.so.&libstdcpp-version;
|
||
libitm.so.&libitm-version; libatomic.so.&libatomic-version;" <!-- libcilkrts.so.&libcilkrts-version;-->
|
||
|
||
cd /usr/lib
|
||
|
||
for LIB in $save_usrlib; do
|
||
objcopy --only-keep-debug $LIB $LIB.dbg
|
||
strip --strip-unneeded $LIB
|
||
objcopy --add-gnu-debuglink=$LIB.dbg $LIB
|
||
done
|
||
|
||
unset LIB save_lib save_usrlib</userinput></screen>
|
||
|
||
<para>Перед выполнением очистки тщательно следите за тем, чтобы
|
||
ни один из исполняемых файлов, который планируется удалить, не был запущен. Если
|
||
вы не уверены, что вы находитесь в правильно настроенной среде chroot как было рассказано ранее,
|
||
<xref linkend="ch-system-chroot" role=","/> сперва выйдем из среды chroot, выполнив команду:</para>
|
||
|
||
<screen role="nodump"><userinput>logout</userinput></screen>
|
||
|
||
<para>Выполним вход в среду chroot заново, выполнив команду:</para>
|
||
|
||
<screen role="nodump"><userinput>chroot $LFS /tools/bin/env -i \
|
||
HOME=/root TERM=$TERM \
|
||
PS1='(lfs chroot) \u:\w\$ ' \
|
||
PATH=/bin:/usr/bin:/sbin:/usr/sbin \
|
||
/tools/bin/bash --login</userinput></screen>
|
||
|
||
<para>Теперь двоичные файлы и библиотеки можно безопасно очистить:</para>
|
||
|
||
<screen><userinput>/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 {} ';'</userinput></screen>
|
||
|
||
<para>На экране будет множество сообщений, не удается распознать формат файлов (format not recognized). Такие предупреждения можно игнорировать. Они указывают, что файлы являются сценариями вместо двоичных файлов.</para>
|
||
|
||
</sect1>
|