Linux Mint 有一个基于 GUI 的漂亮更新管理器,具有可选择的更新层。默认值是 1 到 3 级(可能有 5 个级别)。然而,我经常使用 SSH 处理许多 Linux Mint 桌面系统的管理任务,而不是访问物理机。如何从命令行实现相同的功能?
我已经知道apt-get update
和apt-get upgrade
命令,但据我所知这些命令仍然有效不是具有与 Update Manager ( ) 的五层行为等效的任何功能/usr/lib/linuxmint/mintUpdate/mintUpdate.py
。
更新:当我最初提出这个问题时,我正在寻找 Linux Mint 17 解决方案。我现在在我们的一些系统上运行 18.3,并且能够为这些问题提供答案。
答案1
没有其他选择,因为 mintUpdate.py 只是 GUI (gtk),直到我决定编写一个。我在我的博客中描述了它 -Linux Mint 更新 CLI您还可以找到 gitHub 的链接。我也会发布一些屏幕截图。
答案2
在Mint 19上,有一个mintupdate-cli
与GUI版本具有相同功能的工具mintupdate
。通过其选项获取用法-h
。
但是我没有找到它的联机帮助页(带有man mintupdate-cli
)。所以我无法从应用程序本身找到它的源代码和作者。经过一番搜索后,看起来它是薄荷更新项目:
https://github.com/linuxmint/mintupdate/blob/master/usr/lib/linuxmint/mintUpdate/mintupdate-cli.py
答案3
这个答案适用于 Linux Mint 18.2 及更高版本,尽管我只测试了 18.3。
mintupdate-tool
现在,发行版中包含了一个名为 的命令行工具。它在 18.2 发行说明中被宣传为“该工具支持 UI 中可用的所有功能,包括级别选择、安全更新、内核更新和黑名单”。 “UI”指的是更新管理器,这一说法与事实相去甚远,但它是向前迈出的一大步。
man
该工具没有页面,因此:
$ mintupdate-tool --help
usage: mintupdate-tool [-h] [-k | -nk] [-s] [-r] [-d] [-y]
[--install-recommends] [-l LEVELS]
command
positional arguments:
command command to run (possible commands are: list, upgrade)
optional arguments:
-h, --help show this help message and exit
-k, --kernel ignore settings and include all kernel updates
-nk, --no-kernel ignore settings and exclude all kernel updates
-s, --security ignore settings and include all security updates
-r, --refresh-cache refresh the APT cache
-d, --dry-run simulation mode, don't upgrade anything
-y, --yes automatically answer yes to all questions
--install-recommends install recommended packages (use with caution)
-l LEVELS, --levels LEVELS
ignore settings and restrict to this list of levels
更新管理器的首选项决定默认行为。这些首选项位于活动用户的dconf
数据存储中(架构com.linuxmint.updates),因此在命令前面加上 plainsudo
不会改变这一点。这很重要,因为没有 root 权限就无法进行更新。
警告:如果在更新管理器首选项中启用了包含安全更新,则无法排除它们。
“--levels”的选项解析有点草率且不明显。 LEVELS 是一个字符串,用于搜索数字 1 到 5 的出现。它不是阈值或范围。它也不检查无效字符,因此“14”、“1-4”、“1,4”、“4..1”和“two4u14me”都仅表示级别 1 和 4。
要简单地列出根据用户的更新管理器首选项默认安装的可用更新,您可能需要这样做:
$ mintupdate-tool -r list
为了避免意外,您可能不希望在以下命令中使用“-r”选项。
要使用此工具执行实际更新的演练,请执行以下操作:
$ mintupdate-tool --dry-run upgrade
如果我们使用更新管理器而不修改显示的选择,实际上会得到相同的更新:
$ sudo mintupdate-tool upgrade
在我看来,不包括更新管理器中显示的“列表”命令的更新类型列,并且不提供查询更新描述或更改日志的方法,这是一个重大疏忽。我当前的例子:
$ sudo mintupdate-tool -l 12345 list
4 package mesa 17.2.4-0ubuntu1~16.04.4
这是一个名为“mesa”的 4 级更新,它不是软件包名称,因此我无法使用我所知道的任何其他命令行工具来查询它。我从更新管理器知道这个特定的更新实际上包含 9 个不同的软件包,但这是作弊。
这源代码。