Gra*_*eme 3 postgresql macos homebrew ruby-on-rails
我使用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.
Run Code Online (Sandbox Code Playgroud)
我在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:
Run Code Online (Sandbox Code Playgroud)
并且,在我的gemfile中,包含以下内容(请注意,运行bundle install会返回相同的错误,但是因为我假设生产服务器上的PostgreSQL安装没有任何错误,我认为它应该仍然有用吗?) :
group :production do
gem 'pg'
end
Run Code Online (Sandbox Code Playgroud)
编辑:如果宝石'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
Run Code Online (Sandbox Code Playgroud)
**编辑3:**承认失败.
嗨伙计,
首先,感谢您的帮助.
不幸的是,两天之后,我将不得不承认失败.
无论我尝试哪种方法,以及我是使用EnterpriseDB版本还是Homebrew安装的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
Run Code Online (Sandbox Code Playgroud)
无论我选择上述哪种方法都会返回以下错误:
ld: in /usr/local/lib/libssl.0.9.8.dylib, missing required architecture x86_64 in file
Run Code Online (Sandbox Code Playgroud)
每当我尝试通过捆绑安装来安装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.
Run Code Online (Sandbox Code Playgroud)
我不能花更多的时间在这上面,所以我咬紧牙关,可能会使用MySQL代替.
再次感谢,
格雷姆
最终编辑 - 修复!请参阅下面的答案我是如何做到的,因为它可能对其他人有帮助**
是!!!!
对不起,但我想我可能会跳到空中.我想我可能已经开始工作了.
如果有其他人遇到这个问题,这就是我在Snow Leopard上安装宝石所做的事情(Lion的过程可能不同):
1)确保卸载任何旧版本的PostgreSQL - EnterpriseDB和Homebrew版本.对于EnterpriseDB,请参阅此Stackoverflow问题/答案,对于Homebrew,只需执行此操作brew uninstall postgresql --force.
2)做一个brew install postgresql获得Homebrew安装.
3)现在,问题(正如Chris Travers在之前的评论中指出的那样 - 谢谢Chris!)似乎是由于OpenSSL.看来我的版本(我猜是Snow Leopard的默认版本,因为我从未听说过它直到今天)是旧版本,所以我不得不使用Homebrew来安装更新的版本(我也使用过) MacPorts卸载旧版本 - 不确定在同一台计算机上安装MacPorts和Homebrew是否合适,但是......):
sudo port uninstall openssl brew install openssl这应该将OpenSSL更新到最新的64位版本(我想?).
4)继另一个Stackoverflow帖子后,我做了以下事情:
sudo gem install pg -- --with-ldflags='-L/usr/local/Cellar/openssl/0.9.8s'
Run Code Online (Sandbox Code Playgroud)
成功!这似乎有效.我仍然要设置一个新的Rails项目来检查所有安装好的,但是当我的Gemfile中包含gem'pg'时捆绑安装没有问题,所以手指交叉:-)
希望这有助于其他人.
| 归档时间: |
|
| 查看次数: |
1743 次 |
| 最近记录: |