Files
LFS_Book/chapter06/strippingagain.xml
Anton Maisak 8378a293bb SYNC
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
2018-09-02 11:59:51 +03:00

78 lines
4.9 KiB
XML
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?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>