更新 Ubuntu 18.04 GL 调度库的软件包损坏

更新 Ubuntu 18.04 GL 调度库的软件包损坏

这两个更新无法安装:

供应商中立的 GL 调度库 - 开发文件

供应商中立的 GL 调度库 - GLESV1 支持

更新后会显示一个新窗口,标题为:系统包损坏以及一条建议禁用第三方软件包并运行的消息apt-get install -f

这是运行命令后的输出:

Reading package list... Done
Building the dependency tree       
Reading status information... Done
Correcting dependencies... Ready
The packages listed below were installed automatically and are no longer required.
  libjs-bootstrap libjs-excanvas libjs-jquery-flot libjs-jquery-ui
  libjs-jquery-ui-theme-smoothness libjs-leaflet libjs-requirejs
  libjs-requirejs-text node-sprintf-js
Use "sudo apt autoremove" to remove them.
The following additional packages will be installed:
  libgles1 libglvnd-dev
The following NEW packages will be installed:
  libgles1
The following packages will be updated:
  libglvnd-dev
1 updated, 1 new will be installed, 0 to remove and 10 not updated.
You need to download 0 B/14.6 kB of files.
66.6 kB of additional disk space will be used after this operation.
Do you want to continue? [Y/N] Y
(Reading the database ... 704136 files or directories currently installed.)
Preparing to unpack ... 
libgles1_1.0.0-2ubuntu2.2_amd64.deb ...
Unpacking libgles1:amd64 (1.0.0-2ubuntu2.2) ...
dpkg: error processing /var/cache/apt/archives/libgles1_1.0.0-2ubuntu2.2_amd64.deb (--unpack):
 trying to overwrite `/usr/lib/x86_64-linux-gnu/libGLESv1_CM.so.1', which is also in package nvidia-340 340.106-0ubuntu3
Preparing to unpack ...
/libglvnd-dev_1.0.0-2ubuntu2.2_amd64.deb ...Unpacking libglvnd-dev:amd64 (1.0.0-2ubuntu2.2) on (1.0.0-2ubuntu2.1) ...
dpkg: error processing /var/cache/apt/archives/libglvnd-dev_1.0.0-2ubuntu2.2_amd64.deb (--unpack):
 trying to overwrite `/usr/lib/x86_64-linux-gnu/libGLESv1_CM.so', which is also in package nvidia-340 340.106-0ubuntu3
