我已经使用Brew安装了PostgreSQL(以前曾尝试使用PostgreSQL网站上的独立安装程序进行安装),但在尝试捆绑安装时收到以下错误消息:

Errno::EACCES: Permission denied - /Users/xxxxx/.rvm/gems/ruby-1.9.3-p194/gems/pg-0.14.1/.gemtest An error occurred while installing pg (0.14.1), and Bundler cannot continue. Make sure that `gem install pg -v '0.14.1'` succeeds before bundling.

我在Stackoverflow上找到了各种可能的解决方案,但都没有解决这个问题。
psql --version返回:9.2.1
which psql返回/usr/local/bin/psql
任何人都认识到这个错误,并且/或者对如何解决它有任何进一步的想法?
如果失败,我想我可以在本地使用SQLite,并在生产环境中使用PostgreSQL。我想我需要手动对database.yml文件进行以下更改(我将第一次部署):
production:
  adapter: postgresql
  encoding: unicode
  database: myapp_production
  pool: 5
  username: myapp
  password:

并且,在我的gemfile中,包含以下内容(注意,运行bundle install返回相同的错误,但由于我假设生产服务器上的PostgreSQL安装不会有任何错误,所以我认为它应该仍然可以工作?):
group :production do

  gem 'pg'

end

编辑:划掉它,如果gem'pg'包含在gemfile中,Webrick根本不会运行。
编辑2:同样,当我尝试运行rvmsudo gem install pg时,我得到:
ld: in /usr/local/lib/libssl.0.9.8.dylib, missing required architecture x86_64 in file
collect2: ld returned 1 exit status
make: *** [pg_ext.bundle] Error 1

**编辑3:**承认失败。
大家好,
首先,谢谢你的帮助。
不幸的是,两天后,我不得不承认失败。
无论我尝试哪种方法,无论我使用的是EnterpriseDB版本还是安装在PostgreSQL中的自制版本,我都无法安装pg gem。我试过以下所有的方法:
install gem pg

sudo install gem pg

rvmsudo install gem pg

sudo env PATH=/library/PostgreSQL/9.2/bin:$PATH gem install pg (when using the EnterpriseDB installer)

rvmsudo env PATH=/library/PostgreSQL/9.2/bin:$PATH gem install pg (ditto)

rvmsudo env PATH=/library/PostgreSQL/9.2/bin:$PATH ARCHFLAGS="-arch x86_54" gem install

我选择的上述任一方法都返回以下错误:
ld: in /usr/local/lib/libssl.0.9.8.dylib, missing required architecture x86_64 in file

每当我试图通过捆绑安装安装gem时,都会出现以下错误:
Errno::EACCES: Permission denied - /Users/xxx/.rvm/gems/ruby-1.9.3-p194/gems/pg-0.14.1/.gemtest
An error occurred while installing pg (0.14.1), and Bundler cannot continue.
Make sure that `gem install pg -v '0.14.1'` succeeds before bundling.

我不能在这上面花更多的时间,所以我已经忍无可忍了,可能会改用MySQL。
再次感谢,
格雷姆
最终编辑-修正!请看下面我的回答,看我是如何做到的,因为它可能会帮助其他人**

最佳答案

在我看来,您的安装中缺少有关OpenSSL的内容(无论是头文件还是其他)。我会再检查一下那里的设备。如果失败,我建议在这个gem上禁用SSL支持。我查看了源代码,看起来它是根据libpq编译的,libpq可能已经能够链接到OpenSSL了,所以这可能不是问题。

09-30 15:57
查看更多