【问题标题】:LoadError: MySQL2 gem issue with incorrect libmysqlclient.so.20 version on Ubuntu LTS 20.04LoadError:MySQL2 gem 问题,Ubuntu LTS 20.04 上的 libmysqlclient.so.20 版本不正确
【发布时间】:2021-01-19 10:05:33
【问题描述】:

自从升级到 Ubuntu LTS 20.04(从 LTS 18)以来,我一直在使用更新版本的 MySQL(从 v5.7.3 到 8.0.16)。所有数据库和配置都已成功更新,但 MySQL2 gem 坚持尝试针对较旧版本的 libmysqlclient(libmysqlclient.so.20 而不是较新的 libmysqlclient.so.21)进行构建

我已经卸载并重新安装了 APT 包:mysql-server 和 libmysqlclient-dev,以及卸载并重新安装 MySQL2 gem,但没有任何效果。

正如您从下面的数据中看到的那样,它的链接似乎仍然不正确,我找不到让它链接到正确版本的方法。非常感谢任何帮助。

$ gem list mysql2

*** 本地宝石 ***

mysql2 (0.5.3)

$ mysql -v -u *** -p 输入密码: 欢迎使用 MySQL 监视器。命令以 ; 结尾或\g。 您的 MySQL 连接 ID 是 14 服务器版本:8.0.21-0ubuntu0.20.04.4 (Ubuntu)

$ RAILS_ENV=生产包 exec rails c 回溯(最近一次通话最后): 1:来自/home///shared/bundle/ruby/2.6.0/gems/mysql2-0.5.3/lib/mysql2.rb:36:in <top (required)>' /home/rails/kwai/shared/bundle/ruby/2.6.0/gems/mysql2-0.5.3/lib/mysql2.rb:36:in require': libmysqlclient. so.20:无法打开共享对象文件:没有这样的文件或目录 - /home/rails/kwai/shared/bundle/ruby/2.6.0/gems/mysql2-0.5.3/lib/mysql2/mysql2.so(LoadError )

$ ldd mysql2.so linux-vdso.so.1 (0x00007fffa3b5e000) libruby.so.2.6 => /home/***/.rvm/rubies/ruby-2.6.3/lib/libruby.so.2.6 (0x00007f8d4c92d000) libmysqlclient.so.20 => 未找到 libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f8d4c902000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f8d4c710000) libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f8d4c6f4000) librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f8d4c6e9000) libgmp.so.10 => /usr/lib/x86_64-linux-gnu/libgmp.so.10 (0x00007f8d4c663000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f8d4c65d000) libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1 (0x00007f8d4c622000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f8d4c4d3000) /lib64/ld-linux-x86-64.so.2 (0x00007f8d4cecc000)

$ ls -l /usr/lib/x86_64-linux-gnu/libmy* -rw-r--r-- 1 根 9242056 8 月 4 日 12:39 /usr/lib/x86_64-linux-gnu/libmysqlclient.a lrwxrwxrwx 1 root root 20 Aug 4 12:39 /usr/lib/x86_64-linux-gnu/libmysqlclient.so -> libmysqlclient.so.21 lrwxrwxrwx 1 root root 25 Aug 4 12:39 /usr/lib/x86_64-linux-gnu/libmysqlclient.so.21 -> libmysqlclient.so.21.1.21 -rw-r--r-- 1 root root 7264264 8 月 4 日 12:39 /usr/lib/x86_64-linux-gnu/libmysqlclient.so.21.1.21

【问题讨论】:

    标签: mysql ruby-on-rails ruby linux ubuntu-20.04


    【解决方案1】:

    我删除了

    ./vendor/bundle/ruby/2.7.0/specifications/mysql2-0.5.3.gemspec
    ./vendor/bundle/ruby/2.7.0/gems/mysql2-0.5.3
    ./vendor/bundle/ruby/2.7.0/gems/mysql2-0.5.3/lib/mysql2
    

    而且它有效。谢谢

    【讨论】:

    • 很高兴听到这个消息!我花了很长时间才锻炼出来,但我很高兴听到它对其他人有所帮助。
    【解决方案2】:

    终于解决了。我不得不手动删除所有 builder 和 .rvm 文件夹中所有以前的 gems 副本,然后 gem 似乎可以正确编译,一切都恢复正常了。

    【讨论】:

      猜你喜欢
      • 2020-10-04
      • 2021-10-23
      • 2023-03-02
      • 2021-03-19
      • 2021-06-22
      • 1970-01-01
      • 1970-01-01
      • 2017-11-16
      • 2021-10-14
      相关资源
      最近更新 更多