11

I am trying to install this dependency but keep getting this error message:

This is what I put in the terminal:

sudo apt install libssl1.1

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
E: Unable to locate package libssl1.1
E: Couldn't find any package by glob 'libssl1.1'

How to get libssl1.1

I am very new to Linux so I have no idea if this is an obvious question.

I am using Ubuntu 22.04 LTS

Artur Meinild
  • 26,018
Some Guy
  • 129
  • why do you need libssl1.1 ? – Esther May 11 '22 at 16:43
  • im simply following this tutorial to convert the davinci installer into a debian https://www.youtube.com/watch?v=NSfZ1nn0cdA&t=243s – Some Guy May 11 '22 at 16:47
  • 1
    libssl1.1 is obsolete. – Pilot6 May 11 '22 at 16:49
  • 1
    Why would you want to convert it? Why not ask or search for an answer on how to install davinci on Ubuntu? – Pilot6 May 11 '22 at 16:50
  • something like this perhaps https://www.danieltufvesson.com/makeresolvedeb ? – Esther May 11 '22 at 16:51
  • i have no idea man, i tried the pdf instructions and it was a dead end so I search youtube then I got this problem and here i am in this forum, probably should head straight into this forum. As I said I am new and confused to all these linux stuff – Some Guy May 11 '22 at 16:53
  • 22.04 is using libssl3. However to give the other comments a use case: I am trying to install an application which hasn't yet updated to libssl3 and support for the app seems limited or slow. It's a critical application for me, so I very much need to have libssl1.1 available for this legacy app. Therefore I have the same question and a quick search brought me here. – David Parks Jun 01 '22 at 04:32
  • 10
    You need to understand that libssl1.1 is no longer used in Ubuntu 22.04. So you have some options: 1) Either understand what you're doing, and make things work with libssl3 or 2) Run your legacy app in a container or VM using on older version of Ubuntu (e.g. 20.04) that has libssl1.1. Mixing libssl1.1 into Ubuntu 22.04 is a very bad idea. – Artur Meinild Jun 02 '22 at 07:04
  • @ArturMeinild that's a solid answer, you should post it as such, not just as a comment. Assuming your confident in the assertion that there's no good option to mix it. The container/VM solution is a good option (albeit annoying for my case which requires I also tweak network routes manually to make the container solution work). If there's a good way to install libssl1.1 and set an environment which updates paths to libssl1.1 that would be easier for the legacy apps. Breaking open the legacy app would be orders of magnitudes harder than the container approach, but both are distasteful. – David Parks Jun 02 '22 at 16:19
  • try this tutorial from Blackmagic Forum, i think you need to installlibssl-dev. this worked to me. – abu-ahmed al-khatiri Jun 07 '22 at 17:03
  • This resolved the problem to me. https://gist.github.com/joulgs/c8a85bb462f48ffc2044dd878ecaa786 – Pedro Braude Aug 10 '23 at 14:36

4 Answers4

16

Ubuntu 22.04 uses libssl3, and thus libssl1.1 is deprecated at this point.

Creating a new package for Ubuntu 22.04 that uses an obsolete libssl version seems like a very bad idea. Also, messing with versions for systemwide libraries like libssl is a similarly a very bad idea, which may have unpredictable consequences in the future.

So one option is that if you will continue to use Ubuntu 22.04, you should convert into using libssl3 for your apps.

Another option is to run legacy apps inside a VM or container, where you could install an older version of Ubuntu (e.g. 20.04) that has libssl1.1 installed.

These two options seem to be the most viable paths to take in your situation.

Artur Meinild
  • 26,018
  • ok arthur understood. however unfortunately already installed it this morning before seeing your message. so it is now on my 22.04 system. and it seems neither apt, dpkg or aptitude doesnt want to remove it (at least not without removing many other packages) – Dreamcat4 Aug 18 '22 at 08:39
  • ok i was able to remove just that 1 pkg (libssl1.1) using dpkg. however apt complains on about a dozen pkgs saying for example, Depends: libssl1.1 (>= 1.1.1) but it is not installable, while libssl3 remains installed and present on the system this whole time... like it does not notice it's there as an alternative – Dreamcat4 Aug 18 '22 at 08:51
  • well in the absence of any clear way to fix apt / dpkg database (or whatever broken state it is now put in, merely by installing the libssl1.1)... i am just going to reimage my entire drive from a backup. seems harsh, but is a very simple way to get out of this predicament given that (by happenstance) had just recently imaged the drive only yesterday. it still is a great question though... how to recover from this sorts of breakage (without uninstalling 700 essential pkgs!). hehe – Dreamcat4 Aug 18 '22 at 10:10
4

Although I think the advice given by Artur is good. I managed to resolve this for a legacy app (specifically easytether-usb) by grabbing libcrypto.so.1.1 from the 1.1 install as referenced by @Nishant in his answer. I installed that in user space under my home directory and created a sym link to it in /lib/libcrypto.so.1.1:

sudo ln -s ~/openssl/lib/libcrypto.so.1.1 /lib/libcrypto.so.1.1

You can normally add ~/openss/lib to the LD_LIBRARY_PATH for the specific application in question, but in my case the leacy app didn't properly look in $LD_LIBRARY_PATH, so I had to find out where it was looking for libcrypto.so.1.1, I did that with the following:

sudo strace -e trace=open,openat,close,read,write,connect,accept easytether-usb

That showed me a dozen or so attempts to find the file libcrypto.so.1.1 in various locations, which is why I knew to add the sym link to /lib/ above.

After that the legacy app fired up and worked like normal. Other uses cases will likely need other shared libraries. the strace command above should help determine what's needed.

David Parks
  • 2,516
2

https://packages.ubuntu.com/bionic/amd64/libssl1.1/download

here you go! use this link if you want to download libss.

  • 2
    Just installing libssl1.1 from the Bionic repo might have unpredictable consquences in the long term. – Artur Meinild Jun 07 '22 at 14:02
  • 2
    In addition, installing a package like libssl1.1 manually, which will then get no automatic security updates (and furthermore will receive no more updates in less than a year from now) seems like an extremely big security risk - remember Heartbleed? – Artur Meinild Jun 07 '22 at 14:25
  • 2
    This is a very useful reference. You can put libssl1.1 somewhere in user space and manually reference the shared libraries for a specific legacy app, as I've detailed in my answer which builds on this reference. Security risk yes, but for a legacy app there aren't a lot of better options. The warning is well heeded though. – David Parks Jun 07 '22 at 15:09
-2

One way I recommend doing it is putting focal repository into 22.04 LTS sources.list. You just have to copy the main, universe and multiverse lines and replace jelly with focal.

Then do a sudo apt update it will also update from focal repository and then you can instal precompiled libssl1.1 from focal repo. Be sure though to comment it later as it might bring conflicts with packages later.

RickyLo
  • 39