Next Previous Contents

3. 程序

3.1 移除核心原始档

核心的原始档会占去约 20 MB 的空间, 所以你应该会想移除他. 在你移除之前, 建议你先建立一个针对你机器组态专用的核心档.

不建议 把核心原始档移除, 除非你确定你的机器已经设定完成. 此外, 当你要编译程式时, 你也需要核心的 #include 档.

如果你决定要移除核心原始档, 不要 移除掉 include/linux 这个路径, 除非你以後不在这台机器上编译程式.

3.2 删减应用程式

首先决定有哪些程式是你 真的 需要的. 哪些则是多馀的: 例如你觉得你不能没有 emacs 吗? 你也可以改用 jed.

哪些程式应该要保留是由你决定的, 下面是一些一般性的要点:

3.3 压榨二进位档

我们可以开始减小二进位档所占的空间. 首先将档案搬到 /usr/bin, 并使用这个指令

machine:/usr/bin# strip *

这会将所有嵌入於二进位档中的符号移除. 你可以在 /usr/X11R6/bin/ 与其他包含有执行档的目录下执行这个指令. (别忘了找 TeX 与 gcc 的执行档) 但是 不要 在 /sbin, /bin, 或 /usr/sbin/ 下面使用这个指令, 以免影响系统.

3.4 利用 upx 压缩执行档

首先安装 upx 并阅读相关说明文件. 然後切换到 /usr/bin, 并且执行 upx *; 他会把所有的执行档压缩, 包括有设定 suid 的档案也会被压缩 (tcx 不会压这种档案). 如同前面一样, 在所有目录下执行这个指令.

当你安装了新的程式套件後, 记得把他压起来.

3.5 把其他东西用 Gzip 压起来

其他还有一堆档案无法一次压起来. 首先我们由 /usr/doc/ 开始. 移动到这个路径後, 使用下面的指令:

machine:/usr/doc# find . -type f -exec gzip -9 {} \; 2> /dev/null

当你安装了新的程式套件後, 记得把他的说明档压起来.

接著在包含 TeX 说明文件的目录下重复上面的压缩指令, 对我的系统而言, 这些文件是存放在 /usr/lib/texmf/texmf/doc/. 如果你希望的话, 也可以把这些东西直接杀掉.

接著安装 zlibc, 并编译他. 如果你的系统和我相似的话, 编译的程序会因为找不到静态连结的 libc 而被中断. 不用管他, 你会找到一个叫做 uncompress.o 的档案, 这就是我们要的了. 把这个档案移到 /usr/local/lib/ 下面, 并且把下面这行加到 /etc/profile 中.

export LD_ELF_PRELOAD=/usr/local/lib/uncompress.o

现在除了文件档可以用 gzip 压缩外, 其他的资料档也可以被压缩. 相关的程式应该还是可以存取这个资料档. 理论上这个方法可以用在各种程式上.


Next Previous Contents