Azureus отлично работает на последней Java, но его проверка зависимостей запрашивает устаревшую версию JRE. Как сказать Ubuntu прекратить преследовать меня за "неудовлетворенную зависимость"?

Поэтому я принудительно установил Vuze (и его зависимость Azureus) через apt-get, и он отлично работает на 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 игнорировать зависимости для этого конкретного пакета?

3 ответа

Решение

Я нашел другой "возможно более подходящий" ответ. Это даст вам возможность отредактировать неправильную зависимость внутри пакета виновника. В отличие от метода фиктивного пакета, это не повлияет на всю систему.

Тебе нужно 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 за это решение. Метод был лично проверен мной.

Вы не можете сказать 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

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

Нет.

Зачем

Если вам нужно поговорить с французским человеком, вам нужен переводчик - или выучить французский - который переведет французские слова на английский для вас. Вы depend на этом переводчике - или другом средстве - чтобы общаться properly этому человеку.

Вузе имеет свои зависимости, которые он depends на работу properly,

Кроме того, в Linux есть гораздо лучшие, более быстрые и безопасные торрент-клиенты, доступные по умолчанию.

связи

Другие вопросы по тегам