來源:編程三分鐘
ID:coding3min
作者:小熊愛編程
yum 命令的使用
yum命令天天都在用,都快用爛了,但是很多人不知道為什么只要聯網,yum命令就能像老奶奶手中的魔法棒一樣,隨心所欲的下載到想到的包。
比如你想裝個c++環境,直接 yum install gcc-c++。
強迫癥都喜歡做完一件事以后再確認一下,可以用rpm -qa | grep 包名的方式來查看。
如果裝的不是想要的版本,yum list *gcc-c++*搜一下,一堆可安裝的包名就列出來,想裝哪個版本裝哪個版本。
當然了,能裝就能卸,一個yum remove gcc-c++搞定
啥?你還想裝個Docker,想裝個go,想裝不同版本的Python,咋就想的那么美呢?
沒問題!即使你想裝那么些個東西,yum都能辦到,她就像一個包容的老母親時時寵愛著調皮搗蛋的傻兒子,ok,只要媽有,媽沒有的也想辦法從別的地方找來。也就是只要源里有,源里沒有的再多配一個源就可以了。
yum 源
哎?這里說到一個源的概念,源簡單來說就是一個專門儲存包的倉庫,分門別類的放好,yum命令就是倉庫管家,根據配置好的規則,去源堆里找到想要的包順便找到此包對其他包的依賴關系,根據依賴關系自動安裝所有的包。
包的依賴關系和下圖一樣。
/etc/yum.repos.d/目錄就是專門存儲各種源的目錄,源文件以.repo后綴結尾,習慣性的把同一個業務的源放到一個文件里,比如平臺A、平臺B可以分為兩個文件,當然了你的地盤你做主,想怎么分都可以。
下面這張圖就是我服務器上配置的源。
每個repo文件中,可以配置多個倉庫(源),每個倉庫存了不同的包,像我們剛剛安裝的gcc-c++在os倉庫里,倉庫名是唯一的。
上圖節選自騰訊云服務器centos-Base.repo,上圖中的中括號是源的名字,便于yum取得并識別,下面是配置項,來簡單下解釋各個配置項的含義。
enabled=1 表示啟用了這個源,0是未啟用。
gpg(GNU Private Guard)是一種校驗算法,用來確定rpm包的來源是有效和安全的,gpgkey就是gpg密鑰所在位置。
baseurl就是源路徑。
name倉庫的名稱,只是為了方便閱讀,一般沒什么用。
通過剛剛的安裝和卸載,我們明顯看到gcc-c++是在os庫里,又因為庫名是唯一的,所以肯定就是CentOS-Base.repo里的os庫,我們現在把他設置為禁用看看還能不能裝。
有的人說了“我有臺Centos的機器根本就不能聯網,有yum命令有啥用,還不是要一個一個去網上下?完全是要人工解決依賴問題啊。”
我只能說這位同學,你坐下!小熊曾經說過,只要思想不滑坡,方法總比困難多。只要找一臺能相同os的服務器用下面的命令,就能把rpm包和他的依賴來全部下載到本地,再拷貝過去安裝好了。
yum install --downloadonly --downloaddir=/tmp/pzqu gcc-c++
--downloaddir指定下載目錄
如果--downloadonly用不了,可能是漏了插件yum install yum-plugin-downloadonly安裝上就好了。
后記
如果你想緩存下來全部的倉庫,我只能說別開玩笑了,我們哪有那么大的硬盤,個人也沒必要這么做。
但要完全是自己項目的包,可以自建一套源,開發測試部署的時候都自動打包到源里,隨便到哪個離線環境把源帶走,想在哪部署就能在哪部署,從這里我仿佛看到了持續集成的影子。
預知后事如何,且聽下回分解。