mariadb 容器化Rails应用程序找不到某些库

xn1cxnb4  于 2022-11-08  发布在  其他
关注(0)|答案(1)|浏览(124)

我最近在alpine 14容器中升级了一个Rails应用程序到6.1,其中ruby 3.0.1编译并安装了所有必需的gem,但它无法启动:
LoadError: Error loading shared library libmariadb.so.3: No such file or directory (needed by /usr/local/bundle/gems/mysql2-0.5.3/lib/mysql2/mysql2.so) - /usr/local/bundle/gems/mysql2-0.5.3/lib/mysql2/mysql2.so
完整的错误文本:

site                     | LoadError: Error loading shared library libmariadb.so.3: No such file or directory (needed by /usr/local/bundle/gems/mysql2-0.5.3/lib/mysql2/mysql2.so) - /usr/local/bundle/gems/mysql2-0.5.3/lib/mysql2/mysql2.so
site                     | /usr/local/bundle/gems/bootsnap-1.7.5/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require'
site                     | /usr/local/bundle/gems/bootsnap-1.7.5/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi'
site                     | /usr/local/bundle/gems/bootsnap-1.7.5/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register'
site                     | /usr/local/bundle/gems/bootsnap-1.7.5/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi'
site                     | /usr/local/bundle/gems/bootsnap-1.7.5/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:31:in `require'
site                     | /usr/local/bundle/gems/activesupport-6.1.4/lib/active_support/dependencies.rb:332:in `block in require'
site                     | /usr/local/bundle/gems/activesupport-6.1.4/lib/active_support/dependencies.rb:299:in `load_dependency'
site                     | /usr/local/bundle/gems/activesupport-6.1.4/lib/active_support/dependencies.rb:332:in `require'
site                     | /usr/local/bundle/gems/mysql2-0.5.3/lib/mysql2.rb:36:in `<main>'
site                     | /usr/local/bundle/gems/bootsnap-1.7.5/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require'
site                     | /usr/local/bundle/gems/bootsnap-1.7.5/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi'
site                     | /usr/local/bundle/gems/bootsnap-1.7.5/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register'
site                     | /usr/local/bundle/gems/bootsnap-1.7.5/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi'
site                     | /usr/local/bundle/gems/bootsnap-1.7.5/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:31:in `require'
site                     | /app/config/application.rb:5:in `<top (required)>'
site                     | /app/Rakefile:4:in `require_relative'
site                     | /app/Rakefile:4:in `<top (required)>'
site                     | /usr/local/bin/bundle:23:in `load'
site                     | /usr/local/bin/bundle:23:in `<main>'
site                     | (See full trace by running task with --trace)
site                     | rake aborted!

我不知道它到底想装什么,从哪里装。
我已经将libmariadb.so.3(来自mariadb-connector-c)安装到/usr/lib中,并且还链接到/usr/local/lib。
/usr/local/bundle/gems/mysql 2 -0.5.3/lib/mysql 2/mysql2.so也在那里。
我在启动之前没有删除任何软件包或gem,并且在包安装过程中没有错误。
我做错了什么?

eqfvzcg8

eqfvzcg81#

我想我可以通过

apk add mariadb-dev

希望这对其他人有帮助!

相关问题