Как обновить openssl 1.0.1 в Debian

Вопрос или проблема

Кратко:
Я пытаюсь установить пакет, который требует libssl 1.0.2 или выше, но не могу:

# dpkg -i my_package_name_3.0.1.8_amd64.deb
Выбор ранее не выбранного пакета my_package_name.
(Чтение базы данных ... 266120 файлов и директорий в настоящее время установлено.)
Подготовка к распаковке my_package_name_3.0.1.8_amd64.deb ...
Распаковка my_package_name (3.0.1.8) ...
dpkg: проблемы с зависимостями мешают настройке my_package_name:
 my_package_name зависит от libssl1.0.0 (>= 1.0.2g); однако:
  Версия libssl1.0.0:amd64 на системе - 1.0.1t-1+deb8u9.

dpkg: ошибка при обработке пакета my_package_name (--install):
 проблемы с зависимостями - оставлено неконфигурированным
Обрабатываются триггеры для desktop-file-utils (0.23-1) ...
Обрабатываются триггеры для mime-support (3.60) ...
Обрабатываются триггеры для hicolor-icon-theme (0.15-1) ...
Ошибки возникли во время обработки:
 my_package_name

Долгая история того, что я пробовал:

У меня был debian jessie:

# lsb_release -a
Нет доступных модулей LSB.
Идентификатор дистрибьютора: Debian
Описание:    Debian GNU/Linux 8.11 (jessie)
Версия:        8.11
Кодовое имя:       jessie
# uname -a
Linux 10.mylocalhostname.com 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1+deb8u6 (2015-11-09) x86_64 GNU/Linux

И мой openssl – 1.0.1

# dpkg -l 'openssl'
Желаемое=Неизвестно/Установить/Удалить/Очистить/Сохранить
| Статус=Не/Уст/Конф-файлы/Распаковано/наполовину-сконфигурировано/наполовину-установлено/триггер-ожидание/триггер-ожидание
|/ Ошибка?=(нет)/Требуется повторная установка (Статус, Ошибка: заглавные буквы = плохо)
||/ Имя                                                  Версия                         Архитектура                    Описание
+++-=====================================================-===============================-===============================-===============================================================================================================
ii  openssl                                               1.0.1t-1+deb8u9                 amd64                           Набор утилит Secure Sockets Layer - криптографическая утилита

Мне нужно обновить libssl (который, как я понимаю, является частью openssl?) до 1.0.2 или выше. Я выполнил команду apt-get update && apt-get upgrade и все еще остаюсь на 1.0.1. Я также пробовал:

# apt-get install openssl=1.0.2
Чтение списков пакетов... Готово
Формирование дерева зависимостей       
Чтение информации о состоянии... Готово
E: Версия '1.0.2' для 'openssl' не найдена

После прочтения информации я решил обновить свою систему. Я запустил apt-get dist-upgrade. Затем я отредактировал свой /etc/apt/source.list, чтобы заменить jessie на stretch. Снова запустил apt-get update && apt-get upgrade && apt-get dist-upgrade. Похоже, что теперь все в порядке:

# lsb_release -a
Нет доступных модулей LSB.
Идентификатор дистрибьютора: Debian
Описание:    Debian GNU/Linux 9.5 (stretch)
Версия:        9.5
Кодовое имя:       stretch

И теперь у меня openssl 1.1.0:

# dpkg -l 'openssl'
Желаемое=Неизвестно/Установить/Удалить/Очистить/Сохранить
| Статус=Не/Уст/Конф-файлы/Распаковано/наполовину-сконфигурировано/наполовину-установлено/триггер-ожидание/триггер-ожидание
|/ Ошибка?=(нет)/Требуется повторная установка (Статус, Ошибка: заглавные буквы = плохо)
||/ Имя                                                  Версия                         Архитектура                    Описание
+++-=====================================================-===============================-===============================-===============================================================================================================
ii  openssl                                               1.1.0f-3+deb9u2                 amd64                           Набор утилит Secure Sockets Layer - криптографическая утилита

Но я все равно не могу установить свой пакет, несмотря на то, что, похоже, в моей системе теперь есть libssl 1.0.1, 1.0.2 и 1.1.0:

# apt-cache policy libssl1.0.0
libssl1.0.0:
  Установленный: 1.0.1t-1+deb8u9
  Кандидат: 1.0.1t-1+deb8u9
  Таблица версий:
 *** 1.0.1t-1+deb8u9 100
        100 /var/lib/dpkg/status
