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 jessie:
# 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
。然后我编辑 my来/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 而没有其他。关于我还能做什么的任何提示?
更新:
我从 ubuntu 下载了 openssl_1.0.2g-1ubuntu4.13_amd64.deb 并尝试了以下操作:
# 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?我现在很困惑......哈哈
更新2:
我删除了 libssl apt-get remove libssl1.0.0
,下载并安装了 ubuntu 1.0.2g 软件包(i386 和 amd64,否则它会抱怨;我从 pgks.org 下载它们,找不到更“官方”的源:( ),我终于可以安装my_package_name
但我确信我的系统现在一团糟,我会保留这个问题,直到有人提供一个简单直接的、不会扰乱系统的解决方案(如果可能的话)。根本...:/
答案1
您的错误消息包含以下内容
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,您的错误消息的同一部分就会有所不同。
答案2
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
没有帮助的原因。如果你没有升级到stretch,那么你可以libssl1.0.0
从jessie-backports中提取v1.0.2l,它恰好与v1.0.2g二进制兼容并且> 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
版本 >= 1.0.2g,但 1.0.1t < 1.0.2g。
最重要的是,Forticlient 并不是为在 Debian 上工作而设计的,所以让它工作起来会很困难。
答案3
对于这个特殊情况,我同意 dsstorefile1 的评论。
“你不能混合使用 Ubuntu 和 Debian 软件包。好吧,你可以,但最终你会得到一个损坏的操作系统,因为这两个软件包不兼容。”
对于常见用途,您可以使用 aptitude 而不是 apt-get,因为 aptitude 检查依赖性。
答案4
一个简单直接的非黑客解决方案,不会扰乱系统。如果可能的话...:/
命令至使用向后移植升级 openssl 是
sudo apt -t jessie-backports install openssl