今天尝试从 Ubuntu 16.04 LTS 升级到 18.04 LTS 几次都失败了。我尝试使用软件更新程序和命令行。以下是命令行的输出(将“http:”修剪为“ttp:”):
$ sudo do-release-upgrade -d
Checking for a new Ubuntu release
Get:1 Upgrade tool signature [819 B]
Get:2 Upgrade tool [1,258 kB]
Fetched 1,259 kB in 0s (0 B/s)
authenticate 'bionic.tar.gz' against 'bionic.tar.gz.gpg'
extracting 'bionic.tar.gz'
Reading cache
Checking package manager
Reading package lists... Done
Building dependency tree
Reading state information... Done
Hit ttp://us.archive.ubuntu.com/ubuntu xenial InRelease
Hit ttp://us.archive.ubuntu.com/ubuntu xenial-updates InRelease
Hit ttp://us.archive.ubuntu.com/ubuntu xenial-backports InRelease
Ign ttp://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 InRelease
Ign ttp://dl.google.com/linux/chrome/deb stable InRelease
Hit ttp://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 Release
Get:1 ttp://security.ubuntu.com/ubuntu xenial-security InRelease [107 kB]
Ign ttp://dl.google.com/linux/talkplugin/deb stable InRelease
Hit ttp://dl.google.com/linux/chrome/deb stable Release
Hit ttp://dl.google.com/linux/talkplugin/deb stable Release
Hit https://repo.skype.com/deb stable InRelease
Ign https://storage.googleapis.com/download.dartlang.org/linux/debian stable InRelease
Hit https://download.virtualbox.org/virtualbox/debian xenial InRelease
Ign https://storage.googleapis.com/download.dartlang.org/linux/debian unstable InRelease
Hit https://storage.googleapis.com/download.dartlang.org/linux/debian stable Release
Hit https://storage.googleapis.com/download.dartlang.org/linux/debian unstable Release
Hit https://packagecloud.io/slacktechnologies/slack/debian jessie InRelease
Fetched 107 kB in 0s (0 B/s)
(appstreamcli:22168): GLib-CRITICAL **: g_strchug: assertion 'string != NULL' failed
(appstreamcli:22168): GLib-CRITICAL **: g_strchomp: assertion 'string != NULL' failed
(appstreamcli:22168): GLib-CRITICAL **: g_strchug: assertion 'string != NULL' failed
(appstreamcli:22168): GLib-CRITICAL **: g_strchomp: assertion 'string != NULL' failed
(appstreamcli:22168): GLib-CRITICAL **: g_strchug: assertion 'string != NULL' failed
(appstreamcli:22168): GLib-CRITICAL **: g_strchomp: assertion 'string != NULL' failed
AppStream cache update completed, but some metadata was ignored due to errors.
Reading package lists... Done
Building dependency tree
Reading state information... Done
Hold prevents MarkGarbage of libnl-route-3-200 [ amd64 ] < 3.2.21-1 -> 3.2.27-1ubuntu0.16.04.1 > ( libs )
Hold prevents MarkGarbage of libnl-route-3-200 [ amd64 ] < 3.2.21-1 -> 3.2.27-1ubuntu0.16.04.1 > ( libs )
Updating repository information
Third party sources disabled
Some third party entries in your sources.list were disabled. You can
re-enable them after the upgrade with the 'software-properties' tool
or your package manager.
To continue please press [ENTER]
Hit ttp://us.archive.ubuntu.com/ubuntu bionic InRelease
Hit ttp://us.archive.ubuntu.com/ubuntu bionic-updates InRelease
Hit ttp://us.archive.ubuntu.com/ubuntu bionic-backports InRelease
Get:1 ttp://security.ubuntu.com/ubuntu bionic-security InRelease [83.2 kB]
Fetched 83.2 kB in 0s (0 B/s)
The value 'stable' is invalid for APT::Default-Release as such a release is not available in the sources
Can't call method "policy" on an undefined value at /usr/bin/apt-show-versions line 56.
Hit ttp://security.ubuntu.com/ubuntu bionic-security InRelease
Hit ttp://us.archive.ubuntu.com/ubuntu bionic InRelease
Hit ttp://us.archive.ubuntu.com/ubuntu bionic-updates InRelease
Hit ttp://us.archive.ubuntu.com/ubuntu bionic-backports InRelease
Fetched 0 B in 0s (0 B/s)
The value 'stable' is invalid for APT::Default-Release as such a release is not available in the sources
Can't call method "policy" on an undefined value at /usr/bin/apt-show-versions line 56.
Hit ttp://us.archive.ubuntu.com/ubuntu bionic InRelease
Hit ttp://us.archive.ubuntu.com/ubuntu bionic-updates InRelease
Hit ttp://us.archive.ubuntu.com/ubuntu bionic-backports InRelease
Get:1 ttp://security.ubuntu.com/ubuntu bionic-security InRelease [83.2 kB]
Fetched 83.2 kB in 0s (0 B/s)
The value 'stable' is invalid for APT::Default-Release as such a release is not available in the sources
Can't call method "policy" on an undefined value at /usr/bin/apt-show-versions line 56.
Error during update
A problem occurred during the update. This is usually some sort of
network problem, please check your network connection and retry.
E:Problem executing scripts APT::Update::Post-Invoke-Success 'test -x
/usr/bin/apt-show-versions || exit 0 ; apt-show-versions -i',
E:Sub-process returned an error code
Restoring original system state
Aborting
Reading package lists... Done
Building dependency tree
Reading state information... Done
Hold prevents MarkGarbage of libnl-route-3-200 [ amd64 ] < 3.2.21-1 -> 3.2.27-1ubuntu0.16.04.1 > ( libs )
Hold prevents MarkGarbage of libnl-route-3-200 [ amd64 ] < 3.2.21-1 -> 3.2.27-1ubuntu0.16.04.1 > ( libs )
评论:
我之前已经成功将这台机器从 14.04 升级到 16.04。所以我对这个过程并不陌生。
使用软件更新程序和命令行时出现以下失败消息:
Error during update
A problem occurred during the update. This is usually some sort of
network problem, please check your network connection and retry.
E:Problem executing scripts APT::Update::Post-Invoke-Success 'test -x
/usr/bin/apt-show-versions || exit 0 ; apt-show-versions -i',
E:Sub-process returned an error code
在尝试升级之前,我sudo apt-get update
今天成功调用了几次,所以我不认为我有网络连接问题。
在上面的输出中,以下消息似乎很重要,因为它出现了三次:
The value 'stable' is invalid for APT::Default-Release as such a release is not available in the sources
Can't call method "policy" on an undefined value at /usr/bin/apt-show-versions line 56.
这是我能找到字符串“APT::Default-Release”的唯一地方:
$ cat /etc/apt/apt.conf
APT::Default-Release "stable";
apt-show-versions 是一个 Perl 程序。如果我将该程序复制到临时目录并使用 /usr/bin/perl 以我自己的用户身份运行它,则该程序将成功完成且没有错误输出。它不会在以下行引发异常:
55 my $cache = AptPkg::Cache->new;
56 my $policy = $cache->policy;
有人可以诊断吗?
非常感谢。
吉姆·基南