Очистка системы⚓︎
Во время тестов может создаваться большое количество временных файлов. Удалите их:
rm -rf /tmp/*
Перезайдите в среду chroot
:
logout
chroot "$LIN" /usr/bin/env -i \
HOME=/root TERM="$TERM" \
PS1='(chroot) \u:\w\$ ' \
PATH=/bin:/sbin:/usr/bin:/usr/sbin \
/bin/bash --login
Файлы .la
потеряли свою актуальность и могут вызвать проблемы при обновлении. Удалите их:
find /usr/lib /usr/libexec /usr/lib32 -name \*.la -delete
Удалите временный компилятор:
find /usr -depth -name $(uname -m)-lin-linux-gnu\* | xargs rm -rf
Удалите кросс-компилятор:
rm -rf /tools
Удалите созданного для тестов пользователя:
userdel -r tester
Вы можете удалить ненужные символы из исполняемых файлов:
save_usrlib="$(cd /usr/lib; ls ld-linux*)
libc.so.6
libthread_db.so.1
libquadmath.so.0.0.0
libstdc++.so.6.0.29
libitm.so.1.0.0
libatomic.so.1.2.0"
cd /usr/lib
for LIB in $save_usrlib; do
objcopy --only-keep-debug $LIB $LIB.dbg
cp $LIB /tmp/$LIB
strip --strip-unneeded /tmp/$LIB
objcopy --add-gnu-debuglink=$LIB.dbg /tmp/$LIB
install -vm755 /tmp/$LIB /usr/lib
rm /tmp/$LIB
done
online_usrbin="bash find strip"
online_usrlib="libbfd-2.37.so
libhistory.so.8.1
libncursesw.so.6.3
libm.so.6
libreadline.so.8.1
libz.so.1.2.11.zlib-ng
$(cd /usr/lib; find libnss*.so* -type f)"
for BIN in $online_usrbin; do
cp /usr/bin/$BIN /tmp/$BIN
strip --strip-unneeded /tmp/$BIN
install -vm755 /tmp/$BIN /usr/bin
rm /tmp/$BIN
done
for LIB in $online_usrlib; do
cp /usr/lib/$LIB /tmp/$LIB
strip --strip-unneeded /tmp/$LIB
install -vm755 /tmp/$LIB /usr/lib
rm /tmp/$LIB
done
for i in $(find /usr/lib -type f -name \*.so* ! -name \*dbg) \
$(find /usr/lib -type f -name \*.a) \
$(find /usr/{bin,sbin,libexec} -type f); do
case "$online_usrbin $online_usrlib $save_usrlib" in
*$(basename $i)* )
;;
* ) strip --strip-unneeded $i
;;
esac
done
unset BIN LIB save_usrlib online_usrbin online_usrlib
find /usr/lib{,32} -type f -name \*.a \
-exec strip --strip-debug {} ';'
find /usr/lib32 -type f -name \*.so* ! -name \*dbg \
-exec strip --strip-unneeded {} ';'