我在DREAMHOST上部署了一个RoR应用程序。以下是当前正在运行的版本
我尝试加载主页时的错误如下:
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
并添加了该文件。但错误仍然存在。
我试图寻找答案,但没有太多运气。
这适用于生产环境。任何反馈都将非常感激。
答案 0 :(得分:0)
您的问题与宝石无关。 libmysqlclient_r
抱怨mysql2.so
无法找到,因为它在您的计算机上丢失了。您需要处理它而不是使用bundler
,而是使用您的系统包管理器(即对于Debian,您可以使用apt-get
或aptitude
)。
首先,找到你的libmysqlclient_r.so的绝对路径:
dpkg -S libmysqlclient_r.so.16
现在你已经获得了绝对路径,所以请运行:
ldd ABSOLUTE_PATH_TO_YOUR_LIB/libmysqlclient_r.so
ldd
列出了给定库的依赖关系。至少会丢失一个文件。现在,您所要做的就是安装缺少的软件包。