溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

CentOS7中軟件安裝方法及策略的示例分析

發(fā)布時(shí)間:2021-07-19 12:57:36 來(lái)源:億速云 閱讀:161 作者:小新 欄目:系統(tǒng)運(yùn)維

這篇文章主要為大家展示了“CentOS7中軟件安裝方法及策略的示例分析”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“CentOS7中軟件安裝方法及策略的示例分析”這篇文章吧。

2010 年開(kāi)始正式接觸 Linux,入門(mén)發(fā)行版是 Ubuntu 10.10,后來(lái)過(guò)渡到 Ubunu 11.04, 這其中也嘗試了很多其他主流的發(fā)行版。進(jìn)入實(shí)驗(yàn)室之后,開(kāi)始用 CentOS 5,然后是 CentOS 6,現(xiàn)在進(jìn)化到 CentOS 7。

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

為什么要寫(xiě)/讀這一篇

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

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

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

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

官方源

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

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

sudo yum install PackageName

第三方源

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

在使用第三方源的過(guò)程中,最怕遇到這兩個(gè)問(wèn)題:

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

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

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

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

大型第三方源,已確認(rèn)不會(huì)替換官方源的包,且相互之間無(wú)沖突 EPEL:包含 6500 多個(gè)軟件,科研必備 ELRepo:包含幾十個(gè)各種硬件的驅(qū)動(dòng)程序 Nux Dextop:多媒體相關(guān)的軟件包(與 EPEL 的個(gè)別軟件相沖突,可忽略)

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

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

sudo yum install PackageName

官方 rpm 包

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

sudo rpm -i PackageName.rpm

比如,WPS for Linux 就是其中一個(gè)。在安裝的過(guò)程中 rpm 命令會(huì)自動(dòng)檢查依賴關(guān)系,若該軟件所依賴的包在官方源和 EPEL 源中可以找到,則自動(dòng)安裝。

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

解壓即用

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

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

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

第三方 rpm 包

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

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

第三方包管理器

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

Linuxbrew

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

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

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

編譯源碼

大部分軟件用前面的幾種方法應(yīng)該都能安裝上了。如果沒(méi)安裝上,那就得問(wèn)問(wèn)自己,真的需要安裝這個(gè)軟件么。如果不是非常必要的話就不要安裝啦。如果是必須的軟件,那就必須要手動(dòng)編譯了。

常見(jiàn)的源碼編譯,一般也就是如下幾步。當(dāng)然,具體情況具體對(duì)待:

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

一般來(lái)說(shuō),這類軟件的默認(rèn)安裝目錄都是 /usr/local ,最終文件會(huì)被分別放在 /usr/local 的 bin、lib、share、man 目錄下。

我個(gè)人非常不喜歡這種方式,因?yàn)樽鳛橐粋€(gè)通過(guò)源碼編譯的軟件來(lái)說(shuō),意味著編譯者 要完全負(fù)起管理該軟件的義務(wù),這樣的放置方式會(huì)來(lái)更新或卸載軟件帶來(lái)很多麻煩。 所以我總是會(huì)在 configure 的時(shí)候加上 prefix 手動(dòng)指定安裝路徑。要卸載該軟件就直接刪除 /opt 下對(duì)應(yīng)的目錄,要更新的話,也可以先刪除,再重新編譯一遍。這樣做稍微麻煩的一點(diǎn)是, 需要手動(dòng)將該軟件的 bin 目錄加入到 PATH 中,還有可能需要修改 LD_LIBRARY_PATH。 但是一般來(lái)說(shuō),需要編譯源碼的軟件很少,所以不會(huì)造成太大的麻煩。

編譯代碼

好吧,其實(shí)我不知道該怎么起標(biāo)題了。。

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

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

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

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

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

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

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

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

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

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

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

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

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

例外

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

第三方源

mosquito-myrepo 是一個(gè)私人維護(hù)的源,其中包含了中文輸入法、QQ、飛信、為知筆記、有道詞典、百度云以及若干音頻、視頻播放器。我對(duì)這個(gè)源的態(tài)度是又愛(ài)又恨,其提供了很多中國(guó)人需要的軟件,但因?yàn)槠湟蕾囉诔?EPEL 外的其他第三方軟件源,進(jìn)而可能導(dǎo)致包沖突。所以對(duì)該源的使用,要保持謹(jǐn)慎。

以上是“CentOS7中軟件安裝方法及策略的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI