Linux下安裝軟件其實可以和Windows一樣簡便(其實是遠比Windows簡便)玩讳;但安裝軟件的方式不止一種:和Windows下一樣,你可以用正規(guī)的msi包自動安裝嚼贡;也可以從別人的機器把PS/CS/SC之類軟件拷貝過來熏纯、甚至是直接拷源碼自己編譯。
不同之處在于编曼,Windows下豆巨,msi/*install.exe這種標準方式剩辟,有程序員專門寫了全套的安裝配置程序掐场,所以你一點就能裝、裝完能在開始菜單/桌面/系統(tǒng)控制面板的軟件列表中看到它贩猎;但直接拷貝過來的熊户,你得自己建立快捷方式、自己處理它在注冊表和/或其他地方的注冊/配置信息(否則可能壓根無法運行)吭服、稍有不匹配就無法運行——總之極為繁瑣嚷堡,而且往往“集成”不到控制面板。
Linux下也一樣艇棕。
不過蝌戒,Linux下,軟件的維護較為簡單沼琉,不像Windows那樣“曲折隱晦”北苟;因此如果你懂的話,也可以做到“手工安裝”打瘪。
因此友鼻,網上就有了很多很多一知半解的劣質教程傻昙,熱衷于教人從源碼安裝、從非正規(guī)來源強行安裝——然后還可能和系統(tǒng)原有的軟件產生沖突彩扔,產生種種棘手問題妆档。
這種垃圾信息,中文互聯(lián)網上尤其多——或者說虫碉,中文互聯(lián)網反而極少正規(guī)的安裝教程贾惦,越發(fā)凸顯了這類不走正規(guī)路線的教程之多。
Linux下的軟件安裝敦捧,實質上有如下四種纤虽,“正規(guī)”程度依次遞減:
1、使用標準的yum/apt/yast包管理程序安裝
2绞惦、使用標準rpm/deb或廠商自己的安裝包(比如nVidia的顯卡驅動用的bin包)安裝
3逼纸、直接解壓軟件開發(fā)者的tar.gz包
4、自源碼編譯
其中:
1济蝉、使用標準的yum/apt/yast包管理程序安裝
這種安裝方式相當于蘋果/安卓平臺上的“應用商店”安裝杰刽,是最安全可靠的安裝模式。
通過這種方式安裝的軟件王滤,不僅完全契合你的操作系統(tǒng)本身贺嫂,而且可以保證和系統(tǒng)其他軟件包的相容性,一般來說是不可能遇到沖突的雁乡。
Linux有很多發(fā)行版第喳;其中一些面對服務器的版本會非常保守,里面的每一個軟件都會經過連續(xù)多年的測試踱稍,穩(wěn)定度極高曲饱。但相應的,這里面的軟件就會老舊一些珠月。典型如Redhat/CentOS/Debian(stable版)等扩淀。用這類版本就很容易遇到“急需的軟件找不到”問題——因此,不建議你在桌面使用它們啤挎。
fedora驻谆、Ubuntu、Debian(testing)等版本內容相對較新庆聘,穩(wěn)定度也還不錯胜臊,建議用它們當桌面使用。這可以盡量減少你“找不到較新軟件”的困擾伙判。
2象对、使用標準rpm/deb或廠商自己的安裝包(比如nVidia的顯卡驅動用的bin包)安裝
這種方式相當于Windows下的安裝包安裝,安全性/穩(wěn)定度都還不錯澳腹;但可能會因為你用了過新/過舊的安裝包而和系統(tǒng)其他部分產生相容性問題——比如系統(tǒng)用python2.4你到網上拖了個python3或python1.5织盼、又強行把它裝上去還附加到路徑最前杨何,那么很可能就會造成其他依賴python的軟件出現(xiàn)混亂。
另一個典型案例就是你裝了nVidia的bin包之后沥邻,經常在系統(tǒng)更新(尤其是更新內核之后)無法進入圖形界面危虱。這就是因為nVidia的顯卡驅動并沒有被Linux軟件倉庫自動管理,因此出現(xiàn)了內核-驅動之間的不匹配問題唐全。
所以埃跷,重復一遍:建議優(yōu)先使用yum/apt/yast等命令,通過系統(tǒng)軟件倉庫安裝應用邮利。不建議自己下軟件包安裝弥雹。
哪怕是在Redhat系上安裝其他地方下載的標準rpm包,都是不建議的延届。
3剪勿、直接解壓軟件開發(fā)者的tar.gz包
這種類似于Windows的“免安裝綠色版”軟件。
你可以把它解壓到你自己的用戶目錄方庭,然后在自己的bash.rc之類配置文件中厕吉,用export把它加入path——這樣你才可以直接在shell中敲它提供的新命令。
這種方式適用于試用新軟件械念、或者僅為自己使用而下載軟件头朱;不建議把它加入系統(tǒng)路徑——也就是不建議用su取得超級用戶權限、把它安裝到系統(tǒng)目錄龄减。
因為這種東西和系統(tǒng)的相容性未經測試项钮,后果完全不可預料。
4希停、自源碼編譯
這個方式和3類似烁巫,也不建議安裝到系統(tǒng)目錄。
因為它比3更不可靠:編譯后的庫文件脖苏、應用可能散落在諸多目錄程拭,一不小心就弄得到處都是垃圾、甚至可能覆蓋掉系統(tǒng)本身自帶的關鍵庫棍潘,引起系統(tǒng)崩潰。
這種東西和3一樣崖媚,未經系統(tǒng)包管理器“把關”亦歉,無法保證它不和系統(tǒng)組件相互覆蓋。
除非你完全明白Linux里里外外都是怎么回事畅哑,否則不建議使用3/4安裝方式肴楷。
當然,編譯荠呐,然后放自己用戶目錄使用赛蔫,這樣還是安全的——換句話說砂客,只要不動用root權限,隨你怎么折騰呵恢。
5鞠值、其他特殊情況
python有個pip包管理器,可以自動安裝各種python軟件包渗钉,比如Django之類東西彤恶。
pip可以把軟件安裝到用戶目錄,也可以通過root權限安裝到系統(tǒng)目錄鳄橘;但強烈不建議你動用root權限声离。
事實上,大多數(shù)Linux發(fā)行版的包管理器本身就可以通過系統(tǒng)軟件倉庫安裝Django瘫怜;你應該優(yōu)先使用它而不是pip术徊。因為前者可以保證不出現(xiàn)相容性問題。
當然鲸湃,很多時候弧关,Linux本身的軟件倉庫可能稍微“老舊”一些,讓你得不到最新版的Django或者其他軟件包唤锉;甚至有時候世囊,它壓根就沒有某個流行python包。
這時候你可能不得不使用pip窿祥;那么株憾,記住不要用su提升權限,讓pip把軟件包裝給你自己用就行——如果的確需要多個賬戶一起用晒衩,那么可以把它安裝到opt/var之類目錄嗤瞎,但盡量不要讓它直接進系統(tǒng)目錄,以免造成混亂听系。
總結起來其實就一句話:如果你有絲毫含糊贝奇,請用系統(tǒng)軟件倉庫(yum/apt/yast),不要碰你不懂的東西靠胜!
——換句話說:對初學者來說掉瞳,一個能解決你幾乎所有需求的軟件倉庫才是最實惠的;因此請尋找軟件倉庫最新最全的Linux發(fā)行版(fedora/Ubuntu等)浪漠,千萬不要聽所謂的“老鳥”瞎忽悠陕习。
——同樣的,如果你要尋找某個軟件的安裝/配置教程址愿,請尋找和你使用的系統(tǒng)相同的该镣、直接通過標準軟件倉庫(yum/apt/yast)安裝的那種。除非是極不常見的小眾軟件响谓、或者為了嘗鮮某個軟件最新版的某個新特性损合,凡讓你繞開系統(tǒng)軟件倉庫的教程都是垃圾省艳。
其實也不需要多么小心謹慎。關鍵是你得知道它是靠什么管理軟件包的嫁审,盡量不要破壞它——那些著名發(fā)行版的測試還是非常完善的跋炕,極少出錯(真錯了你還可以提交個bug報告讓他們改)。
換句話說土居,和Windows不同枣购,Linux基礎系統(tǒng)提供了太過豐富的內容、這些內容又組合起來擦耀、彼此互為基礎的給你提供了很多很多的便利工具——這就使得這么多的庫棉圈、編程語言、shell眷蜓、shell script彼此依賴分瘾,成了一張網。
那么吁系,當你安裝一個基礎軟件(如python解釋器)時德召,就很容易破壞軟件網之間的依賴——相比之下,Windows因為默認不提供python/php/perl等等等等支持而顯得清爽干凈汽纤、不易出錯上岗。
但如果你的確需要這么多支持,那么你還是要在Windows上裝它們蕴坪、依賴它們肴掷、維護它們。這時候反而更加耗費精力背传。
Linux則有一個強大的社區(qū)呆瞻,他們幫你把所有這些軟件維護的井井有條、幫你解決了所有這些軟件包之間的依賴問題径玖,使得你可以“開箱即用”痴脾。
那么,你要做的梳星,就是盡量配合他們赞赖,不要破壞他們已經解決好了的依賴網——對于真正用Linux而不是玩Linux的人來說,這才是選擇不同發(fā)行版的最佳依據(jù)丰泊。
因此薯定,強烈建議使用發(fā)行版自帶的包安裝工具,因為這樣你才能真正利用好社區(qū)為你維護好的軟件倉庫瞳购。
如果迫不得已使用了你的Linux發(fā)行版軟件倉庫之外的軟件,請盡量把它隔離出去——隔離的辦法有很多很多亏推,從設置路徑前綴(從而把它安裝到/opt或/var或其他位置)学赛、利用chroot……不一而足年堆。
反之,如果你像那些半瓶子咣當?shù)慕坛桃粯诱到剑衍浖ake install到系統(tǒng)目錄变丧,你就不得不經常性的手動調整它們的依賴關系——這時候,你才不得不“小心謹慎”绢掰。