How to have both libcurl3 and libcurl4 installed at same time?

My favorite web brower depends on libcurl3 (Opera 36.0) But many apps depends on libcurl4 including PlayOnLinux or Steam client. It will be nice to have PlayOnLinux or Steam installed but I'm not giving up my favorite web browser. Do someone knows workaround how I can have installed both of them ? I readed somewhere that libcurl4 is based on libcurl3 so I have no idea why they keep uninstalling each other.


Solution 1:

Eventually, I found better, universal solution for this. A guy on internet created CURL version which supports both CURL3 and CURL4. Available via. PPA. So far it works good. Unfortunately, I'm sure this version of CURL is not well known despite it solves problem which is very common to all Ubuntu users. So, I have to ask to share this knowledge in any form you like or prefer

https://launchpad.net/~xapienz/+archive/ubuntu/curl34

Edit: If you're unable to install this because the Ubuntu canonical version takes priority, first check the version numbers like this:

$ apt-cache policy libcurl4
libcurl4:
  Installed: 7.68.0-1ubuntu2.7
  Candidate: 7.68.0-1ubuntu2.7
  Version table:
 *** 7.68.0-1ubuntu2.7 500
        500 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages
        500 http://us.archive.ubuntu.com/ubuntu focal-security/main amd64 Packages
        100 /var/lib/dpkg/status
     7.68.0-1ubuntu2.5ppa1 500
        500 http://ppa.launchpad.net/xapienz/curl34/ubuntu focal/main amd64 Packages
     7.68.0-1ubuntu2 500
        500 http://us.archive.ubuntu.com/ubuntu focal/main amd64 Packages

Then install the specific version like this:

$ sudo apt install libcurl4=7.68.0-1ubuntu2.5ppa1

Solution 2:

Looks like I totally over-brained it. I performed several steps and it works ! Thank you @guiverc , your "This is an alternative" brinks me idea of forcing program to accept libcurl3 or libcurl4

  1. Open terminal in temporary folder. Use dpkg-deb -x /path/to/deb/file .
  2. Open control.tar.gz. Navigate to ./control
  3. Change line with dependency from libcurl3 to libcurl3 | libcurl4
  4. Run dpkg-deb -b . name-of-new-deb-file.deb
  5. Now run dpkg-deb -e path-to-deb-file-crated-in-step-4
  6. Package get installed using temporary folder as root folder.
  7. Create pentagram from small red colored stones. At full moon, sacrifice a goat with 666 stabs with knife while screaming "SUDO" at moon.
  8. Launch file browser as root and copy all folders and files from temporary folder to real folders (temporary_folder/usr to /usr,temporary_folder/bin to /bin .etc)
  9. All done, programm is installed.

I'm sure one of steps is not necessary but I don't know which one.