21

可能重复:
Postgres - “pg” gem 的最新版本 0.14.0 给出错误

我是新来的铁路。我想使用 PostgreSQL,因为 Heroku 也使用它,但是我在安装pggem 时遇到了麻烦。显然,某些文件丢失并且无法创建 Makefile?

我的 gem 文件如下所示:

source 'https://rubygems.org'

gem 'rails', '3.2.6'
gem 'faker', '1.0.1'
gem 'pg', '0.12.2'
gem 'json'

group :development, :test do
  gem 'rspec-rails', '2.10.0'
end

group :assets do
  gem 'sass-rails',   '~> 3.2.3'
  gem 'coffee-rails', '~> 3.2.1'
  gem 'uglifier', '>= 1.0.3'
end

gem 'jquery-rails', '2.0.0'

group :test do
  gem 'capybara', '1.1.2'
  gem 'factory_girl_rails', '1.4.0'
end

当我运行bundle install时,安装 pg gem 时出现以下错误:

    Installing pg (0.14.0) with native extensions 
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb 
checking for pg_config... yes
Using config values from /usr/local/bin/pg_config
checking for libpq-fe.h... yes
checking for libpq/libpq-fs.h... yes
checking for pg_config_manual.h... yes
checking for PQconnectdb() in -lpq... no
checking for PQconnectdb() in -llibpq... no
checking for PQconnectdb() in -lms/libpq... no
Can't find the PostgreSQL client library (libpq)
*** 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=/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/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
    --with-pqlib
    --without-pqlib
    --with-libpqlib
    --without-libpqlib
    --with-ms/libpqlib
    --without-ms/libpqlib


Gem files will remain installed in /Users/KennyGWang/.bundler/tmp/18833/gems/pg-0.14.0 for inspection.
Results logged to /Users/KennyGWang/.bundler/tmp/18833/gems/pg-0.14.0/ext/gem_make.out
An error occured while installing pg (0.14.0), and Bundler cannot continue.
Make sure that `gem install pg -v '0.14.0'` succeeds before bundling.

我使用自制软件安装了 postgresql brew install postgresql,因此which psql给了我/usr/local/bin/psql

任何帮助表示赞赏!

4

4 回答 4

80

你在 Mac 上吗?如果是这样 - 最简单的方法是

  1. 确保您已安装 Xcode(您可以从应用商店获取)
  2. 使用自制软件
  3. brew install postgresql
  4. gem uninstall pg
  5. bundle install您的应用程序的根目录中或gem install pg
于 2012-07-11T19:32:21.240 回答
10

安装postgresql的步骤

  1. 安装 PostgreSQL 及其库

    sudo apt-get install postgresql postgresql-contrib libpq-dev
    
  2. 安装后为postgresql创建一个用户

    sudo -u postgres createuser --superuser $USER
    

    或者

    sudo -u postgres createuser pgs_root
    
  3. 为 postgresql 用户设置用户密码

    sudo -u postgres psql postgres --set "user=$USER"
    postgres=# \passsword :user
    

    或者

    sudo -u postgres psql postgres
    postgres=# \passsword pgs_root
    
  4. 配置 postgresql.conf 文件以使 PostgreSQL 侦听 localhost 或侦听外部 IP 或其他内容,将此行更改为 IP 或 'localhost'

    gedit /etc/postgresql/8.4/main/postgresql.conf listen_addresses = 'localhost'
    

与 mysql 查询浏览器一样,postgresql 也有一个名为 pgadmin 的 GUI。要安装运行此命令

sudo apt-get install pgadmin3
于 2012-07-11T19:42:15.340 回答
4

尝试包括这个而不是 pg

gem install postgres-pr

或者

gem install ruby-pg

编辑

你已经这样做了吗?

$ sudo apt-get install postgresql

$ rails new pg -d postgres

http://www.funonrails.com/2011/03/getting-started-with-rails-3-postgres.html

于 2012-07-11T18:44:13.750 回答
0

您是否按照您包含的错误中的建议检查了日志 mkmf.log?

由于某种原因无法创建 Makefile,可能缺少必要的库和/或头文件。检查 mkmf.log 文件以获取更多详细信息。您可能需要配置选项。

于 2012-07-11T19:10:08.860 回答