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