1

TL;DR: I'm trying to install a package that needs libssl 1.0.2 or greater but can't:

# 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

Long story of what I tried:

I had 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

And my openssl is 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

I need to upgrade libssl (which I understand is part of openssl?) to 1.0.2 or higher. I ran an apt-get update && apt-get upgrade and I'm still at 1.0.1. I also tried:

# 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

After reading around, I decided to upgrade my system. I ran apt-get dist-upgrade. Then I edited my /etc/apt/source.list to replace jessie for stretch. Re-ran apt-get update && apt-get upgrade && apt-get dist-upgrade. It seems like everything is fine now:

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

And now I have 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

But I still can't install my package, even though it seems that my system now has libssl 1.0.1, 1.0.2 and 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

And when I try to install my package I get exactly the same error as before, as if dpkg only sees 1.0.1 and nothing else. Any hints on what else I can do?

UPDATE:

I downloaded openssl_1.0.2g-1ubuntu4.13_amd64.deb from ubuntu and tried this:

# 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

So ok, it's official, this makes no sense and I have no idea what do to. It's telling me that the openssl 1.0.2g that I'm trying to install depends on 1.0.2g and that's why I can't install it since I have 1.0.1? I'm sooo confused right now.... lol

UPDATE 2:

I removed libssl apt-get remove libssl1.0.0, downloaded and installed the ubuntu 1.0.2g packages (both i386 and amd64, otherwise it would complain; I downloaded them from pgks.org, couldn't find a more "official" source :( ) and I could finally install my_package_name. But I'm sure my system is all messed up right now, I'll check. I'll leave this question open until someone provides a simple straightforward non-hacky solution that doesn't mess up with one's system. If that's possible at all... :/

  • You can't mix Ubuntu and Debian packages. Well, you could, but you'd eventually end up with a broken OS since packages from the two are incompatible. – dsstorefile1 Aug 23 '18 at 4:16
  • Also, Forticlient doesn't support Debian: forticlient.com/downloads – dsstorefile1 Aug 23 '18 at 4:19
  • I don't want to mix Ubuntu and debian, that's why I said I want a solution that doesn't mess up with the system. Got any suggestions? :) – msb Aug 23 '18 at 4:42
  • Yep, see below for a Debian-only solution. – dsstorefile1 Aug 23 '18 at 8:44
0

Your error message includes the following 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.

The important part of the message is 1.0.2g and that it is finding 1.0.1t. You need the exact version 1.0.2g, as that is the version that your package is depending on. It does not appear that the package allows higher versions such as 1.0.2l nor lower versions such as 1.0.2d.

Also note that your package manager may allow multiple side-by-side installations to different base directories. You may want to try removing the versions that are not required for this package (note: you would need to ensure that no other packages depend on those versions before removing them)

Try apt-get install openssl=1.0.2g

I'd bet that that same part of your error message is different now that the OS was upgraded to Stretch.

  • Thanks for the reply. apt-get install openssl=1.0.2g yields the same error as apt-get install openssl=1.0.2: which is E: Version '1.0.2g' for 'openssl' was not found. :( And no, the error message is not different, it's exactly the same, that's why I didn't bother to copy-paste again ;-$ 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. (here freshly copy-pasted from a new attempt) :( – msb Aug 23 '18 at 0:19
  • 1
    Based on your updated OP, I would say that libssl and openssl are different packages, and so no amount of messing around with openssl installs is going to get your package working when it is asking for libssl. – Speeddymon Aug 23 '18 at 17:20
  • yeah, I figured that out, but it took me a while. :( I was thinking that openssl was the one providing libssl, I don't remember which commands led me to that wrong conclusion. :-/ oh well, now I know. lol :$ – msb Aug 23 '18 at 18:09
0

TL,DR: The OpenSSL package you need in is jessie-backports. However, downgrading Debian is unsupported.


Observe this line from dpkg:

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

The package you're trying to install depends on a package with the exact name of "libssl1.0.0", which is why installing libssl1.0.2 doesn't help. If you hadn't upgraded to stretch, then you could have pulled libssl1.0.0 v1.0.2l from jessie-backports which happens to both be binary compatible with and > v1.0.2g due to the OpenSSL versioning scheme.

By the way, you can't expect jessie-backports to work on stretch without problems.


From your first update:

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

Note that openssl and libssl are two different packages, and the package you're trying to install depends on the latter. The Ubuntu openssl package you tried to install wants the libssl1.0.0 version to be >= 1.0.2g, but 1.0.1t < 1.0.2g.


The bottom line is, Forticlient isn't designed to work on Debian, so getting it to work is going to be hacky.

  • 1
    Thanks for the suggestion. I believe I tried doing that, I remember adding jessie-backports and trying to update with no success, before upgrading to stretch. I still have another system with jessie that I need to do the same thing, I'll try again and let you know. – msb Aug 23 '18 at 18:03
0

For this special case I agree with comment made by dsstorefile1.

"You can't mix Ubuntu and Debian packages. Well, you could, but you'd eventually end up with a broken OS since packages from the two are incompatible."

And for common use, you may use aptitude instead of apt-get because aptitude checks for dependancies.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.