CentOS7主要有rpm和yum這兩種包軟件的管理。兩種包的管理各有用處,其中主要區別是:YUM使用簡單但需要聯網,YUM會去網上的YUM包源去獲取所需要的軟件包。而RPM的需要的操作經度比較細,需要我們做的事情比較多。
軟件包的安裝和卸是很平常的事,但在Linux上面卻不簡單。Linux的其中一個哲學就是一個程序只做一件事,並且做好。組合小程序來完成復雜的任務,這樣做有很多好處,但是各個小程序之間往往會存在着復雜的依賴關系。這時就有了redhat包管理器rpm。英文是redhat package manager ,redhat 軟件包的管理
rpm是以一種數據庫記錄的方式來將所需要的套件安裝在Linux主機的一套管理程序。也就是說Linux系統中存在一個關於rpm的數據庫,它記錄了安裝的包與包之間的依賴相關性。rpm包是預先在Linux主機上編譯好並打包的文件,安裝起來非常快捷。下面就介紹rpm常用的命令
首先是:
rpm –help
可以看到這里有很多的命令,是rpm需要命令,下面列出了常用命令。
RPM常用命令:
rpm 包名字結構:
glibc-2.17-196.el7_4.2.x86_64
glibc -2 .17 -el7 x86 64
軟件名 主版本號 次版本號 修訂號 RHEL7 CPU架構平台 支持系統位數
-el我是哪個平台的,rpm包有個特點,我是centOS7的rpm包一般只能裝到CentOS7的系統里,一般是CentOS6的軟件包只能裝到CentOS6的系統里。
大家可能也看到過后面以i686結尾的rpm包,這類是32位的rpm軟件包。
分清楚之后我們就進行安裝。
-i ,--install 安裝軟件包
--nodeps 不驗證軟件包的依賴,什么叫軟包的依賴,大家都習慣windows的雙擊下一步,下一步,Linux不是這樣子的。
-v, --verbose 提供更多的詳細信息輸出
-h ,--hash 軟件包安裝的時候列出哈希標記
大家就記住ivh這幾個都需要。
比如說我想安裝一個vagrant的安裝包。
rmp –ivh vagrant_1.9.8_x86_64.rpm
加入-h 安裝的進度條就有了。
如果想要升級這個rpm軟件包,輸入:
rpm -Uvh 加這個軟件包的名字-U:即升級的意思,這里就不演示了。,一般升級用的比較少,只用在有漏洞的時候可能會用到,
接着我們剛剛安裝了vagrant,如何能查詢到安裝的信息,輸入:
rpm –qa
其中 –a選項是查詢所有已經安裝的軟件包。
q是查詢一個包是否安裝
從這里可以看大將所有安裝的rpm都列了出來,那么安裝了這么多軟件包。
我僅想搜索剛剛安裝的vagrant,輸入正則搜索是不是可以啊:
rpm -qa |grep vagrant
使用管道和搜索,現在顯示了這個包的信息,rpm還提供了一種簡單的方法:
rpm –q vagrant
這樣就能搜索到我們剛剛安裝的rpm包了,下面在做一個演示。
rpm –q vagrant_1.9.8_x86_64.rpm
如果你這樣搜索,加入了后綴,是搜索不出來的:如果加了平台信息及后綴名,反而不能查出來,這點大家要注意。
rpm 包的卸載,
rpm –e 包的名字 ,e是擦除的意思,卸載的時候,我們要寫查詢出來的這個名字:
rpm –e vagrant-1.9.8-1.x86_64
而不能寫安裝時候的名字,這兩個名字是不一樣的。
在查詢一下,已經沒有了。
下面我再將這個包進行安裝,安裝的命令相信大家都會了,輸入:
rpm –ivh vagrant_1.9.8_x86_64.rpm
安裝好了之后,輸入
rpm –qi vagrant
其中,q 是查詢,i是安裝,一起用就是查詢安裝的軟件包vagrant的信息。
這里同樣不需要輸入后綴,我們可以看到vagrant這個rpm軟件包的詳細信息。有name是..,等等。
輸入:rpm -ql 包名
列出一個rpm包安裝的文件
-l 顯示軟件包的文件列表
列出某一個文件屬於哪個rpm包
rpm -qf 文件的絕對路徑
文件的絕對路徑如何查找:whichvim
rpm -qf`which vim`
-f 查詢文件所屬於的軟件包。
RPM下載網址: