我的数据库是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
答案 0 :(得分:76)
我在Centos上遇到了同样的错误。通过谷歌搜索我发现了两个命令:
yum install postgresql-libs
- 它给我留言说,它已经安装好了。yum install postgresql-devel
- 它解决了与pg_config
相关的错误,用于安装“pg”.gem。希望有所帮助:)
apos写道:在Ubuntu 14.04上安装:
apt-get install postgresql-server-dev-9.3 libpq-dev
答案 1 :(得分:20)
这是我在CentOS上运行PostgreSQL,RVM,Ruby,Rails的秘诀
首先,按照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
注意, NOT 以root身份:
\curl -L get.rvm.io | sudo bash -s stable
退出并重新开启。之后,which rvm
应回复/usr/local/rvm/bin/rvm
,type rvm|head -1
应回复rvm is a function
。
rvm install 1.9.3 --with-openssl-dir=/usr
rvm use 1.9.3 --default
gem install rake
gem install rails
gem install pg -- --with-pg-config=/usr/pgsql-9.2/bin/pg_config
我最新安装的CentOS需要--with-pg-config
,否则gem install pg
无法找到pg_config
。 YMMV,但是如果你按照上面的所有内容(我在过去几个月做了足够的时间),请告诉我是否有任何事情让你失望。
答案 2 :(得分:6)
尝试安装libpq包:
sudo apt-get install libpq-dev
那个包有助于pg gem,之后你应该没问题:)
答案 3 :(得分:4)
试试这个,答案不是我的,但它对我有用。请记住指向Postgres.app应用程序的位置:
bundle config build.pg --with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_config
然后做
bundle update
bundle install
答案 4 :(得分:3)
$ sudo apt-get install libpq-dev
$ sudo apt-get install libdbd-pg-ruby1.8
然后:
$ sudo apt-get install pg
对于CentOS,请阅读以下链接..
http://wiki.postgresql.org/wiki/YUM_Installation
在centOS中安装pg
run this commands
bundle config build.pg
gem install pg -v '0.12.0'
答案 5 :(得分:1)
尝试安装postgresql服务器和相应的库。 然后安装pg gem。然后它适用于你
答案 6 :(得分:0)
我的问题是在pg gem已经安装之前..但它没有加载到包.. 现在的解决方案是: 当我们宣布像“rails new Demo”这样的新应用程序时,我们必须包括
' - 数据库= PostgreSQL的。所以现在总命令是:'rails new Demo --database = postgresql'
然后pg gem文件将被捆绑..
在捆绑中只有一个宝石会被存储。 pg gem或sqlite3 gem ..
现在相应地编辑database.yml文件。 多数民众赞成
答案 7 :(得分:0)
我遇到了同样的问题,我尝试安装所有依赖项,但都没用。最后,我尝试使用PostgreSQL9.3,而不是PostgreSQL9.4,一切都很好。
答案 8 :(得分: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
答案 9 :(得分:-1)
首先安装
sudo apt-get install postgresql postgresql-server-dev-9.1
下一步安装
sudo apt-get install libpq-dev
然后安装gem install pg