首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何解决在ubuntu20.04上使用ruby2.7.4的“不兼容库版本”问题?

如何解决在ubuntu20.04上使用ruby2.7.4的“不兼容库版本”问题?
EN

Stack Overflow用户
提问于 2021-08-03 15:54:56
回答 1查看 887关注 0票数 0

你好这是我的第一个问题。我正试图在我的服务器上建立一个红地雷系统,但也面临一些问题。

我的系统- ubuntu20.04 + nginx1.18 +maradb10.3.30+ ruby2.7.4 +redbre-4.2.2/使用rbenv安装ruby

当我试图连接红矿服务器时,我得到了这个错误

代码语言:javascript
复制
App 716658 output: Error: The application encountered the following error: libruby.so.2.7: cannot open shared object file: No such file or directory - /opt/redmine/vendor/cache/ruby/2.7.0/gems/mysql2-0.5.3/lib/mysql2/mysql2.so (LoadError)

所以我做了cd /usr/lib

ln -s /root/.rbenv/versions/2.7.4/lib/libruby.so.2.7 libruby.so.2.7

然后发生不兼容的库版本错误。

代码语言:javascript
复制
App 722799 output: Error: The application encountered the following error: incompatible library version - /opt/redmine/vendor/cache/ruby/2.7.0/gems/mysql2-0.5.3/lib/mysql2/mysql2.so (LoadError)

我试过gem pristine --all,但没有起作用。

我该如何解决这个问题?发生了这么多错误,所以我想我的设置有一个问题。

gem env

代码语言:javascript
复制
 - RUBYGEMS VERSION: 3.2.25
 - RUBY VERSION: 2.7.4 (2021-07-07 patchlevel 191) [x86_64-linux]
 - INSTALLATION DIRECTORY: /root/.rbenv/versions/2.7.4/lib/ruby/gems/2.7.0
 - USER INSTALLATION DIRECTORY: /root/.gem/ruby/2.7.0
 - RUBY EXECUTABLE: /root/.rbenv/versions/2.7.4/bin/ruby
 - GIT EXECUTABLE: /usr/bin/git
 - EXECUTABLE DIRECTORY: /root/.rbenv/versions/2.7.4/bin
 - SPEC CACHE DIRECTORY: /root/.gem/specs
 - SYSTEM CONFIGURATION DIRECTORY: /root/.rbenv/versions/2.7.4/etc
 - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-linux
 - GEM PATHS:
    - /root/.rbenv/versions/2.7.4/lib/ruby/gems/2.7.0
    - /root/.gem/ruby/2.7.0
 - GEM CONFIGURATION:
    - :update_sources => true
    - :verbose => true
    - :backtrace => false
    - :bulk_threshold => 1000
 - REMOTE SOURCES:
    - https://rubygems.org/
 - SHELL PATH:
    - /root/.rbenv/versions/2.7.4/bin
    - /root/.rbenv/libexec
    - /root/.rbenv/plugins/ruby-build/bin
    - /root/.rbenv/shims
    - /root/.rbenv/bin
    - /usr/local/sbin
    - /usr/local/bin
    - /usr/sbin
    - /usr/bin
    - /sbin
    - /bin
    - /usr/games
    - /usr/local/games
    - /snap/bin

丛env

代码语言:javascript
复制
Bundler       2.2.25
  Platforms   ruby, x86_64-linux
Ruby          2.7.4p191 (2021-07-07 revision a21a3b7d23704a01d34bd79d09dc37897e00922a) [x86_64-linux]
  Full Path   /root/.rbenv/versions/2.7.4/bin/ruby
  Config Dir  /root/.rbenv/versions/2.7.4/etc
RubyGems      3.2.25
  Gem Home    /root/.rbenv/versions/2.7.4/lib/ruby/gems/2.7.0
  Gem Path    /root/.gem/ruby/2.7.0:/root/.rbenv/versions/2.7.4/lib/ruby/gems/2.7.0
  User Home   /root
  User Path   /root/.gem/ruby/2.7.0
  Bin Dir     /root/.rbenv/versions/2.7.4/bin
Tools         
  Git         2.25.1
  RVM         not installed
  rbenv       rbenv 1.1.2-61-g585ed84
  chruby      not installed

Bundler构建元数据

代码语言:javascript
复制
Built At          2021-07-30
Git SHA           7f0f257c7a
Released Version  true
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-03 16:13:09

您似乎已经配置了bundler ( Ruby的一个创业板版本管理器),将Redmine的gems安装在与通常的系统gems不同的位置,即/opt/redmine/vendor/cache

因此,通常的gem命令不会触及那些安装在绑定程序中的宝石,因为gem不知道它们。要重新安装所有邦德勒托管的gems,您可以在您的Redmine目录(i/e/包含Gemfile的目录)中运行以下命令

代码语言:javascript
复制
bundle pristine

这实际上与gem pristine --all相同,但只适用于绑定程序管理的宝石。详情请参见文献资料

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68639242

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档