文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>18.构建LFS系统──安装系统基础软件(十)

18.构建LFS系统──安装系统基础软件(十)

时间:2006-11-17  来源:anima

十八、构建LFS系统──安装系统基础软件(十)


58.关于调试符号

在缺省情况下,大多数程序和库都是带调试符号(使用 gcc 的 -g 选项)编译的。 当调试一个带调试符号的程序时,调试器不仅能给出内存地址,还能给出函数和变量的名字。

但是,这些调试符号明显地增大了程序和库。想知道这些调试符能带来多大的差异,请看下面的统计资料:

  • 带调试符号的动态 bash 二进制文件:1200 KB

  • 不带调试符号的动态 bash 二进制文件:480 KB

  • 带调试符号的 Glibc 和 GCC 文件 (位于 /lib 和 /usr/lib 目录):87 MB

  • 不带调试符号的 Glibc 和 GCC文件:16 MB

根据使用的编译器和连接动态程序的 C 库的版本的不同,文件的大小可能会有所不同,但是比较带调试符号与不带调试符号的程序的比较结果应该不会改变,大概是 2~5 倍大小。

由于大多数人都不会在系统软件上使用调试器,把这些符号去掉就能节省大量的空间。下一节将给您展示如何从程序和库文件中去除所有调试符号链接。附加的信息在系统优化信息里可以找到 http://www.linuxfromscratch.org/hints/downloads/files/optimization.txt







59.再次清理系统

如果编译此系统的用户不是一个程序员并且不打算在系统软件上做任何调试工作,系统大小可以通过从二进制包和库文件中删除调试链接削减大约 90 MB 的空间,这样做的代价是您以后将不能随时调试系统。

大多数人可以毫无困难地凭经验使用命令提示。但是,很容易因为一个打字错误就被报告新系统不能使用,因此在运行 strip 命令前,对系统当前数据做一个备份是一个不错的主意。

在执行清理命令之前,请特别注意确保正在运行的二进制文件不被清理。如果您不确定是否用户是进入在虚根环境(进入Chroot环境)下操作,请首先退出虚根环境:

logout

接着用下面的命令再次进入:

chroot $LFS /tools/bin/env -i \
HOME=/root TERM=$TERM PS1='\u:\w\$ ' \
PATH=/bin:/usr/bin:/sbin:/usr/sbin \
/tools/bin/bash --login

现在二进制文件和库文件能安全地被清理了:

/tools/bin/find /{,usr/}{bin,lib,sbin} -type f \
-exec /tools/bin/strip --strip-debug '{}' ';'

很多文件将被报告说不能识别它们的文件格式,这些警告可以安全地忽略。这些警告只是表明那些文件是脚本而不是二进制文件。

如果硬盘空间非常紧张,这个 --strip-all 选项可以被用在二进制文件目录 /{,usr/}{bin,sbin} 中以获得更多的空间。不要在库文件里使用这个参数,因为这个参数将会破坏库文件。









60.最终的清理

从现在起,在退出后,每当重新进入 Chroot 环境,请使用下面修改过的 chroot 命令:

chroot "$LFS" /usr/bin/env -i \
HOME=/root TERM="$TERM" PS1='\u:\w\$ ' \
PATH=/bin:/usr/bin:/sbin:/usr/sbin \
/bin/bash --login

这样做的理由是起初在 /tools 目录下的程序已经不再需要了,这个目录可以删除以重新获得更多硬盘空间。在实际动手删除这个目录之前,请退出虚根环境并且使用上面修改过的命令重新进入虚根环境。还有一点,在删除 /tools 目录前,请将此目录打包压缩并且存储在一个安全的地方,以备以后编译另一个 LFS 系统。



注意

