我刚刚从 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: versionCURL_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)
小智 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(这将重建顾客/路缘,从而解决问题!)完成这些步骤后,您可以重新运行代码,它现在应该可以工作了!