RPM與YUM命令異同詳解

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 包名 : 查詢所有已安裝包
    RPM與YUM命令異同詳解
  • 可以配合 grep 使用 :rpm -qa | grep “vsftp”
    RPM與YUM命令異同詳解
  • rpm -qi 包名 : 查詢包的摘要信息
    RPM與YUM命令異同詳解
  • rpm -ql 包名 : 查詢包安裝生成的文件
    RPM與YUM命令異同詳解
  • rpm -qs 包名 : 查詢已安裝包文件生成的狀態信息
    RPM與YUM命令異同詳解
  • rpm -qf 文件完整路徑 : 查詢文件由哪個包安裝生成
    RPM與YUM命令異同詳解
  • rpm -qc 包名 : 查詢包安裝生成的配置文件
    RPM與YUM命令異同詳解
  • rpm -qd 包名 : 查看安裝包生成的幫助文檔
  • rpm -q –scripts 包名 : 查看包相關腳本

    • rpm包的腳本有4種:
      preinstall:安裝前腳本
      postinstall:安裝后腳本
      preuninstall:卸載前腳本
      postuninstall:卸載后腳本

    RPM與YUM命令異同詳解

  • rpm -qp 包完整路徑 : 查詢未安裝包相關信息(多用 -qpi -qpc -qpl搭配)
    RPM與YUM命令異同詳解

  • RPM與YUM命令異同詳解

RPM數據庫
數據庫文件位置 : /var/lib/rpm/
RPM與YUM命令異同詳解
這里存放了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倉庫中所有的包信息(可以配合通配符)
RPM與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與YUM命令異同詳解
    RPM與YUM命令異同詳解
  • 卸載
    rpm -e vsftpd與yum remove vsftpd.x86:rpm -e在卸載時不會提醒,但是在且在被依賴的軟件包是會報錯。需要配合選項–nodeps來強制卸載,卸載后被依賴的軟件包依然存在。yum remove在卸載時會提示確認,且在卸載被依賴的軟件包時會將依賴此包的軟件包一并卸載。
    卸載時都不需要路徑,只需要包名。
    RPM與YUM命令異同詳解 RPM與YUM命令異同詳解

    RPM與YUM命令異同詳解

  • 查詢
    yum search vsftp與yum list all vsftp*與rpm -qa vsftp*:查詢軟件包。yum search能顯示出包的摘要,但是不顯示包是否已安裝。yum list all能顯示出是否已安裝,但是沒有軟件包包內容的相關信息。rpm -qa只能顯示已安裝的軟件包,沒有其他信息。
    RPM與YUM命令異同詳解
    RPM與YUM命令異同詳解
    RPM與YUM命令異同詳解
    yum info與rpm -qi:查看包說明。yum info的內容相對精簡,rpm -qi顯示內容更詳細,但是不顯示包是否安裝。
    RPM與YUM命令異同詳解RPM與YUM命令異同詳解
    yum provides與rpm -qf: 查詢文件由哪個包生成。兩者都需要寫出路徑,yum provides甚至可以查詢出未來將會存在的文件所屬于的軟件包
    RPM與YUM命令異同詳解RPM與YUM命令異同詳解

總結

   yum是在rpm的基礎上建立的一個工具,在配置好yum源之后很多功能比rpm命令更強大,更方便。rpm可以查詢包安裝后生成的配置文件等,查詢未安裝軟件包中的內容,查詢軟件包相關的腳本。一般情況下軟件包的查詢,安裝,卸載,和軟件屬于的軟件包等命令用yum的相關命令來完成更好。

原創文章,作者:kstg5663294,如若轉載,請注明出處:http://www.www58058.com/78179

(6)
kstg5663294kstg5663294
上一篇 2017-06-18 17:02
下一篇 2017-06-18

相關推薦

  • 計劃任務管理

        Linux系統計劃任務有兩種:A、一次性任務;B、定時循環任務。     一次性任務:at命令。at的安裝包名字就是at,可以使用命令"yum install at"進行安裝.安裝完成后,啟用atd服務就可以運行at命令了.運行格式為:at [opti…

    Linux干貨 2016-11-27
  • M20-1權限作業

    1、當用戶xiaoming對/testdir 目錄無執行權限時,意味著無法做哪些操作? [root@centos7 testdir]# ls -ld /testdir/ drwxr-xrw-. 3 root root 27 Aug  5 0…

    Linux干貨 2016-08-05
  • N22-第六周作業

    1、復制/etc/rc.d/rc.sysinit文件至/tmp目錄,將/tmp/rc.sysinit文件中的以至少一個空白字符開頭的行的行首加#; :%s@[[:space:]]\+@#&@g    2、復制/boot/grub/grub.conf至/tmp目錄中,刪除/tmp/grub.conf文件中的行首的空白字符; :%s#…

    Linux干貨 2016-09-26
  • 第五周練習

    1、顯示當前系統上root、fedora或user1用戶的默認shell 2、找出/etc/rc.d/init.d/functions文件中某單詞后面跟一小組括號的行,刑如:hello() 3、使用echo命令輸出一個絕對路徑,使用grep取出基名 4、找出ifconfig命令結果中的1-255之間的數字 5、查找/var目錄下屬主為root,且屬組為mai…

    2017-10-29
  • 網絡N22期-第五周作業

    1、顯示當前系統上root、fedora或user1用戶的默認shell; [root@localhost ~]#egrep '^(root|fedora|user1)\>' /etc/passwd | cut -d: -f7 /bin/bash 2、找出/etc…

    Linux干貨 2016-09-15
  • ?RAID使用手冊

    RAID使用手冊 RAID演示

    Linux干貨 2016-09-02
欧美性久久久久