请教 zypper 是否有清除无用依赖的功能

  1. 查看不需要的包:

zypper packages --unneeded

上面这个命令仅仅列出不需要(没有被手动安装的包所依赖或递归依赖)的包

  1. 删除这些包

zypper packages --unneeded | sed -nEe ‘1,4d;s/.*|.*|\s+(.*)\s+|.*|.*$/\1/p’ | xargs zypper rm -u

运行上面的命令,zypper 会提示你是否要删除,确认请按 y,若不想要这个确认步骤,可以这样写:

zypper packages --unneeded | sed -nEe ‘1,4d;s/.*|.*|\s+(.*)\s+|.*|.*$/\1/p’ | xargs zypper rm -yu

  1. 可以把 2. 中的一个放到一个脚本里,例如/usr/local/bin/zypper-cleanup,这样以后就方便运行了

PS:

  1. 上面的方法会把一些自动安装的推荐包删掉(例如 fcitx5-table-extra,为 Fcitx5 提供额外的仓颉 5 等输入法引擎),如果需要某个包,请手动安装(zypper in 或 yast 选中),之后就不会被删除了
  2. 下面的命令会列出非源安装的包(源已删除或其本身就是通过 rpm 安装的)

zypper packages --orphaned

  1. 如何安装额外/其他的语言包(包括软件界面文字翻译以及输入法支持等)

zypper locales -a # 列出 openSUSE 支持的所有语言
zypper addlocale zh_HK # 通过语言代码安装语言包(这个例子安装的是香港繁体中文)

1 个赞