dpkg: error processing /var/cache/apt/archives/libglvnd-dev_1.0.0-2ubuntu2.2_amd64.deb (--unpack):
 trying to overwrite `/usr/lib/x86_64-linux-gnu/libGLESv1_CM.so', which is also in the package nvidia-340 340.106-0ubuntu3
Errors were encountered while processing:
 /var/cache/apt/archives/libgles1_1.0.0-2ubuntu2.2_amd64.deb
 /var/cache/apt/archives/libglvnd-dev_1.0.0-2ubuntu2.2_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

答案1

我刚遇到这个问题,运行

sudo dpkg -i --force-overwrite /var/cache/apt/archives/libglvnd-dev_1.0.0-2ubuntu2.2_amd64.deb
sudo dpkg -i --force-overwrite /var/cache/apt/archives/libgles1_1.0.0-2ubuntu2.2_amd64.deb
sudo apt -f install

答案2

这是我做的。首先我删除了 Nvidia 驱动程序

sudo dpkg -P nvidia-340
sudo apt --fix-broken install
sudo apt remove nvidia-340

这样,我最终就可以毫无错误地升级软件包。

之后我下载了 nvidia-340 包

cd ~/Downloads
wget http://ftp.ubuntu.com/ubuntu/ubuntu/pool/restricted/n/nvidia-graphics-drivers-340/nvidia-340_340.106-0ubuntu3_amd64.deb

之后我提取了 deb 内容

mkdir nvidia_tmp
dpkg-deb -x nvidia-340_340.106-0ubuntu3_amd64.deb nvidia_tmp
dpkg-deb --control nvidia-340_340.106-0ubuntu3_amd64.deb nvidia_tmp/DEBIAN

然后我稍微改变了 nvidia_tmp/DEBIAN/md5sums

vim nvidia_tmp/DEBIAN/md5sums

删除这两行

6f9f6f57f6da31de03d13007942325fe  usr/lib/i386-linux-gnu/libGLESv1_CM.so.340.106
d0c1dc5d4d851b94223db7f5993444c8  usr/lib/x86_64-linux-gnu/libGLESv1_CM.so.340.106

保存文件并删除一些文件

rm nvidia_tmp/usr/lib/i386-linux-gnu/libGLESv1_CM.so
rm nvidia_tmp/usr/lib/i386-linux-gnu/libGLESv1_CM.so.1
rm nvidia_tmp/usr/lib/i386-linux-gnu/libGLESv1_CM.so.340.106
rm nvidia_tmp/usr/lib/x86_64-linux-gnu/libGLESv1_CM.so
rm nvidia_tmp/usr/lib/x86_64-linux-gnu/libGLESv1_CM.so.1
rm nvidia_tmp/usr/lib/x86_64-linux-gnu/libGLESv1_CM.so.340.106

然后我删除了原始的 deb 包(我下载的那个)

rm nvidia-340_340.106-0ubuntu3_amd64.deb

现在我们创建一个新的Nvidia包

dpkg -b nvidia_tmp/ nvidia-340_340.106-0ubuntu3_amd64.deb

最后我使用 Gdebi 安装了这个包。

希望这能有所帮助。

答案3

我目前也面临同样的问题。我使用的是 Ubuntu 18.04,没有使用第三方存储库。唯一值得一提的是,我要求软件更新程序在任何发布新版本的 Ubuntu,而不仅仅是长期支持版本。

在网上做了相当详尽的搜索之后,我可以提供一些指导。

关于此供应商中立 GL 调度库的信息:
https://www.phoronix.com/scan.php?page=news_item&px=MTQ0NzU
https://wiki.ubuntu.com/X/EGLDriverPackagingHOWTO
https://github.com/NVIDIA/libglvnd

其他论坛帖子:
apt 损坏,由于未满足依赖关系而无法更新 libglvnd(Nvidia)
包含答案。

http://forum.ubuntu-fr.org/viewtopic.php?id=2031019
不过是法语。使用谷歌翻译后的第 24 篇让我相信有一些官方的临时解决方案

https://www.linuxquestions.org/questions/linux-newbie-8/ubuntu-apt-upgrade-error-4175638908/
解决方案链接至安装时CUDA出错,求助卸载

错误报告:
https://bugs.launchpad.net/ubuntu/+source/libglvnd/+bug/1793610
https://bugs.launchpad.net/ubuntu/+source/libglvnd/+bug/1793937
更新(9月25日)https://bugs.launchpad.net/ubuntu/+source/libglvnd/+bug/1791542
最后一个网络链接最为活跃,同时提到修复后的软件包现在位于“建议的”存储库中。

更新(9月25日):我的问题:我宁愿等待目前“建议”存储库中的官方解决方案。但我确实希望保持我的系统是最新的,特别是在安全方面。如何继续?因为运行软件更新程序只会同步软件包,而不会继续安装新软件包,因为我们面临的这个“损坏的软件包系统”问题。

我的观点:
许多解决方案/答案涉及强制或手动操作。执行这些操作的用户对结果有不同的看法。所以要小心。
这个问题似乎是最近才出现的。所以我仍然希望得到一些官方解决方案,并且我不必采取强制或手动操作。
最后,我观察到,我碰到了很多关于与 GL 或 nvidia 相关的损坏的软件包系统的帖子。所以这似乎是损坏软件包系统的常见来源。

如果您有新的或额外的信息/答案,请随时扩展或评论此答案。我建议我们使用此主题发布信息/答案,因为现在一切都有些散乱。

答案4

奇怪的是,我几乎与 OP 相同的错误,就我而言完全一样冲突是:i386架构,但是我的机器和 Kubuntu 是 x86-64,所以我只是apt removedlibgl1-mesa-dev:i386并且libglvnd-dev:i386- 它们似乎不需要任何东西。

坦白说,我不确定为什么我会有这些 32 位库。

相关内容