我有一个rails应用程序,我试图在Amazon EC2实例中运行。此应用已在各种Linux,OS X和Windows系统上正确测试。
在EC2服务器上,我从源代码构建了PostgresSQL 9。首先,“pg”gem不会安装,但我使用以下命令构建它:
gem install pg -- --with-pgsql-lib=/usr/local/pgsql/lib --with-pgsql-config=/usr/local/pgsql/bin/pg_config
这似乎构建得很好。但是,当我运行rake任务时,例如'rake db:migrate',我收到以下错误:
rake aborted!
libpq.so.5: cannot open shared object file: No such file or directory - /home/ec2-user/.rvm/gems/ruby-1.8.7-p334/gems/pg-0.11.0/lib/pg_ext.so
答案 0 :(得分:8)
我在EC2上为pg gem做了诀窍:
sudo yum install postgresql-devel
答案 1 :(得分:4)
从错误消息和“find”命令输出的描述中,/usr/local/pgsql/lib
可能不在动态链接器搜索其库的路径中。尝试将该目录添加到/etc/ld.so.conf
(或类似),或在运行LD_LIBRARY_PATH
之前设置rake
以包含该目录。
答案 2 :(得分:1)
怪异。我完全退出RVM并以完全相同的方式完成所有操作,但这次使用ARCHFLAGS设置。我突然意识到我忘了设置它。
env ARCHFLAGS=" -arch x86_64"
答案 3 :(得分:0)
我能解决这个问题的唯一方法是添加一个符号链接,以便找到它。
ln -s /usr/pgsql-9.2/lib/libpq.so.5.5 /usr/lib/libpq.so.5