Saving Space mini-HOWTO 作者: Guido Gonzato, [1]mailto:guido@ibogeo.df.unibo.it 译者: Jing-Jong SHYUE, [2]mailto:shyue@sonoma.com.tw v1.0.1, 7 April 1999 _________________________________________________________________ 这份 mini HOWTO 提供尽可能减小 Linux 安装所需空间的方向, 特别针对笔记型 电脑的使用者. _________________________________________________________________ 1. 简介 2. 软体需求 3. 程序 * 3.1 移除核心原始档 * 3.2 删减应用程式 * 3.3 压榨二进位档 * 3.4 利用 upx 压缩执行档 * 3.5 把其他东西用 Gzip 压起来 4. 一个实例 5. 总结 * 5.1 版权声明(此段不译) * 5.2 免责声明(此段不译) _________________________________________________________________ 1. 简介 我买了一台笔记型电脑, 而除了预先安装好的 Windows 之外, 我想把 Linux 也 装上去. 我把 Windows 所使用的分割区减小到 500 MB, 如此我有 240 MB 的空 间可以给 Linux 使用. 我必须使用一些技巧, 并尽量减少空间的需求, 才能把基 於 RedHat 4.1 的完整功能系统安装进去. 就算你不需要更多的空间, 但你也能在这份文件中找到释放硬碟空间的方法. 但 我要说在前面的是: 如果有任何问题发生, 请不要怪我!! 我将使用一些本质上有 危险的方式, 虽然我用的很好. 我已经警告过你了!! 2. 软体需求 你必须要有: * 一个完整可运作的 Linux 系统 (任何版本应该都可以); * 一般的 gzip 压缩工具程式, 或是 bzip2 压缩程式. 你可以在 [3]ftp://sunsite.unc.edu:/pub/Linux/utils/compress 找到这些工具; bzip2 的压缩率比 gzip 要好, 但速度较慢且需要较多的记忆体. * upx 执行档压缩程式, 他的网页在 [4]http://cdata.tvnet.hu/~ml/upx.html 或者 [5]http://wildsau.idv.uni-linz.ac.at/mfx/upx.html; * zlibc 套件, 你可以在 [6]ftp://sunsite.unc.edu:/pub/Linux/libs/compression 找到. 档名是 zlibc-X.X.tar.gz, 而 X.X 版本序号. 还有一些其他的执行档压缩器, 例如 gzexe (别用这个); 与在 upx 之前最好用 的 tcx; 另外还有 tzx, 理论上比 tcx 好用; 但他把我的系统弄乱了, 虽然我不 确定我是否犯了错误. 你最好还是用 upx, 因为他可信赖, 有效率, 而且容易使 用. 另外有一个核心修补档让你可以使用如 Stacker 等程式所压缩的硬碟, 但是对於 资料的写入稳定性并不是很好. 为了安全起见, 最好别用. 3. 程序 3.1 移除核心原始档 核心的原始档会占去约 20 MB 的空间, 所以你应该会想移除他. 在你移除之前, 建议你先建立一个针对你机器组态专用的核心档. 我 不建议 把核心原始档移除, 除非你确定你的机器已经设定完成. 此外, 当你 要编译程式时, 你也需要核心的 #include 档. 如果你决定要移除核心原始档, 不要 移除掉 include/linux 这个路径, 除非你 以後不在这台机器上编译程式. 3.2 删减应用程式 首先决定有哪些程式是你 真的 需要的. 哪些则是多馀的: 例如你觉得你不能没 有 emacs 吗? 你也可以改用 jed. 哪些程式应该要保留是由你决定的, 下面是一些一般性的要点: * gcc 是非常大的套件. 但却是编译核心与任何原先没有的应用程式所需要 的. 当然, 如果你自行撰写 C 或是 Fortran 程式时, 其中的 f2c 或 g77 也是必须的. 依据你的状况来决定是否要移除他们. 而其他的编译器如 lcc 也还不错, 只是没有 gcc 高阶, 我想你可能会留著他. * X11 是吓人的大, 但有他是一件好事. 如果你决定不能没有他, 至少作下面 的事情: 只留下必要的 X 伺服器, 使用一个简单的视窗管理介面, 只留下 xterm, 不要安装 100 dpi 的字型等等. * TeX 与伴随的套件也相当的大. 放弃 LaTeX 而使用单纯的 TeX 能省下很多 的空间; 如果你使用 dvitty 或 dvivga, 则你可以放弃 X11 下的预览程 式, 例如 xdvi 与 ghostview. 除去这些 X11 的软体, 也能减少 X11 所需 的空间. * 游戏软体是不需要的 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 压缩外, 其他的资料档也可以被压缩. 相关的程式 应该还是可以存取这个资料档. 理论上这个方法可以用在各种程式上. 4. 一个实例 这是我在我的机器上用上面的方法的结果, 根据 df 的报告, 在开始减肥前, 我 用了 398,798 个以 1024 位元组为单位的区块. * 我没有移除核心原始档与核心标头档. * 我把一些程式与游戏给反安装掉, 但我留下了 X11, X11 程式发展套件, C 与 Fortran 发展套件, Tcl/Tl, 网路工具, 和其他一些标准程式. df 回报 我用了 244,668 个区块. * 我在 /usr/bin, /usr/X11R6/bin, /usr/lib/texmf/bin/i586-linux, 以及 /usr/lib/gcc-lib/i386-linux/2.7.2.1 下面使用 upx, df 回报我用了 226,270 个区块. * 我把 /usr/doc 与 /usr/lib/texmf/texmf/doc 下面的文件压缩起来, df 回 报我用了 198,745 个区块. 总结而言, 我一开始用掉了 398,798 个区块, 最後我只用了 198,745 个区块. 想想看你在少於 200,000 个区块的使用量下可以有多少东西! 如果我用 bzip2 而不是 gzip 的话, 我还能省下更多的空间. 平均而言, 如果一开始安装时你只安装必要的程式, 压缩执行档与说明档, 可能 节省 20 MB 的空间, 对笔记电脑而言, 这是个救命丹. 5. 总结 5.1 版权声明(此段不译) Unless otherwise stated, Linux HOWTO documents are copyrighted by their respective authors. Linux HOWTO documents may be reproduced and distributed in whole or in part, in any medium physical or electronic, as long as this copyright notice is retained on all copies. Commercial redistribution is allowed and encouraged; however, the author would like to be notified of any such distributions. All translations, derivative works, or aggregate works incorporating any Linux HOWTO documents must be covered under this copyright notice. That is, you may not produce a derivative work from a HOWTO and impose additional restrictions on its distribution. Exceptions to these rules may be granted under certain conditions; please contact the Linux HOWTO coordinator at the address given below. In short, we wish to promote dissemination of this information through as many channels as possible. However, we do wish to retain copyright on the HOWTO documents, and would like to be notified of any plans to redistribute the HOWTOs. If you have questions, please contact Tim Bynum, the Linux HOWTO coordinator, at tjbinum@sunsite.unc.edu via email. 5.2 免责声明(此段不译) ``Saving Space mini-HOWTO''was written by Guido Gonzato, [7]REMOVE_MEguido@ibogeo.df.unibo.it. This document is provided ``as is''. I put great effort into writing it as accurately as I could, but you use the information contained in it at your own risk. In no event shall I be liable for any damages resulting from the use of this work. Feedback is welcome. For any requests, suggestions, flames, etc., feel free to contact me. Enjoy Linux and life, Guido =8-) References 1. mailto:guido@ibogeo.df.unibo.it 2. mailto:shyue@sonoma.com.tw 3. ftp://sunsite.unc.edu/pub/Linux/utils/compress 4. http://cdata.tvnet.hu/~ml/upx.html 5. http://wildsau.idv.uni-linz.ac.at/mfx/upx.html 6. ftp://sunsite.unc.edu/pub/Linux/libs/compression 7. file://localhost/tmp/zh-sgmltools.4483/REMOVE_MEguido@ibogeo.df.unibo.it