我刚刚从 14.04 更新到 14.10,在安装 wine 和 fglrx 时遇到了问题
导致问题的 Wine 依赖关系如下
wine > wine1.6 > wine1.6-amd64 > (ocl-icd-libopencl1 (>=1.0) | libopencl1) && (ocl-icd-libopencl1 (>=1.0) | libopencl-1.1-1)
fglrx > fglrx-core > 与 libopencl1 冲突 && 替换 libopencl1
我尝试修改 wine 包文件以删除依赖项,但最终却感到困惑,我搜索了互联网试图让它忽略这个问题,但我无法让它工作
任何帮助将非常感激
编辑 我发现了 2 个与此相关的错误报告 -https://bugs.launchpad.net/ubuntu/+source/wine1.6/+bug/1376587&https://bugs.launchpad.net/ubuntu/+source/fglrx-installer/+bug/1129409
答案1
咬紧牙关,只修改 fglrx-core 包,与 wine 相比很简单,看起来危险性确实更小,也更容易,而不是为了能够安装其他包而破坏包管理器数据。
1) 安装不带 fglrx 的 wine。
2)从包含包的目录中,
fglrx-updates-core_14.201-0ubuntu2_amd64.deb
找个地方拆开包裹,
mkdir abc
3)使用两个命令解压软件包,
dpkg -x fglrx-updates-core_14.201-0ubuntu2_amd64.deb abc
dpkg --control fglrx-updates-core_14.201-0ubuntu2_amd64.deb abc/DEBIAN
4)编辑具有依赖关系的文本文件“control”,
gedit abc/DEBIAN/control
这是“控制”改变后的样子:
Package: fglrx-updates-core
Source: fglrx-installer-updates
Version: 2:14.201-0ubuntu2.1
Architecture: amd64
Maintainer: Ubuntu Core Developers <[email protected]>
Installed-Size: 121292
Depends: libc6 (>= 2.3.4), libgcc1 (>= 1:4.1.1), libstdc++6 (>= 4.1.1), lib32gcc1, libc6-i386, dkms, make, linux-libc-dev
Conflicts: fglrx-driver-core
Replaces: fglrx-driver-core, libopencl1
Provides: fglrx-driver-core
Section: restricted/misc
Priority: extra
Homepage: http://support.amd.com
Description: Minimal video driver for the AMD graphics accelerators
Minimal video driver for the AMD Radeon and FireGL graphics accelerators.
.
This package provides 2D display drivers.
仅更改了版本、冲突和提供。保留版本不变是可以的,但包管理器会说存储库中的原始文件是更新,您一定要确保不要这样做。
保存并退出 gedit。
5)将结果放回不同名称的包中,
dpkg -b abc fglrx-updates-core_14.201-0ubuntu2_amd64-hey.deb
实际上您可以使用相同的名称,但不要混淆。
6)安装,
sudo dpkg -i fglrx-updates-core_14.201-0ubuntu2_amd64-hey.deb
7)然后,
sudo apt-get install fglrx-updates
8)感谢发帖的人。
非常感谢在这里发帖的人,他们找出了问题所在。我的 Utopic 运行正常,包括包管理器。Utopic 升级使用“open”驱动程序时出现黑屏,所以我回到了我常用的 fglrx(最初放弃了 wine)。负责修复的 Ubuntu 人员说,由于预定的程序,已经完成的简单修复要到 2015 年 4 月才能在存储库中,如果可以的话,因为“wine”冲突是由 Ubuntu 不支持的“universe”存储库引起的。如果我知道可以上传整个更改的文件的地方,我会上传它。
答案2
利用从这里收集到的信息以及一些进一步的研究,我创建了一个 PPA,以便更轻松地解决此问题
sudo apt-add-repository ppa:dwrj87/fglrxfix
sudo apt-get update
然后sudo apt-get install fglrx
或sudo apt-get install fglrx-updates
答案3
(抱歉,我想提出新的答案,但我还没有足够的声誉来发表评论。)
按照 Νίκος 的建议,我遇到了两个问题:
软件包需要 root 权限才能安装包。
最后一步,playonlinux由于依赖性问题,仍然无法安装。
因此,将最后三行替换为以下两行可能会有所帮助:
sudo apt-get download wine1.6-amd64 wine1.6-i386 wine1.6 playonlinux
sudo dpkg --force-all -i *.deb
此后,我的依赖 Wine 的应用程序运行完美了(谢谢你!)。
顺便说一句,Wine 可以在没有 PlayOnLinux 的情况下运行您安装的程序,但它很方便,可以让您下载更多最新版本的 Wine。
编辑:此过程使包管理器处于不可用状态,这意味着不再安装任何包,整个系统也不再更新。
因此,我继续手动编辑/var/lib/dpkg/状态文件,正如 David 所建议的那样。我最终ocl-icd-libopencl1 (>=1.0) | libopencl1, ocl-icd-libopencl1 (>=1.0) | libopencl-1.1-1
从两者中删除了wine1.6-i386和wine1.6-amd64。
* 如果有人看到这个并且需要更多有关最后一步的指导:在 Aptitude 中忽略损坏的软件包。
答案4
嗨,我在 14.10 (gnome 风格) amd64 的 beta1 中遇到了同样的问题。我所做的是一个糟糕的解决方法,不应该在工作场所安装中完成(虽然在我的系统中有效)。首先,我安装了 wine(i386 和 amd64)并让它卸载 fglrx,然后我用它来重新安装了驱动程序 - 这会卸载 wine 但不卸载其依赖项。
sudo apt-get purge fglrx*
sudo update-alternatives --remove-all x86_64-linux-gnu_gl_conf
sudo apt-get install --reinstall libgl1-mesa-dri libgl1-mesa-glx
sudo apt-get install fglrx-updates*
然后再次安装 wine
mkdir temp && cd temp
sudo apt-get download wine1.6-amd64 wine1.6-i386 wine1.6
dpkg --force-all -i *.deb
sudo apt-get install playonlinux
最后一步是使用playonlinux应用程序来帮助您安装其他wine版本。
ps:让你头疼的依赖项是一个 opencl 库,你已经在 fglrx 中拥有它,但由于打包错误,apt-get derp
希望能帮助到你
编辑:完全忘记了
最好去 /var/lib/dpkg/status 并编辑 wine 包的详细信息,并删除任何提及冲突的包(即 ocl-icd-libopencl1)
编辑2:您现在可以卸载 wine 软件包和 fglrx,然后重新安装 wine,然后从 amd.com 网站安装新的驱动程序(14.12)