未找到版本“CURL_OPENSSL_3”

Max*_*nce 12 18.04

我刚刚从 Ubuntu 16.04 升级到 18.04。它似乎工作正常(修复了 AMD 驱动程序的问题),尽管升级似乎破坏了我的 Ruby on Rails gem CURB 使用的 CURL。

当我启动 Puma 服务器时,出现此错误:

/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(/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(加载错误)

不知道如何修复。

我试图重新安装 Curl 和 RVM(似乎也坏了),但没有运气。

我很确定这是升级的问题,因为在我的台式计算机上我使用相同的配置并且一切正常..

编辑

重新安装 RVM 时,我收到此消息

在 /usr/share/rvm/ 中的 RVM 安装基本完成:

  • 首先,您需要将所有将使用 rvm 的用户添加到“rvm”组,然后注销 - 再次登录,任何使用 rvm 的人都将使用umask u=rwx,g=rwx,o=rx.

  • 要开始使用 RVM,您需要source /etc/profile.d/rvm.sh 在所有打开的 shell 窗口中运行,在极少数情况下您需要重新打开所有 shell 窗口。* 请不要忘记将您的用户添加到 rvm 组。安装程序不再自动将 root 或用户添加到 rvm 组。管理员必须这样做。另请注意,组成员身份仅在登录时进行评估。这意味着用户必须先注销然后重新登录,然后组成员身份才能生效!maxence@maxence-XPS-15-9560:~$

不确定是否相关。(我不知道怎么做上面的)

小智 19

我解决了它删除我的 libcurl4-openssl-dev:

sudo apt-get remove --auto-remove libcurl4-openssl-dev
Run Code Online (Sandbox Code Playgroud)

并安装 libcurl 的先前版本:

sudo apt-get install libcurl3 -y
Run Code Online (Sandbox Code Playgroud)

  • ubuntu 20 上出现错误:E:软件包“libcurl3”没有安装候选者 (2认同)

小智 4

更新到18.04后我也遇到了类似的问题。虽然我使用的是不同的 ruby​​ gem ( patron),但问题可能是相同的:C 库绑定是使用旧版本的 libcurl 编译的,因此要求不再存在的版本。因此,要使其正常工作,您需要强制重建 gem。

这就是我为了让它再次工作而所做的:

  • bundle exec gem pristine patron(就我而言,是守护神宝石引起了问题,但您应该能够做到bundle exec gem pristine curb)。
  • sudo apt install libcurl4-gnutls-dev(安装开发包,以便可以编译使用libcurl4的代码)
  • bundle install(这将重建顾客/路缘,从而解决问题!)

完成这些步骤后,您可以重新运行代码,它现在应该可以工作了!