麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 系統(tǒng) > CentOS > 正文

CentOS 7下的軟件安裝方法及策略

2024-06-28 16:00:27
字體:
供稿:網(wǎng)友
原文地址

一些廢話

2010年開始正式接觸linux,入門發(fā)行版是Ubuntu 10.10,后來過渡到Ubunu 11.04,這其中也嘗試了很多其他主流的發(fā)行版。進入實驗室之后,開始用CentOS 5,然后是CentOS 6,現(xiàn)在進化到CentOS 7。

使用了四年的Linux,前三年都是在瞎折騰,浪費了不少時間,也得到了不少經(jīng)驗與教訓。現(xiàn)在可能是真的老了,已經(jīng)不愿意折騰了,只希望配置好一個系統(tǒng)之后,就一直使用下去。

為什么要寫/讀這一篇

使用Linux尤其是CentOS會遇到一些坑,或是一些有潔癖的人不能忍的事情:

官方源中的軟件包版本太老,在功能上無法滿足需求;多個源的軟件包存在版本沖突;手動編譯軟件,默認會將不同文件放置在/usr/local下不同的子目錄下,使得軟件的更新和刪除變得麻煩。等等…

在經(jīng)歷了幾次重裝CentOS之后,特總結(jié)出如下幾條軟件安裝的方法與原則,以盡可能保證當前系統(tǒng)的穩(wěn)定、整潔,盡可能降低系統(tǒng)潔癖引起的重裝沖動。

以下所說,僅限于CentOS7,對其他發(fā)行版,或許有借鑒意義。

官方源

CentOS自帶的四個官方源中,默認打開的有base、updates、extras,這三個源中包含了約9000個軟件包,是最穩(wěn)定、也是最值得信賴的源。

因而若一個軟件包在官方源內(nèi),則應通過官方源安裝:

sudo yum install PackageName

第三方源

官方源雖然包含了很多軟件包,但無法滿足日常需求。幸好有第三方源,可以作為官方源的補充。

在使用第三方源的過程中,最怕遇到這兩個問題:

第三方源和官方源中有相同的包,導致官方源的包被第三方源替代;多個第三方源中存在同一個軟件包,且版本不一致,存在沖突;

這兩個問題經(jīng)常是致命的,出現(xiàn)各種預料不到的后果,因而選擇第三方源要遵循如下原則:

只選擇可靠的第三方源,要確保第三方源不會替換官方源中的包;使用盡量少的第三方源,以保證第三方源之間不會沖突;

就CentOS而言,根據(jù)以上的原則,使用如下第三方源:

大型第三方源,已確認不會替換官方源的包,且相互之間無沖突EPEL:包含6500多個軟件,科研必備ELRepo:包含幾十個各種硬件的驅(qū)動程序有些小型第三方源,僅包含了幾個軟件,確認與官方源和EPEL源不會沖突,也可以添加Google Chrome:包含了Google Chrome,不會與官方源和EPEL源沖突;Adobe:僅包含F(xiàn)lash插件,已確認不會沖突;dropbox:僅包含dropbox一個軟件,已確認不會沖突;

因而,若一個軟件包位于EPEL、ELRepo中,或一些小型的第三方源中,則添加該第三方源,并用yum命令安裝:

sudo yum install PackageName

官方rpm包

大部分非開源的軟件,在CentOS官方源或EPEL中是沒有的。有些軟件的官方網(wǎng)站會提供官方rpm包。此時可以從官方網(wǎng)站下載與當前系統(tǒng)對應的rpm包,直接用如下命令安裝:

sudo rpm -i PackageName.rpm

比如,wps for Linux就是其中一個。在安裝的過程中rpm命令會自動檢查依賴關系,若該軟件所依賴的包在官方源和EPEL源中可以找到,則自動安裝。

直接安裝rpm包的做法相當省事,但該軟件不能由yum更新,稍稍麻煩一點。有些軟件,比如前面提到的Google、Dropbox和Adobe其實也可以通過這種方法安裝,在安裝的同時會給系統(tǒng)添加源,對于這類軟件依然可以很方便的更新與刪除。

解壓即用

有些軟件,官方提供了壓縮包,解壓之后即可直接運行其中的二進制文件,比如很多java寫的軟件。這類軟件沒有給源代碼,而是給了可以在當前平臺下直接執(zhí)行的二進制文件。大多數(shù)非開源的商業(yè)軟件都采取這種辦法。

