Как убедить dpkg, что libssl1.0.2> = libssl1.0.0?

14

Я пытаюсь установить сторонний пакет .deb, который я установил ранее в Debian 8. Но я не могу установить новую версию Debian 9, потому что я получаю следующую ошибку:

dpkg: dependency problems prevent configuration of parity:
 parity depends on libssl1.0.0 (>= 1.0.0); however:
  Package libssl1.0.0 is not installed.

У меня установлен libssl1.0.2. Но он не распознается как "> = libssl1.0.0", поэтому мне интересно, как это исправить.

  1. Нужно ли устанавливать libssl1.0.0 вручную? Если так, то как?

  2. Я что-нибудь символическую ссылку? Если так, то?

  3. Что-то другое?

stone.212
источник

Ответы:

29

libssl1.0.2и libssl1.0.0являются разными пакетами, предоставляющими несовместимые библиотеки; Вот почему вы не можете удовлетворить libssl1.0.0зависимость с помощью libssl1.0.2.

Чтобы удовлетворить требования вашего пакета, я бы предложил добавить репозитории Debian 8 в вашу конфигурацию, поскольку Debian 8 все еще поддерживается (поэтому при необходимости вы будете получать обновления безопасности). Чтобы сделать это, редактировать свой /etc/apt/sources.listфайл и скопировать каждую stretchстроку, заменяя stretchс jessie(так что вы в конечном итоге с обеими stretch и jessieлиниями). Тогда беги apt update, и apt install libssl1.0.0должно работать.

Кроме того, вы можете скачать пакет (посмотрите на свою архитектуру внизу страницы) и установить его с помощью dpkg -i.

В обоих случаях apt-mark auto libssl1.0.0поможет: таким образом пакет будет рассмотрен для автоматического удаления, если он станет ненужным в будущем.

Стивен Китт
источник
Если у меня есть репозитории для stretch и jessie, как избежать конфликтов для пакетов в обоих репо?
Stone.212
aptвыберет более поздние версии пакетов из аналогично настроенных репозиториев; так что в вашем случае он предпочтет Jessie и будет использовать репозитории Stretch только для пакетов, которых больше нет в Stretch (например, libssl1.0.0), если они не конфликтуют с установленными пакетами Jessie.
Стивен Китт,