我正在使用 Ruby on Rails 3.1 预版本。我喜欢使用 PostgreSQL,但问题是安装pg gem。它给了我以下错误:
$ gem install pg
Building native extensions. This could take a while...
ERROR: Error installing pg:
ERROR: Failed to build gem native extension.
/home/u/.rvm/rubies/ruby-1.9.2-p0/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=/home/u/.rvm/rubies/ruby-1.9.2-p0/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 /home/u/.rvm/gems/ruby-1.9.2-p0/gems/pg-0.11.0 for inspection.
Results logged to /home/u/.rvm/gems/ruby-1.9.2-p0/gems/pg-0.11.0/ext/gem_make.out我该如何解决这个问题?
看起来在 Ubuntu 中,标头是libpq-dev软件包的一部分 (至少在以下 Ubuntu 版本中: 11.04 (Natty Narwhal), 10.04 (Lucid Lynx), 11.10 (Oneiric Ocelot), 12.04 (Precise Pangolin), 14.04 ( Trusty Tahr)和18.04 (Bionic Beaver)):
...
/usr/include/postgresql/libpq-fe.h
...因此,请尝试为您的操作系统安装libpq-dev或等效版本:
sudo apt-get install libpq-dev yum install postgresql-devel brew install postgresql gem install pg -- --with-pg-config=/opt/local/lib/postgresql[version number]/bin/pg_config zypper in postgresql-devel pacman -S postgresql-libs 在macOS (以前是Mac OS X和OS X )上,使用Homebrew安装正确的标头:
brew install postgresql然后运行
gem install pg应该管用。
另外,也可以不安装整个postgresql ,而是通过brew install libpq并按照 “注意事项” 部分中的说明导出正确的PATH和PKG_CONFIG_PATH
我也尝试过执行gem install libpq-dev ,但收到此错误:
Can't find the 'libpq-fe.h header
*** extconf.rb failed ***但是我发现使用sudo apt-get (我试图避免与 Ruby on Rails 一起使用)进行安装是可行的,即
sudo apt-get install libpq-dev
# or
apt-get install postgres-server-dev-{pg.version}
# for postgresql 9.4 on Ubuntu 14.04那我就能做到
gem install pg没有问题。