PostgreSQL gem pg无法安装

Pav*_*mar 28 ruby ruby-on-rails

我的数据库是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
Run Code Online (Sandbox Code Playgroud)

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

 gem install pg -- --with-pg-config=/usr/pgsql-9.1/bin/pg_config
Run Code Online (Sandbox Code Playgroud)

Pre*_*rem 80

我在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


Ali*_*ael 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*
Run Code Online (Sandbox Code Playgroud)

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

curl -O http://yum.postgresql.org/9.2/redhat/rhel-latest-x86_64/pgdg-redhat92-9.2-7.noarch.rpm
Run Code Online (Sandbox Code Playgroud)

然后

sudo rpm -ivh pgdg-redhat92-9.2-7.noarch.rpm
sudo yum install -y postgresql92-server postgresql92-devel
Run Code Online (Sandbox Code Playgroud)

初始化数据库:

sudo service postgresql-9.2 initdb
Run Code Online (Sandbox Code Playgroud)

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

启动PostgreSQL服务器:

sudo service postgresql-9.2 start
Run Code Online (Sandbox Code Playgroud)

RVM

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
Run Code Online (Sandbox Code Playgroud)

注意,不是 root:

\curl -L get.rvm.io | sudo bash -s stable
Run Code Online (Sandbox Code Playgroud)

退出并重新开启.之后,which rvm应该回复/usr/local/rvm/bin/rvm并且type 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
Run Code Online (Sandbox Code Playgroud)

PostgreSQL宝石

gem install pg -- --with-pg-config=/usr/pgsql-9.2/bin/pg_config
Run Code Online (Sandbox Code Playgroud)

--with-pg-config以某种方式需要与我的最新的安装CentOS的,否则,gem install pg无法找到pg_config.YMMV,但如果你按照上述所有内容(我在过去几个月里已经做了足够多次),请告诉我你是否有任何绊倒的事.


oFc*_*Fca 6

尝试安装libpq包:

sudo apt-get install libpq-dev
Run Code Online (Sandbox Code Playgroud)

那个包有助于pg gem,你应该没关系:)


sel*_*omi 5

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

bundle config build.pg --with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_config
Run Code Online (Sandbox Code Playgroud)

然后做

bundle update
bundle install
Run Code Online (Sandbox Code Playgroud)