BV1AL 著 (由 Ping 轉成 wiki)
● LiveCD 語文支援
感謝各位developer的努力,讓我能站在巨人的肩膀上把每個人努力的成果拿來組合成為 LiveCD.
還是那句老話,LiveCD沒什麼深奧技巧,就是花時間把一些別人的東西組合起來,修一修、測一測,勞力密集一點,基本上跟傳統安裝在硬碟的Linux沒多大差別。
所以,在中文化方面沒有太大的困難,因為多數program都已經有對應於各locale的mo檔,其中也大都有中文,所以只要把package裝進來,locale設好,就有相當程度的中文環境可用了,特別是以 KDE/GNOME 為操作環境的話,中文方面應該接近於不必動手做什麼就ready。
從2002年開始玩 KNOPPIX 也試了多款 LiveCD,但技術上大多沒有 KNOPPIX 成熟好用,而且多數「標準LiveCD」如KNOPPIX、GNOPPIX、PCLinuxOS、Ubuntu等因為裝了相當於正常安裝於硬碟的多種軟體,體積都很大,而且依賴光碟執行的同時也佔用了光碟機,因此到2005年改玩 DSL。
● DSL是比較特別的 LiveCD
在2005年分享出來的幾個版本 DSL 是比較特別的 LiveCD,我之所以說「分享」是因為基本上那個東西是我自己在用,覺得不錯,就獻醜的把它放上網路讓有興趣的朋友也抓去玩玩看,所以裡面的環境不見得適合每個人的需求以及操作習慣。
多數LiveCD都是用isolinux控管開機(如下圖)
DSL(Damn Small Linux 可以譯成「真它ㄋㄟㄋㄟ的小Linux」)的特點就是體積小,比傳統六百多 MB 的 LiveCD 小很多,原版 DSL 只有大約 50MB,包括多數常用的軟體,不過當然沒有支援中文。
要在台灣用,當然就需要某種程度中文化,再加上一些我要玩的軟體。以最近做的版本來說大約 80MB,可以全部載入 RAM 裡面執行,只要 CPU 快,它的執行速度就相對的快,例如說開啟 firefox 只要三秒,然後又不佔光碟機。
這 80MB 裡加入了不少我認為「很有用」的東西,這些都是原版 DSL 沒有:
firefly 中文字型(pcf)
firefox 1.5中文版(經過加工設定,可以直接閱覽 DOC/XLS 檔)
gaim 最常用的 instant messenger(ICQ/MSN/Yahoo/IRC/google talk)
gcin 中文輸入工具
gvpe 一種以 ssl 加密的 VPN 建構工具
nfs server及簡便設定介面,將這台電腦的filesystem 分享出去
shfs 以 ssh 方式把別的電腦 mount 進來用
sox/ogg 即時錄音組合
iftop 看流量、連接機組, bwm 看 band width
dsniff 可以用來…………做很多事情………
nast 嗯…………好用的網路工具
ccrypt 檔案加密工具
esd 補強一些較差的音效卡
ncftp ftp client工具
joe/qe 好用的 text editor
rxvt/rxvt-unicode
sdcv "start dict console version"
qiv 快速看圖工具
leafpad 簡便的 GUI text editor
cramfs 的支援,將單一或整個 directory 以單一檔案 loop mount
morse 摩爾斯發報轉換工具(可以無螢幕操作)
netatalk 連接 Apple MacOS 8/9 的工具
查聖經的工具
螢幕抓圖工具介面
日文東風哥德體字型
以上是內含在系統檔裡,另外還有可以隨時外掛的(在光碟裡)
amule 騾子 / Bittorrent
thunderbird
samba server
gimp
qemu
xine
audacity
dvd tools 燒 DVD 用的
後來我用了常被用來控管硬碟開機的grub來控管DSL開機。
因為DSL體積不大,就算預置了一些可以臨時「加掛」的軟體進來,體積仍只有兩三百MB,於是進一步將一些體積小的LiveCD也整合進同一片光碟,包括 DSL/MoviX/GEEXBOX/KNOPPIX(縮小版)/GEEXBOX 等不同的Linux distro(可以算 distro吧!)全整合在一張 CD 裡, 開機時可以用「上、下」箭頭選擇要進入哪一種 Linux, 比傳統用 isolinux 得自己下開機參數還看不到選項來得好用。
為了要「小」,也就要犧牲一些東西,諸如把 man, doc, 拿掉,把 apt, dpkg 的相關資訊也「抽出」放到光碟上(不和系統一起載入 RAM),以及像是一些用不到的 locale 也都「抽出」,最後還要考慮的就是中文相關的東西,包括「字型」、「輸入法」。
這兩樣東西都有一些問題,像 firefox 我一直不知道要怎麼叫它不要自作聰明的把字型 anti-alias,以前我做的 KNOPPIX 用 mozilla, 它可以受 /etc/fonts/fonts.conf 指揮多大的字以下不要 anti-alias。但是 firefox 據我的實作看來是不受 fonts.conf 指揮,它還是會自行 anti-alias,所以後來干脆不用 TTF 而改用 pcf, 因為沒有了 TTF 它就無法拿去變把戲。
下面的圖是用 TTF 字型所呈現出來的模糊狀
用了 pcf 字型便清晰, 只是少了大小變化(因為只有 12,14,16 三種size)但三款 pcf 才大約 1.4MB 是 TTF 的十分之一不到, 解決了 anti-alias 的問題,也同時達到「小」的要求──摸蚋仔兼洗褲。
下面的圖是用 pcf 呈現出來的清析狀
近年來中文輸入工具不斷有新的程式出現,但我最熟悉的還是老牌的 xcin,最近經 firefly 的加持後更加好用,不過一直以來 xcin 都還要 depend libtabe 以及本身的體積整個大上 gcin 很多,所以改造 DSL 時選擇的是 gcin。
有人說 gcin 需要 gtk 以及一些 library, 不是體積也一樣很大嗎?沒錯,gcin 需要 gtk 以及其他某些東西,但是,像 gaim/firefox 等也都需要 gtk,我做的 DSL 裡固定包了 gaim/firefox(中文版),不管裝不裝 gcin, 系統裡早已塞進 gtk 了, 因此 gcin 在體積方面是比較經濟的選項。
在這種小型 Linux LiveCD 裡選中文輸入工具注定得選體積小、depend越少越好的,或者至少是跟別的軟體有共用 library 才是比較經濟的。
● 中文化到什麼程度?
Linux 在多國語言支援方面已經有全世界的朋友在做,當然也包含中文,不過在 LiveCD 裡中文化到底要做到什麼程度?
因為像 DSL 這種小型 LiveCD 是不可能用 GNOME/KDE做為桌面操作環境,所以整體的中文環境建構大都要自行動手,特別是能適合 DSL 用的小體積程式,可能都沒有中文mo,像 fluxbox 就我知道應該是沒有中文 mo。
menu要不要中文化?desktop icon要不要中文化?
在 menu 的部份我已經把主要「常用/用得到」的部份中文化了,而 desktop icon 中文化這個議題站在我的立場,我認為是不必中文化的,因為 desktop 的圖示大都可以讓人一目瞭然那個是什麼,就算一目不瞭然,用過一兩次就會知道哪個圖是什麼軟體了,因此不太需要為了中文化而讓體積肥胖起來。
我理想的可以全部載入 RAM 的 LiveCD 主系統(這裡指的是整個 filesystem 壓縮後的單一系統檔案,不是指整片光碟的內容量) 應該是在 80MB 以內,才能保有「在 RAM 裡執行的優點」。當然把系統做到 150MB 還是可以載入到一台 256M RAM 的機器,只是開機後幾乎不能用(只能開機以及開小程式) ,所以對一台只有 256M 的機器而言,主系統 150MB 跟 690MB 事實上沒什麼差別,還是得綁死在光碟上執行。
對於看到沒有中文的東西就覺得不能用的朋友,我只能說抱歉!
所以,
● 來個 LiveCD team 吧!
現在國內已經有不少 LiveCD 的版本,但幾乎也全是 one man team,一個人自己決定要做什麼?怎麼做?好處是想了就做,想怎麼做就怎麼做,不必找別人商確。壞處是做出來的東西可能只有跟自己習性相近的人適合用。
不過,「自己愛怎麼玩就怎麼玩」好像也是「Free」的哲學吧!
let it free
想想如果能有一組人來做 LiveCD 也是蠻好的事,畢竟依自己一個人的需要所做出來的東西對別人來說一定有所不足,就技術層面來說也是,像上面說的,如果可以用 TTF 又不會被 firefox anti-alias 那樣一定比現在我用 pcf 好。
至於目前我做的 DSL 主系統大約 80MB 事實上仍然還有減肥的空間,像我自己的 notebook 也是跑 DSL,但是我把用不到的 kernel module 也砍掉,系統體積大約 71MB,每減 1MB 系統體積就等於多出 2MB RAM可用。
這也是想借這次跨年 party 提出來的題目之一「來個 LiveCD team 吧!」