yum 用法整理

基本指令

  1. 安裝套件:
    yum install 套件名稱
  2. 昇級套件:
    yum update 套件名稱
  3. 昇級全部套件:
    yum update
  4. 昇級全部套件及發行版本 (請小心使用):
    yum upgrade
  5. 移除套件:
    yum remove 套件名稱
    
  6. 清除暫存檔 (/var/cache/yum):
    yum clean all

查詢功能

  1. 列出所有的套件,包含已安裝、可安裝:
    yum list

    或列出特定套件:

    yum list 套件名稱

    或加上萬用字元:

    yum list 套件名稱*
  2. 列出所有已安裝的套件:
    yum list installed

    相當於:

    rpm -qa

    或列出特定套件:

    yum list installed 套件名稱

    或加上萬用字元:

    yum list installed 套件名稱*

    相當於:

    rpm -q 套件名稱

    不過更建議用 yum info 指令:

    yum info 套件名稱

    也可以知道套件是否已安裝,並且顯示更多的套件資訊。

  3. 查詢可更新的套件:
    yum list updates

    或:

    yum check-update
  4. 查詢套件資訊:
    yum info 套件名稱

    或加上萬用字元:

    yum info 套件名稱*
  5. 搜尋套件:
    yum search 關鍵字

    ex:

    yum search zlib
  6. 查詢特定檔案存在於什麼套件之中:
    yum provides 檔案名稱
    或:
    yum provides */檔案名稱
    或:
    yum resolvedep 檔案名稱

    ex:

    yum provides libz.*
    或:
    yum provides */nslookup
    或:
    yum resolvedep libz.so.1

套件組

  1. 查看已安裝與可安裝的套件組:
    yum grouplist
  2. 安裝套件組:
    yum groupinstall "套件組名稱"

    ex:

    yum groupinstall "KDE Desktop"
  3. 昇級套件組:
    yum groupupdate "套件組名稱"
  4. 移除套件組:
    yum groupremove "套件組名稱"
  5. 查看套件組資訊:
    yum groupinfo "套件組名稱"

下載 RPM 檔

下載 RPM 檔至指定目錄:

yum install --downloadonly --downloaddir=儲存路徑 套件名稱

ex:

yum install --downloadonly --downloaddir=/tmp/nginx nginx

注意事項:

  1. yum 所下載的 RPM 檔是基於目前的系統環境,會下載系統所缺少的套件,以及相依的套件。換言之,如果你要下載的套件在目前的系統已經安裝過了,yum 便不會再單獨下載了。
  2. 建議一定要加 --downloaddir 參數來指定檔案的儲存路徑! 如果沒有加此參數,那麼預設會下載到:
    /var/cache/yum/x86_64/版本/套件庫/packages/

安裝 RPM 檔

本地安裝 RPM 檔:

yum localinstall 檔案名稱

另外要說明的是,如果你要在本地安裝的 RPM 檔有「相依套件」需要一併安裝,則其相依套件仍會經由 yum 去下載回來,ex:

$ yum localinstall nginx-1.10.3-1.el6.x86_64.rpm
...
======================================================================================
Package                      Arch    Version       Repository                 Size
======================================================================================
Installing:
nginx                        x86_64  1.10.3-1.el6  /nginx-1.10.3-1.el6.x86_64  1.3 M
Installing for dependencies:
nginx-all-modules            noarch  1.10.3-1.el6  epel                        7.9 k
nginx-filesystem             noarch  1.10.3-1.el6  epel                        8.7 k
nginx-mod-http-geoip         x86_64  1.10.3-1.el6  epel                         14 k
nginx-mod-http-image-filter  x86_64  1.10.3-1.el6  epel                         16 k
nginx-mod-http-perl          x86_64  1.10.3-1.el6  epel                         26 k
nginx-mod-http-xslt-filter   x86_64  1.10.3-1.el6  epel                         16 k
nginx-mod-mail               x86_64  1.10.3-1.el6  epel                         43 k
nginx-mod-stream             x86_64  1.10.3-1.el6  epel                         36 k

Transaction Summary
======================================================================================
Install 9 Package(s)

Total size: 1.5 M
Total download size: 168 k
Installed size: 1.6 M

如果你本來就已經經由 --downloadonly 參數將全部的相依套件都下載回來了,你不希望 yum 再下載一次,那麼你可以將所有的套件檔案放在同一個目錄,安裝時的檔案名稱改用 *.rpm 來安裝:

$ yum localinstall *.rpm
...
============================================================================================================
 Package                      Arch    Version       Repository                                         Size
============================================================================================================
Installing:
 nginx                        x86_64  1.10.3-1.el6  /nginx-1.10.3-1.el6.x86_64                        1.3 M
 nginx-all-modules            noarch  1.10.3-1.el6  /nginx-all-modules-1.10.3-1.el6.noarch            0.0
 nginx-filesystem             noarch  1.10.3-1.el6  /nginx-filesystem-1.10.3-1.el6.noarch             0.0
 nginx-mod-http-geoip         x86_64  1.10.3-1.el6  /nginx-mod-http-geoip-1.10.3-1.el6.x86_64          17 k
 nginx-mod-http-image-filter  x86_64  1.10.3-1.el6  /nginx-mod-http-image-filter-1.10.3-1.el6.x86_64   21 k
 nginx-mod-http-perl          x86_64  1.10.3-1.el6  /nginx-mod-http-perl-1.10.3-1.el6.x86_64           53 k
 nginx-mod-http-xslt-filter   x86_64  1.10.3-1.el6  /nginx-mod-http-xslt-filter-1.10.3-1.el6.x86_64    20 k
 nginx-mod-mail               x86_64  1.10.3-1.el6  /nginx-mod-mail-1.10.3-1.el6.x86_64                96 k
 nginx-mod-stream             x86_64  1.10.3-1.el6  /nginx-mod-stream-1.10.3-1.el6.x86_64              73 k

Transaction Summary
============================================================================================================
Install       9 Package(s)

Total size: 1.6 M
Installed size: 1.6 M

其它說明

當你用 yum 自動更新所有的套件時,如果不想更新 Kernel 的話,請編輯 /etc/yum.conf,在 [main] 區段加入一行:

exclude=kernel*

錯誤處理

  1. 當安裝套件時出現錯誤訊息:
    pkgKey xxx doesn't exist in repo base

    你可以執行:

    yum clean metadata

    解決這個問題。

  2. 當下載 RPM 檔時出現錯誤訊息:
    Command line error: no such option: --downloadonly

    表示你的 yum 版本較舊,需要再安裝一個 yum-plugin-downloadonly 套件:

    yum install yum-plugin-downloadonly

參考網頁

  1. CentOS 如何加入第三方 Yum 套件庫: EPEL
  2. CentOS 5/6 改為可用的 yum 套件庫來源 (2022)
  3. CentOS 6.x 安裝 nslookup 的步驟 (與 yum 如何查詢套件)
  4. 可供 CentOS 使用的軟體庫
  1. No comments yet.

  1. No trackbacks yet.

return top

%d 位部落客按了讚: