1. 程式人生 > 其它 >dnf(yum)命令參考

dnf(yum)命令參考

dnf(yum)

dnf 用於安裝、解除安裝或者查詢 rpm 包。其基本語法格式如下:

dnf [options] <command> [<args>...]

示例:

#安裝軟體包
dnf install <package>
#解除安裝軟體包
dnf remove <package>
#查詢提供檔案、包名或者能力的軟體包
dnf provides <provides>
#下載原始碼包
dnf download --source <package>

選項

常用的通用選項如下:

選項 說明
--downloadonly 只下載安裝包,不安裝。
-x, --exclude=<package-file-spec> 排除指定包。
--installroot=<path> 指定安裝根路徑。
--noautoremove 禁止刪除不再被使用的依賴包。
--nogpgcheck 不檢查 GPG 簽名(如果 RPM 策略允許)。
-q, --quiet 抑制提示輸出。
--refresh 設定所有元資料已過期。
--releasever=<release> 設定發行版本。
--repofrompath <repo>,<path/url> 為查詢臨時新增一個倉庫。
--repo=<repoid> 僅使能指定倉庫。
--skip-broken 通過移除造成問題的包,來解決依賴問題。
--showduplicates 顯示倉庫中重複的包。
-v, --verbose 顯示除錯資訊。
-y, --assumeyes 對所有問題自動回答 yes

子命令

install

安裝指定的軟體包及其依賴。語法格式如下:

dnf [options] install <spec>...

註解:

  1. <spec>...

    其支援章節 引數 介紹的型別 package 和 provide。比如 yum install vim

    表示提供能力 vim 的軟體包。

download

下載二進位制或原始碼包。命令 yumdownloader 也被重定位到此命令。語法格式如下:

dnf download [<options>] <package-spec>...

註解:

  1. options

    常見選項如下:

    選項 說明
    --source 下載原始碼包,預設為下載二進位制包。
    --debuginfo 下載除錯資訊包。
    --downloaddir 指定下載目錄,預設為當前目錄。
    --url 列印下載地址,而非下載包。
    --resolve 同時下載依賴包。

remove

解除安裝指定軟體包和依賴此包的包。語法格式如下:

dnf [options] remove --duplicates | <package-spec>...

註解:

  1. --duplicates

    刪除所有包名重複的舊版本的包。

autoremove

解除安裝所有"葉子"包,即作為依賴被安裝,但是不再被任何包依賴的包。語法格式如下:

dnf [options] autoremove [<spec>...]

註解:

  1. <spec>...

    當指定此選項,即指定包時,表示解除安裝此包及其依賴的包。

upgrade

更新軟體包。語法格式如下:

dnf [options] upgrade [<package-spec>...]

註解:

  1. <package-spec>...

    如果省略此引數,則預設更新全部軟體包為最新版本。否則更新指定軟體包為最新版本,可以指定版本號。

查詢包資訊(name、summary)匹配關鍵字的包。關鍵字是忽略大小寫的字串,可以使用萬用字元。語法格式如下:

dnf [options] search [--all] <keywords>...

註解:

  1. [--all]

    預設是同時匹配所有關鍵字的包。如果指定 --all 選項,則表示匹配任意關鍵字的包。

check

檢查本地包資料庫的所有問題。語法格式如下:

dnf [options] check [--dependencies] [--duplicates] [--obsoleted] [--provides]

註解:

  1. [--dependencies] [--duplicates] [--obsoleted] [--provides]

    省略以上選項時,預設檢查所有問題。

makecache

下載並快取倉庫的元資料,這些資料用於指示倉庫的包資訊。其語法格式如下:

dnf [options] makecache

clean

清除倉庫臨時檔案。語法格式如下:

dnf clean <type>

註解:

  1. <type>

    清除檔案的型別,有以下幾種型別可選:

    型別 說明
    dbcache 清除所有倉庫元資料產生的快取。
    metadata 清除所有倉庫元資料,這些檔案表明倉庫有哪些包。
    packages 清除系統中所有快取的包。
    all 清除以上所有型別。

repoinfo

顯示倉庫資訊。語法如下:

dnf repoinfo [--enabled|--disabled|--all]

註解:

  1. --enabled|--disabled|--all

    表示顯示指定型別的倉庫,預設為顯示所有使能的倉庫。

provides

顯示提供指定指定能力、檔名、軟體包的軟體包。語法格式如下:

dnf [options] provides <provide-spec>

註解:

  1. <provide-spec>

    此引數可以為軟體包提供的能力、檔案以及軟體包名稱。檔名不包含路徑時,會被預設依次加上 /usr/bin/usr/sbin等字首進行搜尋。詳看章節 引數 介紹。

repoquery

顯示 DNF 倉庫中或者已安裝包的相關資訊。相當於對遠端倉庫的包執行 rpm -q 查詢命令。語法如下:

dnf [options] repoquery [<select-options>] [<query-options>] [<package-file-spec>]

註解:

  1. <package-file-spec>

    指定軟體包名稱。如果省略則表示所有軟體包。

  2. <select-options>

    用於篩選軟體包。需要注意已安裝包不一定在倉庫中都可得,有可能倉庫更換或者手動安裝等。常用選項如下:

    選項 說明
    -a, --all 全部軟體包。
    --duplicates 重複安裝的僅版本號不同的軟體包。
    --unneeded 作為依賴包被安裝的,以後不再需要的包。即會被 dnf autoremove 清除的包。
    --available 倉庫中可得的包(預設)。
    --extras 在任何倉庫都沒有的已安裝的包。
    -f, --file <file> 包含檔案 file 的包。
    --installed 已安裝的包。
    --upgrades 可更新的包。
    --userinstalled 顯示使用者安裝的包(避免顯示作為依賴安裝的包)。
    --whatdepends <capability>... 顯示依賴能力 capability 的包(requires, enhances, recommends, suggests 或 supplements)。
    --whatprovides <capability>... 顯示提供能力 capability 的包。
  3. <query-options>

    用於選擇顯示包的哪些資訊。常用選項如下:

    選項 說明
    -i, --info 顯示包的詳細資訊。
    -l, --list 顯示包的檔案清單。
    --changelogs 顯示包的修改歷史日誌。
    --depends 顯示包依賴的能力(requires, enhances, recommends, suggests 或 supplements)。
    --provides 顯示包提供的能力。
    --requires 顯示包依賴的能力 (requires)。
    --tree 遞迴的查詢,支援選項:--whatrequires--requires--provides
    --deplist 顯示包所有直接依賴的能力和提供此能力的包。

help

顯示所有命令的幫助資訊,語法格式如下:

dnf help [<command>]

註解:

  1. <command>

    如果指定 command,則只顯示指定命令的幫助手冊。

引數

可用於指定以下常用幾種型別:

  1. 指定軟體包(packages)

    用於指定軟體包的名稱、提供的能力或檔案全名(包含路徑),支援 *?[] 等萬用字元。

    • <package-spec> :可以為軟體包名稱、提供的能力或檔案。
    • <package-file-spec> :可以為軟體包名稱、提供的檔案。
    • <package-name-spec> :可以為軟體包名稱。
  2. 指定提供的能力(provides)

    • <provide-spec> :軟體包明確指定的能力,或隱含提供的能力(比如軟體包名),或提供的檔案。