# apt-cache policy libssl1.0.2
libssl1.0.2:
  Установленный: 1.0.2l-2+deb9u3
  Кандидат: 1.0.2l-2+deb9u3
  Таблица версий:
 *** 1.0.2l-2+deb9u3 500
        500 http://mirror.it.ubc.ca/debian stretch/main amd64 Packages
        500 http://security.debian.org stretch/updates/main amd64 Packages
        500 http://http.debian.net/debian stretch/main amd64 Packages
        100 /var/lib/dpkg/status
# apt-cache policy libssl1.1
libssl1.1:
  Установленный: 1.1.0f-3+deb9u2
  Кандидат: 1.1.0f-3+deb9u2
  Таблица версий:
 *** 1.1.0f-3+deb9u2 500
        500 http://mirror.it.ubc.ca/debian stretch/main amd64 Packages
        500 http://security.debian.org stretch/updates/main amd64 Packages
        500 http://http.debian.net/debian stretch/main amd64 Packages
        100 /var/lib/dpkg/status

А когда я пытаюсь установить свой пакет, я получаю такую же ошибку, как и раньше, как будто dpkg видит только 1.0.1 и ничего больше. Есть какие-нибудь подсказки о том, что еще я могу сделать?

ОБНОВЛЕНИЕ:

Я скачал openssl_1.0.2g-1ubuntu4.13_amd64.deb из ubuntu и попробовал это:

# dpkg -i openssl_1.0.2g-1ubuntu4.13_amd64.deb 
dpkg: предупреждение: понижение версии openssl с 1.1.0f-3+deb9u2 до 1.0.2g-1ubuntu4.13
(Чтение базы данных ... 266120 файлов и директорий в настоящее время установлено.)
Подготовка к распаковке openssl_1.0.2g-1ubuntu4.13_amd64.deb ...
Распаковка openssl (1.0.2g-1ubuntu4.13) поверх (1.1.0f-3+deb9u2) ...
dpkg: проблемы с зависимостями мешают настройке openssl:
 openssl зависит от libssl1.0.0 (>= 1.0.2g); однако:
  Версия libssl1.0.0:amd64 на системе - 1.0.1t-1+deb8u9.

dpkg: ошибка при обработке пакета openssl (--install):
 проблемы с зависимостями - оставлено неконфигурированным
Обрабатываются триггеры для man-db (2.7.6.1-2) ...
Ошибки возникли во время обработки:
 openssl

Итак, хорошо, это официально, это не имеет смысла, и я не знаю, что делать. Мне говорят, что openssl 1.0.2g, который я пытаюсь установить, зависит от 1.0.2g, и именно поэтому я не могу его установить, поскольку у меня 1.0.1? Я в полном замешательстве… lol

ОБНОВЛЕНИЕ 2:

Я удалил libssl apt-get remove libssl1.0.0, скачал и установил пакеты ubuntu 1.0.2g (и для i386, и для amd64, иначе возникнет ошибка; я скачал их с pgks.org, не смог найти более “официальный” источник 🙁 ) и наконец смог установить my_package_name. Но я уверен, что моя система сейчас вся испорчена, я проверю. Я оставлю этот вопрос открытым, пока кто-то не предоставит простое, прямолинейное, не хакированное решение, которое не испортит систему. Если это вообще возможно… :/

Ваше сообщение об ошибке включает следующее

my_package_name зависит от libssl1.0.0 (>= 1.0.2g); однако:
Версия libssl1.0.0:amd64 на системе - 1.0.1t-1+deb8u9.

Важная часть сообщения – это 1.0.2g и то, что он находит 1.0.1t. Вам нужна именно версия 1.0.2g, так как это версия, от которой зависит ваш пакет. Похоже, что пакет не допускает более высоких версий, таких как 1.0.2l, и более низких версий, таких как 1.0.2d.

Также обратите внимание, что ваш менеджер пакетов может позволять несколько параллельных установок в разные базовые директории. Вам может понадобиться попробовать удалить версии, которые не требуются для этого пакета (замечание: вам нужно будет убедиться, что другие пакеты не зависят от этих версий, прежде чем их удалять)

Попробуйте apt-get install openssl=1.0.2g

Я бы поспорил, что эта же часть вашего сообщения об ошибке отличается сейчас, когда ОС была обновлена до Stretch.

Кратко: пакет OpenSSL, который вам нужен, находится в jessie-backports. Однако понижение версии Debian не поддерживается.


Обратите внимание на эту строку из dpkg:

my_package_name зависит от libssl1.0.0 (>= 1.0.2g); однако:

