30

我的数据库是 PostgreSQL。我在 CENTOS.... 安装 pg gem 时收到以下错误。我也重新安装以清除我的 YAML 问题,但这没有用,但这只是一个警告。我的主要问题是 pg gem 的安装:

[root@vdimc04 ~]# gem install pg
/usr/local/lib/ruby/1.9.1/yaml.rb:56:in `<top (required)>':
It seems your ruby installation is missing psych (for YAML output).
To eliminate this warning, please install libyaml and reinstall your ruby.
Building native extensions.  This could take a while...
ERROR:  Error installing pg:
    ERROR: Failed to build gem native extension.

        /usr/local/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=/usr/local/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 /usr/local/lib/ruby/gems/1.9.1/gems/pg-0.14.1 for inspection.
Results logged to /usr/local/lib/ruby/gems/1.9.1/gems/pg-0.14.1/ext/gem_make.out

我也尝试使用以下命令,但没有用:

 gem install pg -- --with-pg-config=/usr/pgsql-9.1/bin/pg_config
4

10 回答 10

85

我在 Centos 上遇到了同样的错误。通过谷歌搜索,我发现了两个要使用的命令:

  1. yum install postgresql-libs- 它给我消息说,它已经安装了。
  2. yum install postgresql-devel- 它解决了我与pg_config安装“pg”.gem 相关的错误。

希望能帮助到你 :)

apos 写道: 在 Ubuntu 14.04 上安装:

  1. apt-get install postgresql-server-dev-9.3 libpq-dev
于 2012-12-05T05:31:12.307 回答
20

这是我在 CentOS 上启动并运行 PostgreSQL、RVM、Ruby、Rails 的秘诀

PostgreSQL

首先,按照http://wiki.postgresql.org/wiki/YUM_Installation上的说明安装 PostgreSQL:

sudo vi /etc/yum.repos.d/CentOS-Base.repo

[base]
exclude=postgresql*

[updates]
exclude=postgresql*

获取最新的 PGDG RPM 文件(适用于您的平台/架构),例如:

curl -O http://yum.postgresql.org/9.2/redhat/rhel-latest-x86_64/pgdg-redhat92-9.2-7.noarch.rpm

然后

sudo rpm -ivh pgdg-redhat92-9.2-7.noarch.rpm
sudo yum install -y postgresql92-server postgresql92-devel

初始化数据库:

sudo service postgresql-9.2 initdb

配置/var/lib/pgsql/9.2/data/postgresql.conf/var/lib/pgsql/9.2/data/pg_hba.conf根据需要。

启动 PostgreSQL 服务器:

sudo service postgresql-9.2 start

虚拟机

sudo yum -y groupinstall "Development Tools"
sudo yum -y install zlib zlib-devel sqlite-devel httpd curl-devel httpd-devel apr-devel apr-util-devel mlocate man libxml2-devel libxslt-devel libffi-devel readline-devel

注意,不是root:

\curl -L get.rvm.io | sudo bash -s stable

注销并重新打开。之后,which rvm应回复/usr/local/rvm/bin/rvmtype rvm|head -1应说rvm is a function

Ruby + Rails

rvm install 1.9.3 --with-openssl-dir=/usr
rvm use 1.9.3 --default
gem install rake
gem install rails

PostgreSQL 宝石

gem install pg -- --with-pg-config=/usr/pgsql-9.2/bin/pg_config

--with-pg-config我最新安装的 CentOS 不知何故需要它,否则,gem install pg找不到pg_config. YMMV,但是如果您按照以上所有内容(在过去几个月中我已经完成了足够多的时间),请告诉我是否有任何绊倒您的地方。

于 2012-12-05T08:20:51.540 回答
6

尝试通过执行以下操作安装 libpq 包:

sudo apt-get install libpq-dev

该软件包对 pg gem 有帮助,之后您应该会没事的 :)

于 2012-12-04T12:05:04.730 回答
4

试试这个,答案不是我的,但它对我有用。请记住指出您的 Postgres.app 应用程序所在的位置:

bundle config build.pg --with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_config

然后做

bundle update
bundle install
于 2013-11-30T17:20:16.017 回答
3
$ sudo apt-get install libpq-dev
$ sudo apt-get install libdbd-pg-ruby1.8

then:

$ sudo apt-get install pg  

for CentOS please read the below link..

http://wiki.postgresql.org/wiki/YUM_Installation

To install pg in centOS

run this commands

bundle config build.pg 

gem install pg -v '0.12.0'
于 2012-12-04T12:08:36.017 回答
1

尝试安装 postgresql 服务器和相应的库。然后安装 pg gem。然后它会为你工作

于 2012-12-04T12:50:01.023 回答
0

我的问题是在已经安装 pg gem 之前.. 但它没有加载到捆绑包中.. 现在的解决方案是:当我们声明一个新的应用程序时,比如'rails new Demo',我们必须包括

'--数据库=postgresql'。所以现在总命令是:'rails new Demo --database=postgresql'

然后 pg gem 文件将被捆绑..

在捆绑包中,只有一个 gem 会被存储。pg gem 或 sqlite3 gem ..

现在相应地编辑 database.yml 文件..就是这样

于 2012-12-08T07:55:08.920 回答
0

我遇到了同样的问题,我尝试安装所有依赖项,但一切都没用。最后,我尝试使用PostgreSQL9.3,而不是PostgreSQL9.4,一切都很好。

于 2014-06-30T08:30:12.020 回答
0

使用 AWS Cloud 9 Linux:

sudo yum install postgresql-libs

然后:

sudo yum install postgresql-devel

然后:

gem update --system

如果需要,那么:

gem install bundler(捆绑器 2.0)

然后:

bundle install

于 2019-06-20T23:31:08.507 回答
-1

首次安装

sudo apt-get install postgresql postgresql-server-dev-9.1

下次安装

sudo apt-get install libpq-dev

然后安装gem install pg

于 2012-12-04T12:06:06.380 回答