14

I have just upgraded from Ubuntu 16.04 to 18.04. It seems to work fine (problems of AMD drivers fixed) though it seems the upgrade broke CURL that is used by my Ruby on Rails gem CURB.

When I start the Puma server I get this error :

/home/maxence/.rvm/gems/ruby-2.5.0/gems/activesupport-5.2.0/lib/active_support/dependencies.rb:283:in require': /usr/lib/x86_64-linux-gnu/libcurl.so.4: version CURL_OPENSSL_3' not found (required by /home/maxence/.rvm/gems/ruby-2.5.0/gems/curb-0.9.6/lib/curb_core.so) - /home/maxence/.rvm/gems/ruby-2.5.0/gems/curb-0.9.6/lib/curb_core.so (LoadError)

Not sure how to fix.

I tried to resintall Curl and also RVM (that seemed to be broken also) though no luck.

I am pretty sure it is a problem with the upgrade because on my Desktop computer I use same configuration and everything works fine ..

EDIT

When reinstalling RVM i got this message

Installation of RVM in /usr/share/rvm/ is almost complete:

  • First you need to add all users that will be using rvm to 'rvm' group, and logout - login again, anyone using rvm will be operating with umask u=rwx,g=rwx,o=rx.

  • To start using RVM you need to run source /etc/profile.d/rvm.sh in all your open shell windows, in rare cases you need to reopen all shell windows. * Please do NOT forget to add your users to the rvm group. The installer no longer auto-adds root or users to the rvm group. Admins must do this. Also, please note that group memberships are ONLY evaluated at login time. This means that users must log out then back in before group membership takes effect! maxence@maxence-XPS-15-9560:~$

Not sure if related. (I don't know how to do the above)

3
  • 2
    Try install ruby-curb: apt install ruby-curb
    – metallic
    Oct 26, 2018 at 22:30
  • Thank you. It seems to work now. (I still get the "path" message from rvm but well.. Puma boots ..)
    – Maxence
    Oct 26, 2018 at 23:01
  • OK. rvm path error has disappeard now ..The error doesn't show when rvm listis done inside Rails app folder.. well.. I think your install has done something
    – Maxence
    Oct 26, 2018 at 23:06

3 Answers 3

22

I solved it removing my libcurl4-openssl-dev:

sudo apt-get remove --auto-remove libcurl4-openssl-dev

And installing the previus version of libcurl:

sudo apt-get install libcurl3 -y
2
  • This doesn't seem to work for me, it just says "Note, selecting 'libcurl4-openssl-dev' instead of 'libcurl3-dev'"
    – jrh
    Apr 23, 2020 at 2:19
  • Error on ubuntu 20: E: Package 'libcurl3' has no installation candidate
    – JRichardsz
    Nov 20, 2022 at 23:42
4

I had a similar issue after update to 18.04. Although I was using a different ruby gem (patron) the issue was probably the same: the C library bindings had been compiled with an older version of libcurl, and were therefore asking for versions that no longer exist. So, to get it to work, you need to force the gem to be rebuilt.

This is what I did to get it working again:

  • bundle exec gem pristine patron (In my case it was the patron gem that was causing the issue, but you should be able to do bundle exec gem pristine curb).
  • sudo apt install libcurl4-gnutls-dev (Install dev package so that you can compile code that uses libcurl4)
  • bundle install (This will rebuild patron/curb and therefore fix the problem!)

Once those steps are done you can re-run your code and it should work now!

1
  • This was an issue for me since I am using Phusion Passenger which requires libcurl4 and this worked for me. I removed the gem with gem uninstall curb, installed libcurl4 with sudo apt install libcurl4-openssl-dev, and then ran bundle install. Apr 6, 2020 at 23:28
3

Solving in 2019 (can't find installation candidate for libcurl3) Go to: https://packages.ubuntu.com/search?keywords=libcurl3&searchon=names&suite=all&section=all and install libcurl3

Also you may have to remove libcurl4

apt-get remove libcurl4

and install libssl1.0.0 :https://packages.ubuntu.com/search?keywords=libssl1.0.0&searchon=names&suite=all&section=all

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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