错误下与postgres.app RVM需要PG(Error requiring pg under

2019-09-02 08:36发布

我使用Postgres.app在OS X(10.8.3)。 我已经修改了我的PATH ,使得bin的应用程序文件夹都是在别人面前。

Rammy:~ phrogz$ which pg_config
/Applications/Postgres.app/Contents/MacOS/bin/pg_config

我安装了RVM并且可以安装PG宝石没有错误,但是当我去要求它,我得到一个错误:

Rammy:~ phrogz$ gem -v
1.8.25

Rammy:~ phrogz$ gem install pg
Fetching: pg-0.15.1.gem (100%)
Building native extensions.  This could take a while...
Successfully installed pg-0.15.1
1 gem installed

Rammy:~ phrogz$ ruby -v -e "require 'pg'"
ruby 1.9.3p392 (2013-02-22 revision 39386) [x86_64-darwin12.3.0]
/Users/phrogz/.rvm/rubies/ruby-1.9.3-p392/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require': dlopen(/Users/phrogz/.rvm/gems/ruby-1.9.3-p392/gems/pg-0.15.1/lib/pg_ext.bundle, 9): Library not loaded: @executable_path/../lib/libssl.1.0.0.dylib (LoadError)
  Referenced from: /Applications/Postgres.app/Contents/MacOS/lib/libpq.dylib
  Reason: image not found - /Users/phrogz/.rvm/gems/ruby-1.9.3-p392/gems/pg-0.15.1/lib/pg_ext.bundle
    from /Users/phrogz/.rvm/rubies/ruby-1.9.3-p392/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
    from /Users/phrogz/.rvm/gems/ruby-1.9.3-p392/gems/pg-0.15.1/lib/pg.rb:4:in `<top (required)>'
    from /Users/phrogz/.rvm/rubies/ruby-1.9.3-p392/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:60:in `require'
    from /Users/phrogz/.rvm/rubies/ruby-1.9.3-p392/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:60:in `rescue in require'
    from /Users/phrogz/.rvm/rubies/ruby-1.9.3-p392/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:35:in `require'
    from -e:1:in `<main>'

我需要什么做的就是在pg宝石安装是否正确?

Answer 1:

这为我工作:

sudo env ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/Applications/Postgres93.app/Contents/MacOS/bin/pg_config

只要仔细检查了/Applications/Postgres93.app ..路径存在为您服务。



Answer 2:

编辑 :尽管这个答案目前有超过公认的答案更多的选票,公认的答案是简单得多和更清洁。


在安装时,从路径删除Postgres.app二进制pg宝石,而是使用的Postgres安装内置到OS X配置宝石。 该pg库仍将正确连接到服务器Postgres.app以后。

Rammy:~ phrogz$ gem uninstall pg
Successfully uninstalled pg-0.15.1

# Modify PATH to remove /Applications/Postgres.app/Contents/MacOS/bin

Rammy:~ phrogz$ gem install pg
Fetching: pg-0.15.1.gem (100%)
Building native extensions.  This could take a while...
Successfully installed pg-0.15.1
1 gem installed

Rammy:~ phrogz$ ruby -v -e "require 'pg'"
ruby 1.9.3p392 (2013-02-22 revision 39386) [x86_64-darwin12.3.0]


Answer 3:

我发现,我的工作和需要最少的黑客/配置的解决方案。 你只需做一次,也将努力为每包安装。 下面添加到你的.bash_profile,.bash_rc或等效:

export DYLD_FALLBACK_LIBRARY_PATH=/Applications/Postgres.app/Contents/MacOS/lib:$DYLD_LIBRARY_PATH

(假设你在默认位置安装Postgres.app)。 然后,重新启动您的终端会话,然后再试一次。

导出到DYLD_LIBRARY_PATH直接会导致严重的问题,依赖于它的其他应用程序,但使用备用路径避免了这些问题。

也可以看看:

  • https://github.com/PostgresApp/PostgresApp/issues/109#issuecomment-18387546
  • Postgres.app升级,现在的Rails应用程序将无法启动

编辑 :看来,设置DYLD_FALLBACK_LIBRARY_PATH当您尝试运行PSQL导致错误。 为了解决这个问题,你可以添加以下两行到你的.bash_profile:

alias psql="(. ~/.bash_profile; unset DYLD_FALLBACK_LIBRARY_PATH; psql)";

这是假设你正在使用bash和你的.bash_profile位于你的主目录。 如果不是这种情况(或者,如果您使用的是.bashrc或者其他环境设置,而不是.bash_profile中)的变化~/.bash_profile命令的一部分的路径到你的环境设置脚本。

该别名的命令启动基本不影响您的当前的bash环境中的子shell。 因此,当它会取消DYLD_FALLBACK_LIBRARY_PATH变量,这只是暂时的。 在您退出psql的环境变量将被重新设置,以便正确轨道的功能。



Answer 4:

问题是,创业板的Postgres.app的链接。 如果你把它链接到Postgres的版本附带的OSX

这里有一个小脚本:

  • 如果使用带项目gemsets RVM: 更改到项目
  • 运行以下命令:

     gem uninstall pg PATH=${PATH/'Postgres.app'/'WRONGFOLDER.app'} gem install pg PATH=${PATH/'WRONGFOLDER.app'/'Postgres.app'} 
  • 现在寄托都应该罚款



文章来源: Error requiring pg under rvm with postgres.app