作为用户,我有一个关于更新管理器和终端命令do-release-upgrade
的问题,我注意到很多人在运行时会问问题:
do-release-upgrade -d
它返回:
Checking for a new Ubuntu release
Get:1 Upgrade tool signature[198B]
Get:2 Upgrade tool[1,147kB]
Fetched 1,148 kB in 0s(0B/s)
authenticate 'utopic.tar.gz' against 'utopic.tar.gz.gpg'
extracting 'utopic.tar.gz'
但是当你运行时:
do-release-upgrade -c
它返回:
Checking for a new Ubuntu release
No new release found
如果我转到软件和更新 --> 更新 --> 通知我新的 Ubuntu 版本并将其设置为For any new version
do-release-upgrade -d
将返回:
Checking for a new Ubuntu release
Get:1 Upgrade tool signature[198B]
Get:2 Upgrade tool[1,147kB]
Fetched 1,148 kB in 0s(0B/s)
authenticate 'utopic.tar.gz' against 'utopic.tar.gz.gpg'
extracting 'utopic.tar.gz'
也将:
do-release-upgrade -c
将返回:
Checking for a new Ubuntu release
New release '14.10' available.
Run 'do-release-upgrade' to upgrade to it.
如果我将它设置为Never
两个命令do-release-upgrade -d
并将do-release-upgrade -c
返回:
Checking for a new Ubuntu release
No new release found
但是在软件和更新中,我将所有其他更新设置为Never
通知我,就像我dist-upgrade
仅通过终端所做的那样,它确实有效,它升级了所有可用的更新和安全补丁。
那为什么它不起作用do-release-upgrade
?尽管在软件和更新中设置了什么,它不应该按照我告诉它的去做吗?还是只是这样设计的?
编辑
问题的小版本以进一步澄清它,我不想收到有关新的可用更新或版本或任何其他内容的图形通知,因此在软件和更新中我将更新和通知设置为Never
因为我想这样做通过终端,一切正常,除了do-release-upgrade
命令、
do-release-upgrade
更新管理器、软件源程序和软件中心都共享一些公共库和配置文件。您正在查看的特定方面(您希望提示的下一个 Ubuntu 版本)在文件中设置
/etc/update-manager/release-upgrades
。您可以对其进行编辑,并设置
Prompt
选项的值。引用评论:GUI 和命令行都派生了这些设置(因为最终,它们都最终使用了 Python 类
UpdateManager.Core.MetaRelease.MetaReleaseCore
,其中:和
所以,这就是它的编码方式,没有任何选项可以覆盖配置文件。
因此,如果您想禁用 GUI 通知,但又可以使用
do-release-upgrade
,则必须编辑配置文件。这可以很容易地完成(如果您愿意,可以替换lts
为normal
):请注意,似乎有一个用于可扩展配置的目录 (
/etc/update-manager/release-upgrades.d
),但目前似乎未被使用。这是现在对我来说最好理解的解释,例如在软件和更新 --> 更新 --> 通知我新的 Ubuntu 版本并将其设置为will >= true
for long-term support versions
的输出,代表:do-release-upgrade -d
do-release-upgrade -d
那将是您当前正在运行的 >=(更大)版本,但不是 LTS 版本,而是正在开发的版本(不稳定)。
但是
do-release-upgrade -c
will >= false 因为它代表:那就是 LTS 版本(稳定版)。只有当有比您当前运行的更大的 LTS 版本可用时,它才会起作用。
但是,如果您在软件和更新 --> 更新 --> 通知我新的 Ubuntu 版本中设置
for any versions
,这将意味着稳定和不稳定(开发)版本。然后两个命令do-release-upgrade -d
和do-release-upgrade -c
或-c -d
一起将返回正数。在这种情况下-c
,甚至可以删除-d
它,因为如果有的话,它对两者都适用。如果通知设置为
Never
两个命令将返回否定的情况。这甚至可以称为阻塞功能,就好像您将无法使用 either-c
或-d
indo-release-upgrade
命令将版本升级到任何新版本。我除外,因为它可能是这样设计的。聚苯乙烯
@muru的回答比我的更适合我。谢谢 :)。但我也打算暂时离开这个。