Rails 3 – 不能安装pg gem

当我尝试运行捆绑(捆绑安装),我一直得到

Installing pg (0.13.2) with native extensions Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension. /Users/ryan/.rvm/rubies/ruby-1.9.2-p290/bin/ruby extconf.rb checking for pg_config... no No pg_config... trying anyway. If building fails, please try again with --with-pg-config=/path/to/pg_config checking for libpq-fe.h... no Can't find the 'libpq-fe.h header *** extconf.rb failed *** Could not create Makefile due to some reason, probably lack of necessary libraries and/or headers. Check the mkmf.log file for more details. You may need configuration options. Provided configuration options: --with-opt-dir --without-opt-dir --with-opt-include --without-opt-include=${opt-dir}/include --with-opt-lib --without-opt-lib=${opt-dir}/lib --with-make-prog --without-make-prog --srcdir=. --curdir --ruby=/Users/ryan/.rvm/rubies/ruby-1.9.2-p290/bin/ruby --with-pg --without-pg --with-pg-dir --without-pg-dir --with-pg-include --without-pg-include=${pg-dir}/include --with-pg-lib --without-pg-lib=${pg-dir}/lib --with-pg-config --without-pg-config --with-pg_config --without-pg_config Gem files will remain installed in /Users/ryan/.rvm/gems/ruby-1.9.2-p290/gems/pg-0.13.2 for inspection. Results logged to /Users/ryan/.rvm/gems/ruby-1.9.2-p290/gems/pg-0.13.2/ext/gem_make.out An error occured while installing pg (0.13.2), and Bundler cannot continue. Make sure that `gem install pg -v '0.13.2'` succeeds before bundling. 

我使用Mac OS X 10.6,安装PostgreSQL的版本是9.1。 我发现问题是在libpq-dev ,我怎么能安装/修复?

正如您的错误日志中所述,您需要将path传递给pg_config。 尝试使用以下方法安装gem:

 gem install pg -- --with-pg-config= 'PATH_TO_YOUR_PG_CONFIG' 

如果您不确定您的pg_config的位置,并假设您在Linux或Mac上,则可以运行以下命令:

 which pg_config 

您的pg-config可能位于不同的位置,具体取决于您安装postgres的方式。

如果你在Linux上运行,你可能会对我的工作感兴趣:

 sudo apt-get install postgresql sudo apt-get install libpq-dev 

然后

 gem install pg 

然后

 bundle install 

src: http : //wikimatze.de/installing-postgresql-gem-under-ubuntu-and-mac

如果您使用的是Postgress.app,那么您需要访问其命令行工具 。 在terminal或PATHconfiguration文件中input以下行:

  PATH="/Applications/Postgres.app/Contents/MacOS/bin:$PATH" 

gem install pg现在应该工作。 (这是对我有用的。)

注意新版本的path如下所示:

 /Applications/Postgres.app/Contents/Versions/<version>/bin 

如果你有自制软件,只需input:

$ brew安装postgresql

如果你没有,请在你的terminal下载这个文件:

ruby -e“$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install )”

searchlibpq:

 brew search libpq 

应该输出libpqxx

然后尝试安装它:

 brew install libpqxx 

你只需要安装libpq-dev

 sudo apt-get install libpq-dev 

那么gem应该安装得很好。

按照安装后说明进行操作: http : //postgresapp.com/documentation/configuration-ruby.html

要安装pg gem,请确保已经正确设置了$ PATH(如http://postgresapp.com/documentation/cli-tools.html中所述; ),然后运行

sudo ARCHFLAGS="-arch x86_64" gem install pg

强烈build议阅读这两个页面。 只是撇去他们,失去了我的一个小时的生活。 阅读他们,问题解决了。

我遇到的问题是,由于某种原因,它试图用/usr/bin/gcc-4.2进行编译。 我发现通过更改mkmf.rb(我在堆栈跟踪中看到)中的try_cpp来引发失败的编译行引发exception。

我软链接gcc到gcc-4.2,它的工作原理:

 sudo ln -s /usr/bin/gcc /usr/bin/gcc-4.2 

为什么要使用gcc-4.2? 不知道。

实际的编译行:

 /usr/bin/gcc-4.2 -E -I/Users/dfrankow/.rvm/rubies/ruby-1.9.3-p125/include/ruby-1.9.1/x86_64-darwin11.4.0 -I/Users/dfrankow/.rvm/rubies/ruby-1.9.3-p125/include/ruby-1.9.1/ruby/backward -I/Users/dfrankow/.rvm/rubies/ruby-1.9.3-p125/include/ruby-1.9.1 -I. -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -I/usr/local/Cellar/postgresql/9.1.4/include -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wshorten-64-to-32 -Wimplicit-function-declaration -fno-common -pipe conftest.c -o conftest.i (RuntimeError) 

我得到了同样的问题,但我的Postgres安装在

/Library/PostgreSQL/9.3

更新〜/ .bash_profile通过添加:

 export PATH=/Library/PostgreSQL/9.3/bin:$PATH 

打开一个新的terminal,运行bundle update ,也为我工作。 谢谢Ari。

您可以设置一个构buildconfiguration选项bundle config build.pg --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config并使用gem install pg没有任何选项(pg_config的path可能对你来说不一样,这个是Postgresapp 9.3.5.0)

我在openSUSE13.1 KDE机器上遇到了同样的问题。 在我遇到这个问题之前,我只安装了使用zypper命令的软件包postgresqlpostgresql-server 。 然后再安装2个更多的软件包:

 [arup@to_do_app]$ sudo zypper in postgresql-devel postgresql-contrib root's password: Loading repository data... Reading installed packages... Resolving package dependencies... #.... 

然后,我再次运行bundle install ,并成功!

对于一个工作的OSX解决scheme,请参阅本指南http://krugerdavid.com/journal/how-to-install-xcode-homebrew-git-rvm-postgresql-ruby-1-9-3-on-snow-leopard/

它会引导你使用自制软件安装PostgreSQL。 在OSX 10.8.3,PostgreSQL 9.2.3和Ruby 2.0.0-p0上进行testing和工作

首先,卸载任何自制软件版本。 –force选项使其卸载所有版本。

 brew rm postgresql --force 

相应地更改您的版本的path。

 sudo /sbin/SystemStarter stop postgresql-8.4 sudo rm -rf /Applications/PostgreSQL\ 8.4 sudo rm -rf /etc/postgres-reg.ini sudo rm -rf /Library/StartupItems/postgresql-8.4 sudo rm -rf /Library/PostgreSQL/8.4 sudo dscl . delete /users/postgres 

编辑/ etc / profile并删除任何引用“postgres”的行。

 nano /etc/profile 

安装PostgresSQL

 brew update brew install postgresql 

安装德PG创业板

 gem install pg 

而已。 问候。

你可以通过lib文件来检查你的terminal是否有postrgresql文件。 去cd〜/ opt / local / lib /然后inputls和回车button。 这会向您显示位于lib目录中的所有文件的列表。

如果你没有postreseql,你可以通过macports下载。 sudo port安装postgresql93 @ 9.3.2_1

现在回到您正在尝试捆绑安装的文件夹

  1. 让你的pg与你的postgesql文件一起工作,或者只是下载了gem install pg – –with-pg-config = / opt / local / lib / postgresql93 / bin / pg_config

现在运行捆绑安装

在Fedora上:

 dnf install postgresql-devel 

El Capitan对我的工作是从系统默认升级ruby2.3.1似乎findgem所需的正确的库。

Interesting Posts