Пакет, который вы пытаетесь установить, зависит от пакета с точным названием “libssl1.0.0“, поэтому установка libssl1.0.2 не поможет. Если бы вы не обновлялись до stretch, то могли бы взять libssl1.0.0 версии 1.0.2l из jessie-backports, что является двоично совместимым и является > v1.0.2g из-за схемы версионирования OpenSSL.

Кстати, вы не можете ожидать, что jessie-backports будет работать на stretch без проблем.


Из вашего первого обновления:

openssl зависит от libssl1.0.0 (>= 1.0.2g); однако:
 версия libssl1.0.0:amd64 на системе - 1.0.1t-1+deb8u9.

Обратите внимание, что openssl и libssl – это два разных пакета, и пакет, который вы пытаетесь установить, зависит от последнего. Пакет openssl из Ubuntu, который вы пробовали установить, требует, чтобы версия libssl1.0.0 была >= 1.0.2g, но 1.0.1t < 1.0.2g.


Суть в том, что Forticlient не предназначен для работы на Debian, поэтому заставить его работать будет сложно.

В этом особом случае я согласен с комментарием, сделанным dsstorefile1.

“Вы не можете смешивать пакеты Ubuntu и Debian. Ну, вы можете, но в конечном итоге у вас получится сломанная ОС, поскольку пакеты из двух несовместимы.”

И для общего использования вы можете использовать aptitude вместо apt-get, поскольку aptitude проверяет зависимости.

простое, прямолинейное, не хакированное решение, которое не испортит систему. Если это вообще возможно… :/

Команда для использования backports для обновления openssl:

sudo apt -t jessie-backports install openssl

Ответ или решение

Обновление OpenSSL до версии 1.0.2 или выше в Debian может быть сложной задачей, особенно если ваша система изначально основана на более старой версии, как Debian Jessie. В данной статье мы рассмотрим пошаговый процесс обновления OpenSSL и решения возникших зависимостей.

Шаг 1: Определение текущей версии

Сначала убедитесь, что у вас установлена последняя версия пакетов в вашей системе:

sudo apt-get update
sudo apt-get upgrade

Затем проверьте текущую версию OpenSSL:

dpkg -l 'openssl'

Если вы видите, что версия OpenSSL составляет 1.0.1, как в вашем случае (1.0.1t-1+deb8u9), вам необходимо обновить её.

Шаг 2: Изменение источников APT

Поскольку на момент выхода Debian Jessie последней доступной версией OpenSSL была 1.0.1, вам необходимо будет использовать backports для установки более новой версии OpenSSL.

Для этого откройте файл /etc/apt/sources.list и добавьте следующую строку, чтобы включить backports:

deb http://deb.debian.org/debian jessie-backports main

После чего выполните обновление списка пакетов:

sudo apt-get update

Шаг 3: Установка OpenSSL из backports

Теперь вы можете установить OpenSSL версии 1.0.2 или выше:

sudo apt -t jessie-backports install openssl

Эта команда приоритетно устанавливает пакеты из репозитория backports.

Шаг 4: Проверка зависимостей

После установки проверьте версии зависимостей, таких как libssl1.0.0. Убедитесь, что на вашей системе установлена версия, соответствующая требованиям вашего пакета:

apt-cache policy libssl1.0.0

Если версия libssl1.0.0 по-прежнему не соответствует или старая версия (1.0.1t), вам необходимо обновить и её, следуя направлению выше.

Шаг 5: Обновление системы

Если другие пакеты требуют более новую версию libssl, вы можете обновить систему до Debian Stretch. Это потребует изменений в вашем sources.list, как уже упоминалось:

  1. Замените jessie на stretch в файле /etc/apt/sources.list.
  2. Выполните:

    sudo apt-get update
    sudo apt-get upgrade
    sudo apt-get dist-upgrade

Шаг 6: Установка пакета

Теперь, когда у вас установлены необходимые версии OpenSSL и libssl, вы можете попробовать снова установить ваш пакет:

sudo dpkg -i my_package_name_3.0.1.8_amd64.deb

Рекомендации

  • Избегайте установки пакетов Ubuntu, так как они могут быть несовместимы с Debian и вызвать дополнительные проблемы с зависимостями.
  • Используйте aptitude вместо apt-get, так как он более эффективно управляет зависимостями.

Следуя данным шагам, вы должны успешно обновить OpenSSL до необходимой версии, не нарушая работу своей системы.

Оцените материал
Добавить комментарий

Капча загружается...