Linux由於其“自由”和“開放”的特性,衍生出了數百種各具特色的發行版。所謂發行版,就是在Linux內核外包裝一些軟件,如我們常見的RedHat Linux、紅旗Linux、Mandrake Linux等等,其本質??內核還是一致的。但由於各種發行版側重的用戶群體不同,往往在使用上差異很大。
由於在Linux上接觸最多的還是它的外圍軟件,各種Linux的發行版對於軟件的管理方式便成了權衡的一個重要因素。對於一個操作系統來說,不能沒有一個像樣的軟件包管理器。
沒有軟件包管理器的幫助,操作系統發行版的制作者將面臨這樣或那樣的難題,用戶安裝、升級、卸載與發布軟件包也將是非常麻煩的,系統管理也容易出現問題;相反,有了專門的軟件包管理器,軟件制作者易於制作和發行自己的軟件了,而對於普通用戶來說,軟件包的安裝維護將變得非常方便了。這樣,對於一個操作系統的推廣也會起到良好的促進作用。
我將Linux的軟件管理方式分成三類:
①基於RPM的軟件包管理方式;
②基於deb的軟件包管理方式;
③基於源代碼的軟件管理。下面分別就這三類談談我的認識和感受。
基於RPM的軟件包管理方式的發行版:RPM是RedHat Package Manager的縮寫,意即RedHat(紅帽子)軟件包管理器。此類發行版的數量最多,用戶群體也最大。國外有知名的如RedHat Linux、Mandrake Linux、SuSE Linux,國內有紅旗Linux,Magic Linux,中標普華Linux等等。
在這種Linux下安裝軟件,一般是選擇已經編譯好的RPM軟件包,用rpm命令安裝,系統會自動地把軟件包解開,並復制到相應的目錄中去,同時會在系統的數據庫中加入軟件包的相關信息。如果以後想要卸載某些軟件,同樣使用rpm命令加上參數-e,系統會去查詢數據庫,並刪除相關的文件和目錄。
安裝、刪除軟件都還比較方便,再加上網上可以下載的RPM軟件包數量非常之多,使用的人多從而容易交流,因此這類發行版作為用戶入門的首選顯得非常不錯。筆者在這裡首推RedHat Linux(以及後來的Fedora)和Magic Linux,一個是國外的發行版,一個是國內的。RPM畢竟是自家的產品,又有龐大的用戶群,軟件的兼容性做得比較好,而其他的發行版總要或多或少的改改以便體現各自的“特色”,這樣一來就容易出現兼容性問題,也就是人們常說的“軟件包依賴問題”。
國內的發行版之所以選擇Magic Linux,主要是因為Magic Linux是一群愛好者們搞出來的Linux,沒有多少商業化的驅使,對Linux本身改動很少,更容易讓人體會到什麼是“純粹”的Linux,對於中文的支持也相當優秀。而紅旗Linux和中標普華Linux太多地模仿Windows,對原本的Linux改動很大,正如前面所說,改動越大,日後越容易出現軟件兼容性問題,筆者在這一點上是深有體會的。
當然,不可否認RPM的軟件包管理方式也就其缺點,最主要的就是上面所提到的“軟件包依賴性問題”。由於一些軟件在運行是往往還需要其他軟件的支持,而用rpm命令安裝軟件包時系統會先檢查它需要的軟件是否已經安裝,如果發現有一個它所依賴的軟件包沒有安裝,安裝程序就會退出,並讓你先安裝上其他軟件,而在安裝其他軟件時又有可能發生依賴性問題……可以想象有多麼麻煩!雖然rpm命令提供了“強制安裝”選項,但除非你有很大的把握,否則“強制安裝”上去的軟件很難正常工作。
為了解決這一惱人的問題,一些發行版使用了自己的解決方案,如Mandrake Linux在RPM的基礎上加了一個前端界面,發現依賴性問題是它會自動到指定的網站上搜索並下載安裝;Fedora提供了一個名為yum的前端程序,發現RPM依賴性問題時也會到指定的網站上下載並安裝。
不過RedHat Linux 9及其以前的版本並未提供這樣的功能。可喜的是,現在有一種APT軟件包管理器正在從Debian Linux上向RedHat Linux上移植,大家可以在http://apt.freshrpms.net/上找到適合自己的APT軟件包管理器,下載安裝就可以了,它可以較好地解決依賴性問題。至於APT的具體使用方法,讀者可以自行查閱相關資料。
基於deb的軟件包管理方式的發行版:這種軟件包管理方式主要用在Debian Linux上,目前國內的發行版如新華華鐳Linux、Hiweed-Debian Linux也采用了這種方式。Debian Linux對於軟件包的管理提供了多種工具,我所知道的有:
l dselect -使用菜單界面的軟件包管理工具(最上層的包管理工具)
l dpkg -安裝軟件包(管理軟件包中的文件)
l apt-get - 安裝軟件包(管理軟件包,CLI APT)
l tasksel -安裝任務套件(管理面向某方面任務的一套軟件包)
l aptitude -安裝軟件包(管理軟件包和任務套件,ncurses APT)
l deity -另一種ncurses APT
l synaptic, gsynaptic -另一種GUI APT
在自由軟件裡,以deb打包的軟件數量是最多的。Debian Linux本身就是由世界各地的志願者共同開發的,其理念也最接近Linux本質。它的軟件包管理方式自誕生之日起就比RPM先進,可以說幾乎沒有所謂的依賴性問題,遇到缺少軟件包的情況時會自動從網上下載或提示您需要哪一張光盤;也正因為如此,我們說Debian Linux對於網絡的依賴性很大。
在Debian Linux下,無論是對於開發者還是最終用戶,deb軟件包都是較好的選擇。Debian Linux下的軟件極其豐富,而且增長速度又逐年加快,最為重要的是,Debian下軟件包的發布都要經過很嚴格的測試,所以Debian Linux的穩定性幾乎是一流的。Debian Linux先進的軟件包管理方式也造成了它的在線升級極其簡單容易--只需一個命令!你不用擔心自己的Linux過時而重新安裝一個新版本的Linux,Debian Linux可以自動做好這一切。
基於源代碼的軟件管理的發行版:這類Linux發行版較少,和其他發行版比起來有很大的不同。典型的有Gentoo Linux,LFS(嚴格地說LFS並不是一個Linux發行版)。以Gentoo Linux為例,它的靈活性很大。Gentoo Linux可以在一個一無所有的計算機上從源代碼編譯出一個完整的Linux操作系統,也可以像其他發行版那樣安裝已經編譯好的軟件包。
在Gentoo Linux下安裝源代碼軟件非常方便,只要一個emerge命令即可,系統會自動編譯安裝,如果需要其他軟件的支持,Gentoo Linux會先從網上下載並安裝。由於Gentoo Linux安裝軟件時通常要編譯源代碼,因此花的時間也就很多。
比如你要從源代碼安裝OpenOffice,最好的辦法是在晚上10點開始安裝,第二天早上睡醒後一般就能安裝上了^_^。但從源代碼安裝有不可比擬的好處,一個是能讓你更加清楚Linux的原理,再就是由於是在自己的計算機上編譯軟件,編譯後的二進制代碼肯定更加適合自己的機器,運行速度往往比安裝預先編譯好的軟件要快得多。所以有時候花點兒時間還是值得的。
剛才還提到了LFS,LFS是Linux From Scratch的縮寫,它是純粹地從源代碼編譯出來的操作系統。安裝它,你需要事先已經安裝有一個Linux和一份安裝手冊。按照安裝手冊的說明在網上下載相應的源代碼,在現有的Linux系統上編譯另一個能夠獨立運行的Linux,聽起來很富有挑戰意義對嗎?LFS的安裝是最困難的,它根本就沒有軟件包的概念。
LFS是完全由你來控制的,當你成功地安裝了LFS後,你會對Linux有更加深入的認識。
總結:如果你剛剛接觸Linux,不妨選擇第一類,RPM的軟件包很多,在中國也很流行,遇到問題了也容易請教,筆者推薦以RedHat Linux、Fedora或Magic Linux來入門。如果你是一個Linux的使用者,看重方便和穩定,那麼Debian Linux自然是你的首選。
如果你認為對Linux有了一定的了解,想更好地“玩”Linux,或是想用Linux構建一個專門用途的高性能平台,那就選擇Gentoo Linux或LFS吧!總之,一切的選擇權在你自己! 更多內容請看Linux安全應用寶典 Linux防火牆 Linux服務器專題,或