Dnf

  必备且常用的 Dnf 用法。

安装

  命令:install

  别名:in

sudo dnf [options] install <spec>...

  例子:

sudo dnf install tito

# install from local file
# also support network URL
sudo dnf install ~/Downloads/tito.rpm

# install specify version
sudo dnf install tito-0.5.6-1.fc22

# install Group or Module
sudo dnf install '@docker'

  命令:reinstall

  别名:rei

sudo dnf [options] reinstall <package-spec>...

卸载

  命令:remove

  别名:rm

sudo dnf [options] remove <package-spec>...

  remove 默认启用 clean_requirements_on_remove 选项。启用这个选项时,remove 将会自动卸载与该软件包相关的但是不被使用的其他软件包。

  命令:autoremove

# remove all unused packages
sudo dnf [options] autoremove

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

  如上所言,默认的 remove 就是 autoremove 的别名。

更新

  命令:upgrade

  别名:up

# upgrade all upgradeable packages
sudo dnf [options] upgrade

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

# upgrade module
sudo dnf [options] upgrade @<spec>...

  其实update是一个已经废弃的别名。

搜索

  命令:search

  别名:se

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

  搜索结果以列表形式展示,要查看包的详细信息使用下面的命令。

  命令:info

  别名:if

dnf [options] info [<package-file-spec>...]

历史

  命令:history

  别名:hist

dnf history [list] [--reverse] [<spec>...]

清理

  命令:remove

  别名:rm

# will take a long time
sudo dnf rm --duplicates

# can clean old kernels
sudo dnf rm --oldinstallonly

  一般情况下,remove 一个特定软件包时会自动删除相关无用依赖。oldinstallonly 选项可以用来删除旧内核镜像。

更新系统

  1. 更新发行版

  命令:upgrade --refresh

sudo dnf upgrade --refresh

  Docs 说运行后要 reboot,不确定是否需要。

  1. 下载更新插件

  命令:install dnf-plugin-system-upgrade

sudo dnf install dnf-plugin-system-upgrade

  如果已经安装了,可以跳过。

  1. 下载新软件包

  命令:system-upgrade download --releasever=39

sudo dnf system-upgrade download --releasever=39

  可以跨版本更新,如从 37 直接到 39。

  1. 重启更新

  命令:system-upgrade reboot

sudo dnf system-upgrade reboot
  1. 清理

  参见清理。