Azureus 在最新的 Java 上运行良好,但其依赖性检查要求 JRE 的版本已过时。如何告诉 Ubuntu 停止因“未满足的依赖性”而烦扰我?

Azureus 在最新的 Java 上运行良好,但其依赖性检查要求 JRE 的版本已过时。如何告诉 Ubuntu 停止因“未满足的依赖性”而烦扰我?

因此我通过 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

我找到了另一个“可能更合适”的答案。这将使您能够编辑出罪魁祸首包中的错误依赖项。与虚拟包方法不同,这不会影响整个系统。

你需要atoolsudo apt install dpkg-dev devscripts atool)和gdebidpkg也可以,但我更喜欢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 客户端默认可用。

链接

相关内容