RPM和YUM都是用來安裝程序的工具,但是它們有太多相似的用法以至于有事很難分清應該哪個
那就來一起詳細的了解一下他們的功能及用法,以及他們的相同以及不同之處。
RPM
軟件包管理器
功能:安裝,卸載,升級,查詢,校驗,打包,數據庫管理
RPM在安裝時不能處理程序之間復雜的依賴關系
RPM可以驗證軟件包來源的合法性、完整性。
常用選項:
-i:表示安裝。(常用:-ivh) -v, -vv, -vvv:表示詳細信息。(v越多越詳細) -h:以"#"號顯示安裝進度。(配合 -i 使用) -q:查詢指定包名。 -e:卸載指定包名。 -U:升級軟件,若未軟件尚未安裝,則安裝軟件。 -F:升級軟件。 -V:對RPM包進行驗證。 -R:查看包的依賴關系 --nodeps:忽略依賴關系。 --force:忽略軟件包及文件的沖突。 --test:僅作測試,不真正執行,可用于測試安裝,測試卸載。 --replacepkgs:重新安裝。替換原有的安裝。 --initdb:新建RPM的數據庫。 --rebuilddb:重建RPM的數據庫。
RPM查詢包相關信息
結合-q選項,可以查詢rpm包相關信息。它提供了許多查詢信息的方式。
-
rpm -qa 包名 : 查詢所有已安裝包
-
可以配合 grep 使用 :rpm -qa | grep “vsftp”
-
rpm -qi 包名 : 查詢包的摘要信息
-
rpm -ql 包名 : 查詢包安裝生成的文件
-
rpm -qs 包名 : 查詢已安裝包文件生成的狀態信息
-
rpm -qf 文件完整路徑 : 查詢文件由哪個包安裝生成
-
rpm -qc 包名 : 查詢包安裝生成的配置文件
- rpm -qd 包名 : 查看安裝包生成的幫助文檔
-
rpm -q –scripts 包名 : 查看包相關腳本
-
rpm包的腳本有4種:
preinstall:安裝前腳本
postinstall:安裝后腳本
preuninstall:卸載前腳本
postuninstall:卸載后腳本
-
rpm包的腳本有4種:
-
rpm -qp 包完整路徑 : 查詢未安裝包相關信息(多用 -qpi -qpc -qpl搭配)
-
RPM數據庫
數據庫文件位置 : /var/lib/rpm/
這里存放了rpm查詢所需的信息,若庫損壞,很多rpm查詢功能將失效。
如果數據庫循壞,可以使用兩個命令重建
rpm --initdb 新建數據庫 rpm --rebuilddb 重建數據庫(時間比較長)
YUM
軟件包管理器前端工具
功能:安裝,卸載,升級,查詢,校驗
yum安裝程序最大的優點是解決了rpm包安裝時經常遇到的繁雜的包依賴問題
使用yum安裝程序時必須先搭建好yum源,配置好yum配置文件(/etc/yum.repos.d/*.repo)
yum常用命令:
yum install :安裝 yum reinstall : 重裝 yum remove : 卸載 (被依賴的包也會被卸載) yum check-update :檢查可升級的包 yum list : 查看倉庫中包信息 yum search : 根據包名在倉庫中查詢包 yum repolist : 查看當前的yum倉庫 yum info : 查看包的信息 yum provides : 查詢某文件屬于哪個包 yum clean : 清除本地yum緩存 yum makecache : 手動生成緩存 yum history : 查看歷史 yum grouplist : 查看yum倉庫包組 yum groupinfo : 查看指定包組信息 yum groupinstall : 安裝包組("yum install @包組名" 也可以安裝包組) yum groupremove : 卸載包組
YUM LIST的相關命令(可用來查詢包)
yum list相關命令,查詢yum倉庫中包的信息。包括所有已安裝和未安裝的。
yum list all (vsftp*) : 獲取yum倉庫中所有的包信息(可以配合通配符)
圖中第一列:包名,第二列:版本號-release號
第三列表示安裝情況:” @ “表示是已安裝,后面的” base “” updates “等表示來源于哪個倉庫的yum源
yum list installed : 只顯示已安裝的包
yum list available : 只顯示未安裝的包
yum list updatees : 查看可更新的包
yum list extras : 顯示不屬于任何倉庫的,額外的包
yum list obsoletes : 顯示被廢棄的包
yum list recent : 新添加進yum倉庫的包
注 : yum list相關的命令全都可以配合 “grep” 使用,用來查詢符合條件的包。
yum模糊匹配搜索
yum search (all) 字符串 : 根據字符串查詢帶有相關字符的包(不帶all只檢索包名和摘要)
注 : yum search命令沒有包是否已安裝的信息,用yum list all查看可以看到查詢的包是否已安裝
-
YUM REPOLIST
yum repolist : 查看當前能夠使用的yum倉庫
yum repolist all : 查看所有倉庫
yum repolist enabled : 查看當前啟用的倉庫
yum repolist disabled : 查看當前禁用的倉庫
rpm與yum比較
-
安裝
rpm -ivh /misc/cd/Packages/vsftpd-3.0.2-21.el7.x86_64.rpm與yum install vsftpd.x86_64
rpm安裝時需要指定路徑,且受限于軟件的依賴問題。yum安裝時不需要路徑,且安裝時會自動安裝依賴的軟件包。但是yum安裝需要提前配置好yum源。
-
卸載
rpm -e vsftpd與yum remove vsftpd.x86:rpm -e在卸載時不會提醒,但是在且在被依賴的軟件包是會報錯。需要配合選項–nodeps來強制卸載,卸載后被依賴的軟件包依然存在。yum remove在卸載時會提示確認,且在卸載被依賴的軟件包時會將依賴此包的軟件包一并卸載。
卸載時都不需要路徑,只需要包名。
- 查詢
yum search vsftp與yum list all vsftp*與rpm -qa vsftp*:查詢軟件包。yum search能顯示出包的摘要,但是不顯示包是否已安裝。yum list all能顯示出是否已安裝,但是沒有軟件包包內容的相關信息。rpm -qa只能顯示已安裝的軟件包,沒有其他信息。
yum info與rpm -qi:查看包說明。yum info的內容相對精簡,rpm -qi顯示內容更詳細,但是不顯示包是否安裝。
yum provides與rpm -qf: 查詢文件由哪個包生成。兩者都需要寫出路徑,yum provides甚至可以查詢出未來將會存在的文件所屬于的軟件包
總結
yum是在rpm的基礎上建立的一個工具,在配置好yum源之后很多功能比rpm命令更強大,更方便。rpm可以查詢包安裝后生成的配置文件等,查詢未安裝軟件包中的內容,查詢軟件包相關的腳本。一般情況下軟件包的查詢,安裝,卸載,和軟件屬于的軟件包等命令用yum的相關命令來完成更好。
原創文章,作者:kstg5663294,如若轉載,請注明出處:http://www.www58058.com/78179