比如sublime_text、pycharm、mendeley、TauP、sac等,直接解壓,然后將解壓后的文件夾復制到/opt目錄下,然后將該軟件的bin目錄加入到PATH中即可。比如Mathematics、Matlab、intel studio,軟件包中提供安裝腳本,執(zhí)行該腳本即可安裝;

Linux下的習慣是,商業(yè)軟件或第三方軟件都安裝到/opt目錄下,這也是大多數(shù)商業(yè)軟件包的默認安裝路徑,盡量遵循該習慣。

第三方rpm包

有些軟件,CentOS源和EPEL源中找不到,官方又沒有提供rpm包,但是其他第三方源提供了rpm包。分情況討論:

若該第三方源只包含了很少量的包,且確定這些包與官方源以及其他已使用的第三方源不沖突,則可以添加該第三方源。若該第三方源包含了很多軟件,很可能與官方源或EPEL源有沖突,則不添加該源若該軟件包沒有復雜的依賴關系,則直接安裝該源中的rpm包;若該軟件包依賴于該第三方源中的其他包,則放棄,尋找其他方法;

第三方包管理器

不同的發(fā)行版使用不同的軟件包管理器,CentOS使用yum,Ubuntu使用apt-get。近些年又出現(xiàn)了一些與發(fā)行版無關的第三方包管理器,比如Linuxbrew、Gentoo PRefix、pkgsrc。

Linuxbrew

Linuxbrew是由OS X平臺下非常流行的Homebrew移植到Linux下的。Linuxbrew可以作為系統(tǒng)自帶的包管理器的一個補充。其特色在于:

所有軟件都安裝在${HOME}/.linuxbrew目錄下;軟件的版本相對很新;install、uninstall、info、list、update、upgrade等功能若庫中沒有需要的軟件包,可以很簡單地自己創(chuàng)建formulae

試用了一下,一個比較坑的地方是,linuxbrew會自己內(nèi)部解決依賴問題。比如,我試著通過linuxbrew安裝terminator,然后發(fā)現(xiàn)terminator依賴于python,盡管系統(tǒng)已經(jīng)安裝了python,linuxbrew還是會安裝一份python,又由于python依賴于更多的東西,導致又安裝了更多軟件包在home下。而且,linuxbrew是從源碼編譯軟件的,所以相對來說速度較慢。

編譯源碼

大部分軟件用前面的幾種方法應該都能安裝上了。如果沒安裝上,那就得問問自己,真的需要安裝這個軟件么。如果不是非常必要的話就不要安裝啦。如果是必須的軟件,那就必須要手動編譯了。

常見的源碼編譯,一般也就是如下幾步。當然,具體情況具體對待:

tar -xvf xxxx.tgz./configure --prefix=/opt/xxxxmakesudo make install

一般來說,這類軟件的默認安裝目錄都是/usr/local,最終文件會被分別放在/usr/local的bin、lib、share、man目錄下。

我個人非常不喜歡這種方式,因為作為一個通過源碼編譯的軟件來說,意味著編譯者要完全負起管理該軟件的義務,這樣的放置方式會來更新或卸載軟件帶來很多麻煩。所以我總是會在configure的時候加上prefix手動指定安裝路徑。要卸載該軟件就直接刪除/opt下對應的目錄,要更新的話,也可以先刪除,再重新編譯一遍。這樣做稍微麻煩的一點是,需要手動將該軟件的bin目錄加入到PATH中,還有可能需要修改LD_LIBRARY_PATH。但是一般來說,需要編譯源碼的軟件很少,所以不會造成太大的麻煩。

編譯代碼

好吧,其實我不知道該怎么起標題了。。

前一節(jié)“編譯源碼”主要針對的是一些大型軟件包,這一節(jié)“編譯代碼”指的是對一些專業(yè)性很強的小代碼包的處理方式。比如有些軟件包編譯之后實際需要的只是一個二進制文件,這個時候就沒有必要安裝到/opt了,合適的方式是在自己的HOME下建立bin目錄,并將其路徑加入到.bashrc 中,然后將編譯生成的二進制文件復制到該目錄下即可:

mkdir ${HOME}/binecho 'export PATH=${HOME}/bin:$PATH' >> ~/.bashrc

比如我的${HOME}/bin目錄下有如下文件:

distaz:給出地球上兩點經(jīng)緯度,計算震中距和方位角pssac:在GMT中繪制SAC文件rdseed:SEED格式轉(zhuǎn)SAC格式win2sac_32catwin32:Hi-net網(wǎng)站提供的用于處理Hi-net數(shù)據(jù)的程序st:sublime_text被安裝到/opt目錄下,在此建立一個軟鏈接,方便在命令行調(diào)用sublime textwlt.pl:校內(nèi)用于登陸網(wǎng)絡通的腳本,在命令行修改網(wǎng)絡端口,好happyfkfk.plsyntrav:Prof. Lupei Zhu的用于計算合成地震圖的程序,源代碼有不少,實際需要用的也就這三個可執(zhí)行文件和一個perl腳本。matlab:指向matlab的一個軟連接;

