从 Ubuntu 16.04 LTS 升级到 18.04 LTS 失败

从 Ubuntu 16.04 LTS 升级到 18.04 LTS 失败

今天尝试从 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;

有人可以诊断吗?

非常感谢。

吉姆·基南

答案1

我认为你需要做的是此主题编辑你的 apt.conf 文件:

sudo nano /etc/apt/apt.conf

并将内容更改为:

APT::Default-Release *;

相关内容