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
命令的软件包postgresql
和postgresql-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
现在回到您正在尝试捆绑安装的文件夹
- 让你的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所需的正确的库。