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

感謝沙格爾這個解決方案。方法已被我親自驗證。

答案3

"Is there any way to tell Ubuntu to ignore the dependencies for this specific package?"

不。

為什麼

如果您需要與法國人交談,您需要一名翻譯 - 或學習法語 - 它將為您將法語單字翻譯成英語。您depend透過翻譯器 - 或其他媒介 -properly與那個人交談。

Vuze 有自己的依賴項,他依靠這些依賴項depends來工作properly

另外,Linux 還有很多更好、更快、更安全的種子客戶端預設可用。

連結

相關內容