亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > CentOS > 正文

CentOS7下的軟件安裝方法及策略詳解

2020-07-08 12:42:54
字體:
來源:轉載
供稿:網友

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

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

為什么要寫/讀這一篇

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

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

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

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

官方源

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

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

sudo yum install PackageName

第三方源

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

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

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

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

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

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

大型第三方源,已確認不會替換官方源的包,且相互之間無沖突 EPEL:包含 6500 多個軟件,科研必備 ELRepo:包含幾十個各種硬件的驅動程序 Nux Dextop:多媒體相關的軟件包(與 EPEL 的個別軟件相沖突,可忽略)

有些小型第三方源,僅包含了幾個軟件,確認與官方源和 EPEL 源不會沖突,也可以添加 Google Chrome:包含了 Google Chrome,不會與官方源和 EPEL 源沖突; Adobe:僅包含 flash 插件,已確認不會沖突; dropbox:僅包含 dropbox 一個軟件,已確認不會沖突;

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

sudo yum install PackageName

官方 rpm 包

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

sudo rpm -i PackageName.rpm

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

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

解壓即用

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

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

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

第三方 rpm 包

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

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

第三方包管理器

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

Linuxbrew

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

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

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

編譯源碼

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

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

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

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

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

編譯代碼

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

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

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

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

distaz :給出地球上兩點經緯度,計算震中距和方位角 pssac :在 GMT 中繪制 SAC 文件 rdseed :SEED 格式轉 SAC 格式 win2sac_32 、 catwin32 :Hi-net 網站提供的用于處理 Hi-net 數據的程序 st :sublime_text 被安裝到 /opt 目錄下,在此建立一個軟鏈接,方便在命令行調用 sublime text wlt.pl :校內用于登陸網絡通的腳本,在命令行修改網絡端口,好 happy fk 、 fk.pl 、 syn 、 trav :Prof. Lupei Zhu 的用于計算合成地震圖的程序,源代碼有不少,實際需要用的也就這三個可執行文件和一個 perl 腳本。 matlab :指向 matlab 的一個軟連接;

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

自成系統的軟件

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

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

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

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

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

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

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

例外

有規則總有例外。

第三方源

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

總結

簡單總結一下:

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲精品福利在线| 日本精品在线视频| 欧美精品一本久久男人的天堂| 北条麻妃99精品青青久久| 亚洲人成在线观看网站高清| 国产精品普通话| 国产视频自拍一区| 欧美激情亚洲另类| 日韩精品在线免费观看| 久久免费精品视频| 亚洲美女视频网站| 92国产精品久久久久首页| 狠狠躁夜夜躁人人爽天天天天97| 成人福利网站在线观看11| 国语自产在线不卡| 欧美一区二区大胆人体摄影专业网站| 日韩国产欧美区| 亚洲区免费影片| 亚洲天堂男人天堂女人天堂| 国产视频在线观看一区二区| 成人精品久久一区二区三区| 久久免费精品日本久久中文字幕| 午夜精品一区二区三区视频免费看| 欧美性猛交xxxx黑人猛交| 国产精品视频中文字幕91| 热门国产精品亚洲第一区在线| 日韩一二三在线视频播| 日韩成人激情影院| 一夜七次郎国产精品亚洲| 日韩高清a**址| 日韩视频免费观看| 国产91精品久| 欧美成人剧情片在线观看| 国产精品一区二区av影院萌芽| 欧美中文在线观看| 日韩精品黄色网| 欧美成人第一页| 欧美理论电影网| 中文字幕九色91在线| 欧美乱大交做爰xxxⅹ性3| 亚洲精品91美女久久久久久久| 国产精品99蜜臀久久不卡二区| 久久精品电影一区二区| 亚洲www在线观看| 91精品国产综合久久香蕉的用户体验| 亚洲一区二区三区在线视频| 成人做爰www免费看视频网站| 国产精品国产三级国产aⅴ9色| 国产玖玖精品视频| 国产成人精品视频在线| 国产日韩在线亚洲字幕中文| 欧美高清自拍一区| 国产成人精彩在线视频九色| 久久91亚洲精品中文字幕奶水| 中文字幕一精品亚洲无线一区| 亚洲第一av网| 久久免费观看视频| 亚洲自拍高清视频网站| 久久97久久97精品免视看| 亚洲性夜色噜噜噜7777| 久久精品久久久久电影| 欧美在线观看网站| 久久久久国产一区二区三区| 中文字幕亚洲精品| 日韩欧美国产成人| 黑人极品videos精品欧美裸| 亚洲无线码在线一区观看| 久久综合免费视频| 亚洲国产精品久久91精品| 91久久久国产精品| 亚洲第一视频网站| 成人在线免费观看视视频| 色先锋久久影院av| 日韩av最新在线| 丰满岳妇乱一区二区三区| 国产精品日日做人人爱| 97超级碰碰碰久久久| 日韩国产一区三区| 欧美日韩精品二区| 亚洲国产精品久久久| 97久久精品国产| 国产欧美日韩免费| 中文字幕无线精品亚洲乱码一区| 日韩av影院在线观看| 欧美日韩中文字幕在线视频| 5566成人精品视频免费| 日韩成人激情影院| 欧美激情一区二区三区在线视频观看| 国产成人精品电影久久久| 91精品国产自产在线观看永久| 亚洲欧美中文日韩在线v日本| 亚洲级视频在线观看免费1级| 亚洲欧美在线磁力| 亚洲精品ady| 欧美精品激情在线| 精品中文字幕在线2019| 成人观看高清在线观看免费| 国产精品福利片| 欧美精品一区二区三区国产精品| 精品久久久在线观看| 成人97在线观看视频| 国产精品美女午夜av| 亚洲性生活视频| 成人美女av在线直播| 欧美性在线视频| 97久久精品视频| 日韩av理论片| 日韩一区二区久久久| 欧美二区在线播放| 欧美日韩国产一区在线| 欧美性jizz18性欧美| 亚洲精品久久7777777| xvideos亚洲| 91香蕉嫩草影院入口| 中文.日本.精品| 国产日韩专区在线| 国产精自产拍久久久久久蜜| 51ⅴ精品国产91久久久久久| 精品亚洲一区二区三区在线播放| 欧美自拍视频在线观看| 色婷婷**av毛片一区| 国产成人精品综合久久久| 国产精品精品久久久| 欧美高清第一页| 中文字幕在线视频日韩| wwwwwwww亚洲| 色综合男人天堂| 亚洲美女激情视频| 欧美精品久久一区二区| 国产成人精品综合久久久| 国产成人在线一区| 日韩精品黄色网| 欧美成人免费在线视频| 国产综合在线观看视频| 日韩在线观看免费高清完整版| 国产精品免费看久久久香蕉| 伊人伊成久久人综合网站| 欧美高清电影在线看| 亚洲欧美制服第一页| 国产在线日韩在线| 国产精品流白浆视频| 亚洲精品欧美一区二区三区| 国产一区二区三区在线视频| 久久这里只有精品视频首页| 黑人狂躁日本妞一区二区三区| 91经典在线视频| 国产精品亚洲美女av网站| 日韩小视频网址| 揄拍成人国产精品视频| 91精品免费看| 91高清视频免费| 久久这里只有精品99| 亚洲国产精品va在线看黑人动漫| 国产精品爱久久久久久久| 久久久久久91香蕉国产| 亚洲电影免费观看高清完整版| 国产精品r级在线| 久久九九热免费视频| 1769国内精品视频在线播放| 久久好看免费视频| 中文字幕欧美国内| 欧美黑人xxxx| 欧美性受xxxx白人性爽| 日本人成精品视频在线|