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

TL; DR: я пытаюсь установить пакет, который требует libssl 1.0.2 или выше, но не может:

# dpkg -i my_package_name_3.0.1.8_amd64.deb Selecting previously unselected package my_package_name. (Reading database ... 266120 files and directories currently installed.) Preparing to unpack my_package_name_3.0.1.8_amd64.deb ... Unpacking my_package_name (3.0.1.8) ... dpkg: dependency problems prevent configuration of my_package_name: my_package_name depends on libssl1.0.0 (>= 1.0.2g); however: Version of libssl1.0.0:amd64 on system is 1.0.1t-1+deb8u9. dpkg: error processing package my_package_name (--install): dependency problems - leaving unconfigured Processing triggers for desktop-file-utils (0.23-1) ... Processing triggers for mime-support (3.60) ... Processing triggers for hicolor-icon-theme (0.15-1) ... Errors were encountered while processing: my_package_name 

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

У меня была Debian Джесси:

 # lsb_release -a No LSB modules are available. Distributor ID: Debian Description: Debian GNU/Linux 8.11 (jessie) Release: 8.11 Codename: 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' Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name Version Architecture Description +++-=====================================================-===============================-===============================-=============================================================================================================== ii openssl 1.0.1t-1+deb8u9 amd64 Secure Sockets Layer toolkit - cryptographic utility 

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

 # apt-get install openssl=1.0.2 Reading package lists... Done Building dependency tree Reading state information... Done E: Version '1.0.2' for 'openssl' was not found 

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

 # lsb_release -a No LSB modules are available. Distributor ID: Debian Description: Debian GNU/Linux 9.5 (stretch) Release: 9.5 Codename: stretch 

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

 # dpkg -l 'openssl' Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name Version Architecture Description +++-=====================================================-===============================-===============================-=============================================================================================================== ii openssl 1.1.0f-3+deb9u2 amd64 Secure Sockets Layer toolkit - cryptographic utility 

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

 # apt-cache policy libssl1.0.0 libssl1.0.0: Installed: 1.0.1t-1+deb8u9 Candidate: 1.0.1t-1+deb8u9 Version table: *** 1.0.1t-1+deb8u9 100 100 /var/lib/dpkg/status # apt-cache policy libssl1.0.2 libssl1.0.2: Installed: 1.0.2l-2+deb9u3 Candidate: 1.0.2l-2+deb9u3 Version table: *** 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: Installed: 1.1.0f-3+deb9u2 Candidate: 1.1.0f-3+deb9u2 Version table: *** 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: warning: downgrading openssl from 1.1.0f-3+deb9u2 to 1.0.2g-1ubuntu4.13 (Reading database ... 266120 files and directories currently installed.) Preparing to unpack openssl_1.0.2g-1ubuntu4.13_amd64.deb ... Unpacking openssl (1.0.2g-1ubuntu4.13) over (1.1.0f-3+deb9u2) ... dpkg: dependency problems prevent configuration of openssl: openssl depends on libssl1.0.0 (>= 1.0.2g); however: Version of libssl1.0.0:amd64 on system is 1.0.1t-1+deb8u9. dpkg: error processing package openssl (--install): dependency problems - leaving unconfigured Processing triggers for man-db (2.7.6.1-2) ... Errors were encountered while processing: 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 depends on libssl1.0.0 (>= 1.0.2g); however: Version of libssl1.0.0:amd64 on system is 1.0.1t-1+deb8u9. my_package_name depends on libssl1.0.0 (>= 1.0.2g); however: Version of libssl1.0.0:amd64 on system is 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.

TL, DR: пакет OpenSSL, в котором вы нуждаетесь, это jessie-backports. Однако понижение версии Debian не поддерживается .


Посмотрите на эту строку из dpkg :

 my_package_name depends on libssl1.0.0 (>= 1.0.2g); however: 

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

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


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

 openssl depends on libssl1.0.0 (>= 1.0.2g); however: version of libssl1.0.0:amd64 on system is 1.0.1t-1+deb8u9. 

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


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

Для этого особого случая я согласен с комментарием dsstorefile1.

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

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