不要隨便什么二進制文件都往bin里放,這里只應放一些常用的命令或很通用的工具。

自成系統(tǒng)的軟件

有一類軟件,其擁有眾多模塊或包,為了管理這眾多的模塊,就需要擁有一個自己的模塊/包管理器。這其中以TeX、Perl和Python為代表。對于這一類軟件,其眾多的模塊是最大的優(yōu)勢,也是最值得利用的資源,因而我通常會選擇手動安裝它們,原因如下:

系統(tǒng)的源中不可能包含該軟件的所有模塊;系統(tǒng)的源中該軟件的模塊的更新要遠遠滯后于最新版本;

當然,即便是使用系統(tǒng)自帶的版本,也依然可以用該軟件自帶的包管理器來安裝模塊。但將導致:

部分模塊用系統(tǒng)的yum管理,部分模塊用軟件自帶的包管理器管理;yum安裝的模塊一般版本較老,軟件的包管理器要安裝的大多是最新版本;

這一方面會導致模塊管理的混亂,另一方面用軟件自帶的包管理其安裝模塊時,可能會依賴于其他模塊的最新版本,若該模塊是通過系統(tǒng)yum安裝的較舊的版本,則可能導致模塊的安裝失敗。

因而,對于這類軟件,一般單獨安裝,并用各自的包管理器管理模塊:

TeXLive:通過TeXLive iso鏡像文件安裝,使用其自帶的tlmgr管理包Perl:通過plenv安裝最新版本的Perl,使用plenv自帶的cpanm安裝模塊Python:通過pyenv安裝最新版本的Python,使用Python自帶的pip安裝模塊

例外

有規(guī)則總有例外。

第三方源

mosquito-myrepo是一個私人維護的源,其中包含了中文輸入法、QQ、飛信、為知筆記、有道詞典、百度云以及若干音頻、視頻播放器。我對這個源的態(tài)度是又愛又恨,其提供了很多中國人需要的軟件,但因為其依賴于除EPEL外的其他第三方軟件源,進而可能導致包沖突。所以對該源的使用,要保持謹慎。

總結(jié)

簡單總結(jié)一下:

為系統(tǒng)添加EPEL源、ELRepo源和個別其他小型第三方源能夠從源中安裝的就從源中安裝不能從源中安裝的盡量找rpm包安裝找不到rpm包的就試試linuxbrew能不手動編譯的就不要手動編譯

修訂歷史

2014-11-23:初稿;2014-12-01:第三方源中加入ELRepo源;

So what do you think? Did I miss something? Is any part unclear? Leave your comments below.

4 Comments

Related Posts:

使用EPEL和RPMforge源安裝netcdf時的沖突Linux下安裝NVIDIA顯卡驅(qū)動用CentOS 7打造合適的科研環(huán)境如何徹底卸載Intel Parallel StudioCentOS 7下安裝WPS Office
? 閱讀博文的歷史版本 GMT邊框發(fā)虛的原因及解決辦法 ?

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 91国在线高清视频 | 日本中文字幕高清 | 欧美xxxx精品另类 | 欧美久久一区二区 | 久久99国产综合精品 | 欧美一级黄色录像片 | 一级免费在线视频 | 麻豆一二区 | 黄色18网站 | 在线亚洲欧美日韩 | 精品国产专区 | 香蕉视频网站在线观看 | 国产精品久久久久免费视频 | bt 自拍 另类 综合 欧美 | 国产日本在线 | 91成人在线免费 | 欧美亚洲国产日韩 | 91久久极品少妇韩国 | 黄色大片高清 | 亚洲九九爱 | 亚洲成人播放 | 国产精品99久久久久久久女警 | av免费在线观看不卡 | 毛片在线免费观看完整版 | 国产视频精品在线 | 毛片免费观看视频 | 欧美国产精品一区二区 | 久久人体 | 精国品产一区二区三区有限公司 | 成人国产精品一区 | 午夜精品福利视频 | 黄色男女视频 | 成年免费在线视频 | 亚洲九九色 | 日韩av片网站 | av国产免费 | av免费在线播放网址 | 成人一级视频 | 成人在线视频免费播放 | 国产亚洲精久久久久久蜜臀 | 国产一区网址 |