阿里P8大神都在用的yum源,原來是這個東西

ID:coding3min

yum 命令的使用

yum命令天天都在用,都快用爛了,但是很多人不知道為什麼只要聯網,yum命令就能像老奶奶手中的魔法棒一樣,隨心所欲的下載到想到的包。

比如你想裝個c++環境,直接 yum install gcc-c++。

阿里P8大神都在用的yum源,原來是這個東西

強迫症都喜歡做完一件事以後再確認一下,可以用rpm -qa | grep 包名的方式來查看。

阿里P8大神都在用的yum源,原來是這個東西

如果裝的不是想要的版本,yum list *gcc-c++*搜一下,一堆可安裝的包名就列出來,想裝哪個版本裝哪個版本。

阿里P8大神都在用的yum源,原來是這個東西

當然了,能裝就能卸,一個yum remove gcc-c++搞定

阿里P8大神都在用的yum源,原來是這個東西

啥?你還想裝個docker,想裝個go,想裝不同版本的python,咋就想的那麼美呢?

沒問題!即使你想裝那麼些個東西,yum都能辦到,她就像一個包容的老母親時時寵愛著調皮搗蛋的傻兒子,ok,只要媽有,媽沒有的也想辦法從別的地方找來。也就是隻要源裡有,源裡沒有的再多配一個源就可以了。

yum 源

哎?這裡說到一個源的概念,源簡單來說就是一個專門儲存包的倉庫,分門別類的放好,yum命令就是倉庫管家,根據配置好的規則,去源堆裡找到想要的包順便找到此包對其他包的依賴關係,根據依賴關係自動安裝所有的包。

包的依賴關係和下圖一樣。

阿里P8大神都在用的yum源,原來是這個東西

/etc/yum.repos.d/目錄就是專門存儲各種源的目錄,源文件以.repo後綴結尾,習慣性的把同一個業務的源放到一個文件裡,比如平臺A、平臺B可以分為兩個文件,當然了你的地盤你做主,想怎麼分都可以。

下面這張圖就是我服務器上配置的源。

阿里P8大神都在用的yum源,原來是這個東西

每個repo文件中,可以配置多個倉庫(源),每個倉庫存了不同的包,像我們剛剛安裝的gcc-c++在os倉庫裡,倉庫名是唯一的。

阿里P8大神都在用的yum源,原來是這個東西

上圖節選自騰訊雲服務器CentOS-Base.repo,上圖中的中括號是源的名字,便於yum取得並識別,下面是配置項,來簡單下解釋各個配置項的含義。

enabled=1 表示啟用了這個源,0是未啟用。

gpg(GNU Private Guard)是一種校驗算法,用來確定rpm包的來源是有效和安全的,gpgkey就是gpg密鑰所在位置。

baseurl就是源路徑。

name倉庫的名稱,只是為了方便閱讀,一般沒什麼用。

阿里P8大神都在用的yum源,原來是這個東西

通過剛剛的安裝和卸載,我們明顯看到gcc-c++是在os庫裡,又因為庫名是唯一的,所以肯定就是CentOS-Base.repo裡的os庫,我們現在把他設置為禁用看看還能不能裝。

阿里P8大神都在用的yum源,原來是這個東西

阿里P8大神都在用的yum源,原來是這個東西

有的人說了“我有臺Centos的機器根本就不能聯網,有yum命令有啥用,還不是要一個一個去網上下?完全是要人工解決依賴問題啊。”

我只能說這位同學,你坐下!小熊曾經說過,只要思想不滑坡,方法總比困難多。只要找一臺能相同os的服務器用下面的命令,就能把rpm包和他的依賴來全部下載到本地,再拷貝過去安裝好了。

yum install --downloadonly --downloaddir=/tmp/pzqu gcc-c++

--downloaddir指定下載目錄

阿里P8大神都在用的yum源,原來是這個東西

如果--downloadonly用不了,可能是漏了插件yum install yum-plugin-downloadonly安裝上就好了。

後記

如果你想緩存下來全部的倉庫,我只能說別開玩笑了,我們哪有那麼大的硬盤,個人也沒必要這麼做。

但要完全是自己項目的包,可以自建一套源,開發測試部署的時候都自動打包到源裡,隨便到哪個離線環境把源帶走,想在哪部署就能在哪部署,從這裡我彷彿看到了持續集成的影子。

預知後事如何,且聽下回分解。


分享到:


相關文章: