未找到版本“CURL_OPENSSL_3”

未找到版本“CURL_OPENSSL_3”

我刚刚从 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' 未找到(/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)

不确定如何修复。

我尝试重新安装 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:~$

不确定是否相关。(我不知道如何做上述操作)

答案1

我删除了 libcurl4-openssl-dev 后就解决了这个问题:

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

并安装 libcurl 的先前版本:

sudo apt-get install libcurl3 -y

答案2

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

这是我让它再次工作的方法:

  • bundle exec gem pristine patron(就我而言,是 Patron Gems 导致了这个问题,但你应该能够做到这一点bundle exec gem pristine curb)。
  • sudo apt install libcurl4-gnutls-dev(安装 dev 包以便您可以编译使用 libcurl4 的代码)
  • bundle install(这将重建 patron/curb 并因此解决问题!)

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

答案3

2019 年解决(找不到 libcurl3 的安装候选项)转到:https://packages.ubuntu.com/search?keywords=libcurl3&searchon=names&suite=all§ion=all并安装 libcurl3

您可能还必须删除 libcurl4

apt-get remove libcurl4

并安装 libssl1.0.0:https://packages.ubuntu.com/search?keywords=libssl1.0.0&searchon=names&suite=all§ion=all

相关内容