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.

6 Answers 6


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


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
  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
  • please share the complete installation procedure. the one from the link fails to install with many problems: missing or wrong key, no such source and unable to locate package Sep 8, 2019 at 12:39
  • @Oleg Kokorin I just added PPA and then used apt-get install curl. I was using Ubuntu 18.04 and I'm sure dropping x32 support broke it. Dropping x32 support is also what made me switch to LMDE from ubuntu
    – Jacob
    Sep 8, 2019 at 20:27
  • 1
    Adding ppa and updating the system worked for me! Sep 3, 2020 at 7:15

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.


This is an alternative that means your reason, whilst not really including libcurl3 & libcurl4 in your system at the same time.

I would suggest having libcurl4 in your system for your main apps, in the hopes that it provides better security, and adding the Opera browser as a snap


Snaps contain their required libs inside the snap itself (ie. self contained), thus avoiding the issue you were asking about. Thus libcurl3 will be contained within the snap containing your opera browser, and not impact any other software requiring libcurl4. It's a quick work-around :)

  • Can I convert any .deb to the snap ? I'd like to have Opera version 36 because it is last version what is not filled with useless crap.
    – Jacob
    Aug 1, 2018 at 17:12
  • convert? not via a program that I'm aware of. Snaps are built, and you can of course build a snap from a .deb (or any source) but its not really a conversion. (docs.snapcraft.io/build-snaps)
    – guiverc
    Aug 1, 2018 at 23:26

The solution suggested by Jacob worked for me -thank you very much- and would be the ultimate one if you don't want to spend more time on the described issue.

Part of the story : I had to re-install R packages on Ubuntu Bionic requiring a new curl configuration, after a faulty Ubuntu update. If you get a message like

/usr/lib/x86_64-linux-gnu/libcurl.so.4: version `CURL_OPENSSL_3' not found

from your R terminal, follow this solution.

Commands :

sudo add-apt-repository ppa:xapienz/curl34
sudo apt-get update

As @vsnicolas answered, I had this issue when upgrading from 2018.04 to 2020.04.

For R, I also had to reinstall curl

sudo add-apt-repository ppa:xapienz/curl34
sudo apt-get update

then in R


I followed Jacobs answer. I am using the deb file (Brackets.Release. on Ubuntu 20.04; but I had a problem at step 2. I assume some change to the way things work...

I preferred this method to installing a merged curl3/4 package - as I'd rather stick with curl4 (and risk the app not being 100%), but it seems ok.

Here are the steps that worked for me :

  1. Open terminal in temporary folder. Use :

    dpkg-deb -x /path/to/deb/file .

    dpkg-deb -e Brackets.Release.

  2. Edit the control file : ./DEBIAN/control

  3. Change line with dependency from libcurl3 to libcurl3 | libcurl4

  4. I deleted the original deb file - I am not sure I needed to?

  5. Run : dpkg-deb -b . Bracket_CURL4.deb

  6. Launch file browser and double click on the created deb file to launch the install.

  7. All done, Brackets program is installed.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .