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>...
注解:
<spec>...
其支持章節 參數 介紹的類型 package 和 provide。比如
yum install vim表示提供能力vim的軟件包。
download
下載二進制或源碼包。命令 yumdownloader 也被重定位到此命令。語法格式如下:
dnf download [<options>] <package-spec>...
注解:
options
常見選項如下:
選項 說明 --source 下載源碼包,默認為下載二進制包。 --debuginfo 下載調試信息包。 --downloaddir 指定下載目錄,默認為當前目錄。 --url 打印下載地址,而非下載包。 --resolve 同時下載依賴包。
remove
卸載指定軟件包和依賴此包的包。語法格式如下:
dnf [options] remove --duplicates | <package-spec>...
注解:
--duplicates
刪除所有包名重復的舊版本的包。
autoremove
卸載所有"葉子"包,即作為依賴被安裝,但是不再被任何包依賴的包。語法格式如下:
dnf [options] autoremove [<spec>...]
注解:
<spec>...
當指定此選項,即指定包時,表示卸載此包及其依賴的包。
upgrade
更新軟件包。語法格式如下:
dnf [options] upgrade [<package-spec>...]
注解:
<package-spec>...
如果省略此參數,則默認更新全部軟件包為最新版本。否則更新指定軟件包為最新版本,可以指定版本號。
search
查找包信息(name、summary)匹配關鍵字的包。關鍵字是忽略大小寫的字符串,可以使用通配符。語法格式如下:
dnf [options] search [--all] <keywords>...
注解:
[--all]
默認是同時匹配所有關鍵字的包。如果指定
--all選項,則表示匹配任意關鍵字的包。
check
檢查本地包數據庫的所有問題。語法格式如下:
dnf [options] check [--dependencies] [--duplicates] [--obsoleted] [--provides]
注解:
[--dependencies] [--duplicates] [--obsoleted] [--provides]
省略以上選項時,默認檢查所有問題。
makecache
下載並緩存倉庫的元數據,這些數據用於指示倉庫的包信息。其語法格式如下:
dnf [options] makecache
clean
清除倉庫臨時文件。語法格式如下:
dnf clean <type>
注解:
<type>
清除文件的類型,有以下幾種類型可選:
類型 說明 dbcache 清除所有倉庫元數據產生的緩存。 metadata 清除所有倉庫元數據,這些文件表明倉庫有哪些包。 packages 清除系統中所有緩存的包。 all 清除以上所有類型。
repoinfo
顯示倉庫信息。語法如下:
dnf repoinfo [--enabled|--disabled|--all]
注解:
--enabled|--disabled|--all
表示顯示指定類型的倉庫,默認為顯示所有使能的倉庫。
provides
顯示提供指定指定能力、文件名、軟件包的軟件包。語法格式如下:
dnf [options] provides <provide-spec>
注解:
<provide-spec>
此參數可以為軟件包提供的能力、文件以及軟件包名稱。文件名不包含路徑時,會被默認依次加上
/usr/bin、/usr/sbin等前綴進行搜索。詳看章節 參數 介紹。
repoquery
顯示 DNF 倉庫中或者已安裝包的相關信息。相當於對遠程倉庫的包執行 rpm -q 查詢命令。語法如下:
dnf [options] repoquery [<select-options>] [<query-options>] [<package-file-spec>]
注解:
<package-file-spec>
指定軟件包名稱。如果省略則表示所有軟件包。
<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的包。<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>]
注解:
<command>
如果指定
command,則只顯示指定命令的幫助手冊。
參數
可用於指定以下常用幾種類型:
-
指定軟件包(packages)
用於指定軟件包的名稱、提供的能力或文件全名(包含路徑),支持
*、?、[]等通配符。- <package-spec> :可以為軟件包名稱、提供的能力或文件。
- <package-file-spec> :可以為軟件包名稱、提供的文件。
- <package-name-spec> :可以為軟件包名稱。
-
指定提供的能力(provides)
- <provide-spec> :軟件包明確指定的能力,或隱含提供的能力(比如軟件包名),或提供的文件。
