我刚刚从 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