删除 /tools 目录将也会删除临时文件夹中已拷贝的 Tcl, Expect, DejaGNU 等文件,而这些文件是那些正在运行的工具链接测试程序使用的。如果要在以后使用这些程序,它们需要重新编译和重新安装,BLFS 手册介绍了如何重新安装(参见 http://www.linuxfromscratch.org/blfs/)。



如果虚拟内核文件系统被卸载了,或者是重启系统了。确保虚拟内核文件系统在重新进入 chroot 环境时已经挂载了(参见“挂载并填充 /dev 目录”和“挂载虚拟内核文件系统”)。




退出虚根环境:

root:/sources/vim70# logout

[root@fish ~]#


重新进入Chroot环境:

[root@fish ~]# /usr/sbin/chroot "$LFS" /usr/bin/env -i \

> HOME=/root TERM="$TERM" PS1='\u:\w\$ ' \

> PATH=/bin:/usr/bin:/sbin:/usr/sbin \

> /bin/bash --login

root:/#


查看目录:

root:/# ls

bin dev home lost+found mnt proc sbin srv tmp usr

boot etc lib media opt root sources sys tools var

root:/# ls tools/

bin etc i686-pc-linux-gnu include info lib libexec man sbin share var

root:/# ls sources/

MD5SUMS

SHA1SUMS

autoconf-2.59

autoconf-2.59.tar.bz2

automake-1.9.6

automake-1.9.6.tar.bz2

bash-3.1

bash-3.1-fixes-8.patch

bash-3.1.tar.gz

bash-doc-3.1.tar.gz

binutils-2.16.1

binutils-2.16.1.tar.bz2

binutils-build

bison-2.2

bison-2.2.tar.bz2

bzip2-1.0.3

bzip2-1.0.3-bzgrep_security-1.patch

bzip2-1.0.3-install_docs-1.patch

bzip2-1.0.3.tar.gz

coreutils-5.96

coreutils-5.96-i18n-1.patch

coreutils-5.96-suppress_uptime_kill_su-1.patch

coreutils-5.96-uname-1.patch

coreutils-5.96.tar.bz2

db-4.4.20

db-4.4.20-fixes-1.patch

db-4.4.20.tar.gz

dejagnu-1.4.4

dejagnu-1.4.4.tar.gz

diffutils-2.8.1

diffutils-2.8.1-i18n-1.patch

diffutils-2.8.1.tar.gz

e2fsprogs-1.39

e2fsprogs-1.39.tar.gz

expect-5.43

expect-5.43.0-spawn-1.patch

expect-5.43.0.tar.gz

file-4.17

file-4.17.tar.gz

findutils-4.2.27

findutils-4.2.27.tar.gz

flex-2.5.33

flex-2.5.33.tar.bz2

gawk-3.1.5

gawk-3.1.5-segfault_fix-1.patch

gawk-3.1.5.tar.bz2

gcc-4.0.3

gcc-4.0.3-specs-1.patch

gcc-4.0.3.tar.bz2

gcc-build

gettext-0.14.5

gettext-0.14.5.tar.gz

glibc-2.3.6

glibc-2.3.6-inotify-1.patch

glibc-2.3.6-linux_types-1.patch

glibc-2.3.6.tar.bz2

glibc-build

glibc-libidn-2.3.6.tar.bz2

grep-2.5.1a

grep-2.5.1a-redhat_fixes-2.patch

grep-2.5.1a.tar.bz2

groff-1.18.1.1

groff-1.18.1.1-debian_fixes-1.patch

groff-1.18.1.1.tar.gz

grub-0.97

grub-0.97-disk_geometry-1.patch

grub-0.97.tar.gz

gzip-1.3.5

gzip-1.3.5-security_fixes-1.patch

gzip-1.3.5.tar.gz

iana-etc-2.10

iana-etc-2.10.tar.bz2

inetutils-1.4.2

inetutils-1.4.2-gcc4_fixes-3.patch

inetutils-1.4.2-no_server_man_pages-1.patch

inetutils-1.4.2.tar.gz

iproute2-2.6.16-060323

iproute2-2.6.16-060323.tar.gz

kbd-1.12

kbd-1.12-backspace-1.patch

kbd-1.12-gcc4_fixes-1.patch

kbd-1.12.tar.bz2

less-394

less-394.tar.gz

lfs-bootscripts-6.2.tar.bz2

libtool-1.5.22

libtool-1.5.22.tar.gz

linux-2.6.16.27-utf8_input-1.patch

linux-2.6.16.27.tar.bz2

linux-libc-headers-2.6.12.0

linux-libc-headers-2.6.12.0-inotify-3.patch

linux-libc-headers-2.6.12.0.tar.bz2

m4-1.4.4

m4-1.4.4.tar.gz

make-3.80

make-3.80.tar.bz2

man-db-2.4.3

man-db-2.4.3.tar.gz

man-pages-2.34

man-pages-2.34.tar.bz2

mktemp-1.5

mktemp-1.5-add_tempfile-3.patch

mktemp-1.5.tar.gz

module-init-tools-3.2.2

module-init-tools-3.2.2-modprobe-1.patch

module-init-tools-3.2.2.tar.bz2

ncurses-5.5

ncurses-5.5-fixes-1.patch

ncurses-5.5.tar.gz

old

old2

patch-2.5.4

patch-2.5.4.tar.gz

perl-5.8.8

perl-5.8.8-libc-2.patch

perl-5.8.8.tar.bz2

procps-3.2.6

procps-3.2.6.tar.gz

psmisc-22.2

psmisc-22.2.tar.gz

readline-5.1

readline-5.1-fixes-3.patch

readline-5.1.tar.gz

sed-4.1.5

sed-4.1.5.tar.gz

shadow-4.0.15

shadow-4.0.15.tar.bz2

sysklogd-1.4.1

sysklogd-1.4.1-8bit-1.patch

sysklogd-1.4.1-fixes-1.patch

sysklogd-1.4.1.tar.gz

sysvinit-2.86

sysvinit-2.86.tar.gz

tar-1.15.1

tar-1.15.1-gcc4_fix_tests-1.patch

tar-1.15.1-security_fixes-1.patch

tar-1.15.1-sparse_fix-1.patch

tar-1.15.1.tar.bz2

tcl8.4.13

tcl8.4.13-src.tar.gz

texinfo-4.8

texinfo-4.8-multibyte-1.patch

texinfo-4.8-tempfile_fix-2.patch

texinfo-4.8.tar.bz2

udev-096

udev-096.tar.bz2

udev-config-6.2.tar.bz2

util-linux-2.12r

util-linux-2.12r-cramfs-1.patch

util-linux-2.12r.tar.bz2

vim-7.0-fixes-7.patch

vim-7.0-lang.tar.gz

vim-7.0-mandir-1.patch

vim-7.0-spellfile-1.patch

vim-7.0.tar.bz2

vim70

zlib-1.2.3

zlib-1.2.3.tar.gz

root:/#



把/tools目录打包压缩:

root:/# tar -jcvf tools-LFS-6.2.tar.bz2 tools/

root:/# ls

bin etc lost+found opt sbin sys tools-LFS-6.2.tar.bz2

boot home media proc sources tmp usr

dev lib mnt root srv tools var

root:/#

然后在宿主系统把该压缩包存储到一个安全的地方,以备以后编译另一个LFS系统。





相关阅读 更多 +
排行榜 更多 +
躺平不要慌

躺平不要慌

音乐节奏 下载
嗨自拍修图

嗨自拍修图

图像拍照 下载
装修计算器

装修计算器

游戏工具 下载