由于保留软件包,似乎无法从 18.04 升级到 20.04:libsensors4、libsensors-config、colord

Mag*_*ain 4 upgrade 20.04

我尝试从 18.04 升级到 20.04,但是有一些保留的软件包似乎阻碍了我,我真的不明白如何正确修复它们。日志文件说

2020-04-24 17:38:44,134 ERROR Dist-upgrade failed: 'Broken packages after upgrade: colord'
Run Code Online (Sandbox Code Playgroud)

按照说明检查 apt.log 我看到一些错误

Broken colord:amd64 Depends on libsane:amd64 < none | 1.0.29-0ubuntu5 @un umH > (>= 1.0.24)
  Considering libsane:amd64 15 as a solution to colord:amd64 37
  Added libsane:amd64 to the remove list
  Fixing colord:amd64 via keep of libsane:amd64

Broken libsensors-config:amd64 Conflicts on libsensors4:amd64 < 1:3.4.0-4 @ii gK >
  Considering libsensors4:amd64 34 as a solution to libsensors-config:amd64 1
  MarkKeep libsensors-config:amd64 < none -> 1:3.6.0-2ubuntu1 @un umN Ib > FU=0
  Holding Back libsensors-config:amd64 rather than change libsensors4:amd64

Investigating (3) libsensors5:amd64 < none -> 1:3.6.0-2ubuntu1 @un umN Ib >
Broken libsensors5:amd64 Depends on libsensors-config:amd64 < none | 1:3.6.0-2ubuntu1 @un umH >
  Considering libsensors-config:amd64 1 as a solution to libsensors5:amd64 2
  MarkKeep libsensors5:amd64 < none -> 1:3.6.0-2ubuntu1 @un umN Ib > FU=0
  Holding Back libsensors5:amd64 rather than change libsensors-config:amd64

Investigating (3) lm-sensors:amd64 < 1:3.4.0-4 -> 1:3.6.0-2ubuntu1 @ii umU Ib >
Broken lm-sensors:amd64 Depends on libsensors5:amd64 < none | 1:3.6.0-2ubuntu1 @un umH > (>= 1:3.5.0)
  Considering libsensors5:amd64 2 as a solution to lm-sensors:amd64 0
  MarkKeep lm-sensors:amd64 < 1:3.4.0-4 -> 1:3.6.0-2ubuntu1 @ii umU Ib > FU=0
  Holding Back lm-sensors:amd64 rather than change libsensors5:amd64

Investigating (4) libsnmp35:amd64 < none -> 5.8+dfsg-2ubuntu2 @un umN Ib >
Broken libsnmp35:amd64 Depends on libsensors5:amd64 < none | 1:3.6.0-2ubuntu1 @un umH > (>= 1:3.5.0)
  Considering libsensors5:amd64 2 as a solution to libsnmp35:amd64 7
  MarkKeep libsnmp35:amd64 < none -> 5.8+dfsg-2ubuntu2 @un umN Ib > FU=0
  Holding Back libsnmp35:amd64 rather than change libsensors5:amd64
 Try to Re-Instate (4) lm-sensors:amd64
  MarkKeep lm-sensors:amd64 < 1:3.4.0-4 -> 1:3.6.0-2ubuntu1 @ii umU Ib > FU=0

Investigating (5) libsane:amd64 < none -> 1.0.29-0ubuntu5 @un umN Ib >
Broken libsane:amd64 Depends on libsnmp35:amd64 < none | 5.8+dfsg-2ubuntu2 @un umH > (>= 5.8+dfsg)
  Considering libsnmp35:amd64 7 as a solution to libsane:amd64 15
  MarkKeep libsane:amd64 < none -> 1.0.29-0ubuntu5 @un umN Ib > FU=0
  Holding Back libsane:amd64 rather than change libsnmp35:amd64
Run Code Online (Sandbox Code Playgroud)

还有一些错误,但它们似乎又回到了同样的错误。我尝试更新/升级,修复损坏的包,根据反馈没有什么可做的。

有没有人有任何想法?

Mar*_*tad 6

在中止的、几乎完成的升级之后,我遇到了一个非常相似的问题。我已经libsensors4安装了,如果我试图删除它或 install libsensors5,则会删除大量其他软件包。

问题是我的libgl1-mesa-dri依赖libsensors4,如下所示:

$ apt-cache rdepends libsensors4
libsensors4
Reverse Depends:
  lm-sensors
  sysstat
  libgl1-mesa-dri
  libsensors-config
  libsensors-config
Run Code Online (Sandbox Code Playgroud)

这个包不是来自官方的 Ubuntu 包存储库,而是来自 ppa kisak/kisak-mesa。你可以在它的版本字符串中看到它20.0.7~kisak1~b——问题还在于它的版本比 Ubuntu 更高:

$ sudo apt list   libgl1-mesa-dri
Listing... Done
libgl1-mesa-dri/now 20.0.7~kisak1~b amd64 [installed,local]
libgl1-mesa-dri/focal 20.0.4-2ubuntu1 i386 [residual-config]
Run Code Online (Sandbox Code Playgroud)

所以我的解决方案(如下)是从这个 PPA 中删除包。如果您在上述命令上有类似的输出,请尝试以下操作来清除 PPA:

$ sudo ppa-purge -o kisak  -p kisak-mesa
Updating packages lists
PPA to be removed: kisak kisak-mesa
Warning:  Could not find package list for PPA: kisak kisak-mesa
Run Code Online (Sandbox Code Playgroud)

如果您无法清除它,如上所示,请先添加 PPA,然后再次清除它。如果是另一个 PPA 阻止您,请替换以下命令中的名称。

$ sudo add-apt-repository ppa:kisak/kisak-mesa
[...]
$ sudo ppa-purge -o kisak  -p kisak-mesa
[...]
Suggested packages:
  lm-sensors
The following packages will be REMOVED:
  libsensors4
The following NEW packages will be installed:
  libllvm9:i386 libsensors-config libsensors5
The following packages will be DOWNGRADED:
  libegl-mesa0 libegl1-mesa libegl1-mesa-dev libgbm1 libgl1-mesa-dev libgl1-mesa-dri libgl1-mesa-glx libglapi-mesa libglapi-mesa:i386 libglx-mesa0
  libosmesa6 libosmesa6:i386 mesa-opencl-icd mesa-va-drivers mesa-vdpau-drivers mesa-vulkan-drivers mesa-vulkan-drivers:i386
Run Code Online (Sandbox Code Playgroud)

现在 PPA 消失了,apt 会更好地工作。最后确保您安装了所有桌面软件包:

$ sudo apt install ubuntu-desktop
Run Code Online (Sandbox Code Playgroud)