因此我通过 apt-get 强制安装了 Vuze(及其依赖项 Azureus),并且它在 default-jre 上运行良好。
尽管 default-jre 作为 Azureus 的依赖项起作用(至少对于我的用例场景而言),但是 Azureus 包内的依赖项检查需要较旧且过时的 JRE 版本,并且我被未满足的依赖项消息所轰炸。
每次我执行一些 apt-get 操作时,都会收到以下信息:
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies:
azureus : Depends: openjdk-7-jre but it is not installable or
openjdk-6-jre but it is not installable or
sun-java5-jre but it is not installable or
sun-java6-jre but it is not installable
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).
编辑:我不想“解决”依赖性问题,因为没有依赖性问题需要解决。警告是错误的,因为 Azureus 内部的依赖性检查已过时。
有什么办法可以告诉 Ubuntu 忽略这个特定包的依赖关系?
答案1
你不能告诉 Ubuntu 忽略这个问题,但你可以假装通过构建虚拟版本来安装软件包。 它不是那痛苦。
sudo apt install equivs
nano openjdk-7-jre
粘贴如下内容:
Section: misc
Priority: optional
Package: openjdk-7-jre
Description: Dummy package
然后运行:
equivs-build openjdk-7-jre
sudo dpkg -i openjdk-7-jre_1.0_all.deb
答案2
我找到了另一个“可能更合适”的答案。这将使您能够编辑出罪魁祸首包中的错误依赖项。与虚拟包方法不同,这不会影响整个系统。
你需要atool
(sudo apt install dpkg-dev devscripts atool
)和gdebi
(dpkg
也可以,但我更喜欢gdebi
)
$pkg
= 导致问题的包的名称。
apt-get download $pkg
mkdir pkg
atool -X pkg $pkg
vi pkg/DEBIAN/control
# [This is where you edit out the wrong dependencies]
rm -vf $pkg && dpkg-deb -b pkg $pkg
sudo gdebi $pkg
就我而言,我需要编辑的行是:
Depends: openjdk-7-jre | openjdk-6-jre | sun-java5-jre | sun-java6-jre, libcommons-cli-java, liblog4j1.2-java, libswt-gtk-3-java, java-wrappers
感谢 sergall此解决方案。该方法已经经过我亲自验证。
答案3
"Is there any way to tell Ubuntu to ignore the dependencies for this specific package?"
不。
为什么
如果您需要与法国人交谈,您需要一名翻译 - 或者学习法语 - 来将法语单词翻译成英语。您可以depend
使用该翻译 - 或其他媒介 -properly
与该人交谈。
Vuze 有其自己的依赖项,需要依靠它depends
才能工作properly
。
此外,Linux 还有很多更好、更快、更安全的 torrent 客户端默认可用。
链接