libmysqlclient_r.so.16:无法打开共享对象文件:没有这样的文件或目录DREAMHOST

时间:2014-10-27 06:52:50

标签: ruby-on-rails ruby rubygems mysql2 dreamhost

我在DREAMHOST上部署了一个RoR应用程序。以下是当前正在运行的版本

  • Ruby:ruby 1.8.7(2011-06-30 patchlevel 352)[x86_64-linux]
  • Rails:Rails 3.2.3

我尝试加载主页时的错误如下:

libmysqlclient_r.so.16: cannot open shared object file: No such file or directory - /gems/ruby/1.8/gems/mysql2-0.3.13/lib/mysql2/mysql2.so (LoadError)
/gems/ruby/1.8/gems/mysql2-0.3.13/lib/mysql2/mysql2.so
/gems/ruby/1.8/gems/mysql2-0.3.13/lib/mysql2.rb:8

/usr/lib/ruby/vendor_ruby/bundler/runtime.rb:68:in `require'
/usr/lib/ruby/vendor_ruby/bundler/runtime.rb:68:in `require'
/usr/lib/ruby/vendor_ruby/bundler/runtime.rb:66:in `each'
/usr/lib/ruby/vendor_ruby/bundler/runtime.rb:66:in `require'
/usr/lib/ruby/vendor_ruby/bundler/runtime.rb:55:in `each'
/usr/lib/ruby/vendor_ruby/bundler/runtime.rb:55:in `require'
/usr/lib/ruby/vendor_ruby/bundler.rb:120:in `require'
/config/application.rb:7 
/config/environment.rb:2:in `require'
/config/environment.rb:2
config.ru:3:in `require'
config.ru:3

我尝试更新mysql2 gem,卸载并重新安装已完成的bundle install,这是成功的。我尝试了wget -O并添加了该文件。但错误仍然存​​在。 我试图寻找答案,但没有太多运气。

这适用于生产环境。任何反馈都将非常感激。

1 个答案:

答案 0 :(得分:0)

您的问题与宝石无关。 libmysqlclient_r抱怨mysql2.so无法找到,因为它在您的计算机上丢失了。您需要处理它而不是使用bundler,而是使用您的系统包管理器(即对于Debian,您可以使用apt-getaptitude)。

首先,找到你的libmysqlclient_r.so的绝对路径:

dpkg -S libmysqlclient_r.so.16

现在你已经获得了绝对路径,所以请运行:

ldd ABSOLUTE_PATH_TO_YOUR_LIB/libmysqlclient_r.so

ldd列出了给定库的依赖关系。至少会丢失一个文件。现在,您所要做的就是安装缺少的软件包。