![更新 Ubuntu 18.04 GL 调度库的软件包损坏](https://linux22.com/image/1160431/%E6%9B%B4%E6%96%B0%20Ubuntu%2018.04%20GL%20%E8%B0%83%E5%BA%A6%E5%BA%93%E7%9A%84%E8%BD%AF%E4%BB%B6%E5%8C%85%E6%8D%9F%E5%9D%8F.png)
这两个更新无法安装:
供应商中立的 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 remove
dlibgl1-mesa-dev:i386
并且libglvnd-dev:i386
- 它们似乎不需要任何东西。
坦白说,我不确定为什么我会有这些 32 位库。