本文較為全面地介紹了Slackware設計思想及其顯著特色,力圖吸引更多人來了解和嘗試這個優秀的發行版。
導言
已經有10年歷史的Slackware是Linux歷史上存活最久的發行版,在它的輝煌時期,曾經在所有發行版中擁有最多的用戶數量。但是,隨著Linux商業化的浪潮,Redhat、Mandrake 和Suse 這些產品通過大規模的商業推廣,占據了廣大的市場;Debian作為一個社區發行版,也擁有很大的用戶群。相比之下,Slackware的不事聲張,使得它從許多人(尤其是新近開始使用Linux的用戶)的視野中消失了。
Slackware在中文支持方面的弱點也讓它為中文用戶所诟病,結果是Slackware的中文用戶數量遠遠低於其他名氣大的發行版。國內的用戶數量少,使得Slackware被蒙上了一層神秘的面紗,一些傳言,如難安裝、中文支持不好等等,讓很多用戶不敢輕易嘗試。
但實際上,Slackware一直以來是以簡潔、安全和穩定所著稱的,在世界范圍內擁有廣大的忠實用戶,其地位在各大發行版中始終排在前5名之列。很多人認為Slackware比較怪,易用性不佳,偏離了Linux商業應用的主流。但在我看來,Slackware是最適於個人學習和使用的發行版。
Slackware的設計哲學──KISS
KISS(Keep it simple,stupid──保持簡單)是Slackware一貫的原則,盡量保持系統的簡潔,從而實現穩定、高效和安全。在Slackware的哲學裡面,簡單(Simple)意味著系統設計的簡潔明了,而不是用戶友好(User friendly),為了達到簡單的目標,Slackware在一定程度上犧牲了易用性。
在KISS原則的指導下,即使在GUI得到大量應用的今天,即使是現在的許多用戶已經對文本界面感到陌生甚至恐懼,Slackware始終如一地保持著文本界面的系統安裝程序,保持著文本界面的系統設置工具。在Slackware看來,圖形化的安裝界面和系統管理工具雖然界面友好,但是過於復雜。
BSD方式的啟動管理,是Slackware最為特立獨行的地方。在絕大多數發行版都采用了System V的啟動管理方式的今天,Slackware仍然堅持了BSD方式,其原因也是因為BSD方式更為簡單直觀。
Slackware在軟件包管理上的獨樹一幟也是KISS原則的體現。它所采用的tgz格式的軟件包,就是普通的tar.gz格式的壓縮文件,包管理工具也只是一些shell腳本。
在軟件包的選擇上,Slackware不貪多求全,只安裝一些常用的軟件。軟件版本不一定選最新的,而是對安全性和穩定性的考慮更多一些,目的也是減輕系統管理工作的負擔。
正是一直以來對KISS原則的堅持,Slackware贏得了簡潔、安全、穩定、高效的名聲,也贏得了一大批的忠實用戶。
以下,我將對Slackware的這幾個特點進行詳細的說明。
文本界面的安裝和設置工具
10年來Slackware的安裝程序都是文本界面的,理由在於文本界面對系統資源的占用低,另外,即使系統對機器的圖形設備支持得不好,只要文本界面能夠工作,就能夠完成系統的安裝。盡管文本界面的安裝程序現在的許多用戶會覺得陌生,但是只要克服最初的畏難情緒,認真仔細地根據屏幕的提示進行操作,安裝Slackware系統絕對不是一樁難事,飛快的安裝速度則是對使用文本界面的報償。
Slackware幾乎沒有提供圖形化(GUI)的系統配置程序,只有有限的幾個文本界面的設置工具。相比之下,Redhat有名為redhat-xxx-config的配置工具,Mandrake有著名的Drake系列配置程序,Suse則提供了集成化的YaST配置中心。類似這樣的東西,在Slackware裡面一律欠奉。
在Slackware的設計者看來,文本界面的設置工具相對於圖形界面更為簡單,只要能進入系統,文本界面的命令就能發揮作用;圖形化的工具則需要圖形系統的支持才能正常工作。另一方面,雖然圖形化的設置工具在一定程度上使得系統管理更為容易,但是也隱藏了系統設置的很多細節。而在Slackware中,你需要了解更多的細節,這樣即使沒有專門的配置程序,你往往可以直接用編輯器編輯系統的配置文件,給你充分控制系統的感覺。
需要指出的是,盡管Slackware在系統設置方面只使用文本界面的工具,但並不意味著它排斥圖形系統。Slackware提供了標准的XFree86或Xorg(從Slackware 10.0開始)的X Window系統,所有基於X Window的軟件都能夠在Slackware中順利安裝和運行。
BSD方式的啟動管理
在目前絕大多數的發行版選擇了System V式的啟動腳本的今天,Slackware仍然堅持使用BSD方式的啟動腳本。在Slackware看來,System V式的腳本會給系統管理帶來不必要的復雜性,其復雜的結構既難於理解又難於維護。當然,System V的支持者們認為System V的結構更靈活、功能更強大。使用BSD方式啟動腳本的好處在於更加容易跟蹤系統的啟動過程,其結構更為直觀易懂,修改起來也非常方便。然而,因為一些大型軟件是針對System V式的Linux系統而設計的,在Slackware中安裝會遇到不兼容的麻煩。為了提高Slackware系統的兼容性,從7.0版起,Slackware中也新增了對於System V啟動腳本的支持。
簡單靈活的軟件包管理機制
Slackware對於軟件包的管理方式,也是它區別於許多別的發行版的顯著特點。
對Linux系統稍有了解的用戶大都知道,不同的發行版對於軟件包的管理提供了不同的機制,一則方便軟件的安裝和卸載,二則希望藉此解決軟件安裝中經常遇到的軟件包之間互為依賴的問題。最常用的軟件包格式是Redhat開發的rpm格式,幾大主流發行版如Redhat、Mandrake、SuSE均采用了這種格式,而Debian使用的是它自己的deb格式,還有一些發行版采用了自己獨有的一些格式。
Slackware采用的是普普通通的tgz格式。tgz格式實際上就是經過gzip壓縮、用tar打包的文件格式,和常見的tar.gz在格式上完全一致,所不同的是在tgz包裡面增加了供Slackware的包管理工具識別的描述文件,提供了軟件的安裝目的地等信息。安裝軟件時,Slackware的包管理工具在解壓的同時就把各個文件依據描述文件的內容復制到相應的目的地。
需要特別指出的是,Slackware在安裝tgz包時,不考慮依賴性,也就是說,它不會檢查這個新安裝的軟件和系統原有的其他軟件之間是否發生沖突,也不檢查是否需要先安裝別的軟件包才能使當前這個軟件正常工作。在用慣了rpm的用戶看來,這樣子豈不是太不保險?Slackware的理由則是:系統管理員應該知道自己系統裡有什麼東西,也應該知道要安裝什麼東西。既然各種軟件包管理工具都不可能從根本上杜絕dependency hell的惡夢,不如干脆由用戶自己來決定。
由於tgz格式的軟件相對來說比較少,使用Slackware時經常需要從源代碼自行編譯軟件。有趣的是,盡管在軟件包管理上Slackware基本上采取的是“放任自流”的方式,但編譯軟件時很少遇到缺這個庫、少那個庫的問題,大多數情況下是非常順利的。
為了方便Slackware的軟件升級和安裝,並在依賴性管理上作出改進,出現了Swaret、Slapt-get和SlackUpdate等項目。
中文化
能否很好地支持中文,是中文用戶選擇Linux發行版的一個重要標准。
在很多人的印象中,Slackware對中文的支持不好,這也是Slackware的中文用戶比較少的原因之一。實際上,Slackware系統中包含了所有Linux國際化支持的內容,它對中文或其他文字的支持並不比別的發行版差,只不過默認安裝時,Slackware沒有提供針對國際化內容進行設置的選項,系統中也沒有自帶中文TrueType字體和輸入法。一旦進行一些簡單的設置並安裝上中文TrueType字體和輸入法之後,你就能得到一個毫不遜色於其他發行版的中文桌面環境。
歷史上,Slackware確實存在對中文支持不太好的問題,但這是在Linux國際化程度比較差的大環境下,幾乎所有發行版都存在的普遍問題。在當時,這促成市場上湧現出了幾種以中文處理為優勢的“國產”Linux。
為了方便解決中文處理的問題,海峽對岸的同胞發起了對Linux進行漢化的Chinese Linux Extension(CLE)項目,把一些零散的中文處理技術整合成一個比較完整的解決方案。CLE的工作成果移植到Slackware之後,確實大大方便了中文用戶。但是,隨著glibc、X Window對國際化支持的進步,系統及應用程序的國際化支持程度也大幅度提高,幾乎所有的中文化支持都可以在系統默認配置的基礎上通過較為簡單的設置而實現,不再需要像過去那樣安裝特殊的中文應用程序。在這樣的背景下,依據我個人的使用經驗,從Slackware 8.1開始,CLE基本上失去了存在的必要性。
Slackware的當前版本已經可以做到通過安裝中文TrueType字體、修改配置文件、安裝中文輸入法這幾個步驟,很容易地實現中文顯示和輸入。系統級的中文打印和LaTeX的中文支持,也能夠用比較簡單的步驟實現。
基於Slackware的項目
由於Slackware系統比較簡潔、干淨,易於在它的基礎上進行開發,幾年來基於Slackware衍生出了幾個發行版和Live-CD項目。
發行版:
CollegeLinux
這是瑞士的Robert Kennydy College在Slackware的基礎上開發的一個發行版,目的是為該學院的學生乃至所有其他的學生提供一個易於安裝和使用並區別於商業化發行版的Linux操作系統。
VectorLinux
這個發行版對Slackware進行了裁減,完全安裝後只占用大約700M硬盤空間,強調系統的小巧、快速,並保持了Slackware穩定、安全的特性。
Slackintosh
這個項目是將Slackware的軟件包移植到PowerPC(例如Mac)環境下的嘗試。可惜的是,項目的開發者已經宣布無限期地延遲這個項目。
Live-CD
所謂Live-CD就是一個在光盤上運行的Linux系統。從Slackware 9.1開始,其第二張安裝CD就是一個Live-CD。除此之外,還存在著其他的Live-CD項目:
Slax
這個項目的主要目標是在將內容控制在185M左右(能刻錄到8cm光盤上)的前提下,提供盡可能多的應用軟件。運行Slax後的個性化設置可以儲存在軟盤、硬盤甚至USB閃存盤上。Slax的漢化版本可以在這裡找到。
Stux
Stux分為兩種版本,完全版內容在650M以下,精簡版(Dino-Stux)的內容在255M以下。
網絡資源
下面列出來Internet上一些有關Slackware的資源:
Slackware的官方網站:www.slackware.com
這是Slackware的官方主頁,但是除非發生特殊的事件,主頁很少更新,不知情的人看來會以為項目已經“死”了。
軟件下載:www.linuxpackages.net
這裡匯集了世界各地的Slackware用戶貢獻的、針對不同Slackware版本編譯的tgz包。網站還提供了討論問題的論壇和有關Slackware安裝和設置的文檔等內容。網站特別介紹了如何制作規范的tgz包的方法。
結語
在一些人眼中,Slackware似乎沒有對Linux社區做出什麼貢獻,它只是把現有的軟件綁在一起。但是,Slackware既然能成為目前存活時間最長的發行版,擁有一批忠實的用戶,是它一直堅持KISS原則、保持自己獨特的風格的結果,這種堅持給用戶帶來一個簡潔、高效和穩定的系統。
Slackware打包時,對內核和軟件的改動盡可能少,除非發現安全漏洞才會打補丁,最大限度地保持了內核和應用軟件的原汁原味。
由於Slackware在系統管理上的簡單、透明,以及“不太友好”的配置工具,用戶在進行系統管理時,需要對系統有更加深入的了解,更容易真正理解Linux的運行機制。
正是由於上述的原因,從Slackware入手學習Linux,雖然門檻稍為有點高,但是更容易接觸到Linux的本質。在Slackware社區,最經常被引用的一句話就是:“When you know Slackware you know Linux. When you know Red Hat, all you know is Red Hat.”