我尝试使用gem install pg
,但它似乎并没有工作。
gem install pg
给出了这样的错误
Temporarily enhancing PATH to include DevKit...
Building native extensions. This could take a while...
ERROR: Error installing pg:
ERROR: Failed to build gem native extension.
C:/Ruby/bin/ruby.exe 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=C:/Ruby/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 C:/Ruby/lib/ruby/gems/1.8/gems/pg-0.10.1 for
inspection.
Results logged to C:/Ruby/lib/ruby/gems/1.8/gems/pg-0.10.1/ext/gem_make.out
Answer 1:
在这里找到答案: 不能在Windows上安装皮克宝石
有PG(0.10.0)昨日发布的最新版本的没有Windows原生版本,但是如果你安装0.9.0应该没有问题,安装二进制文件。
Answer 2:
我有这个问题,这个工作对我来说:
安装PostgreSQL的-devel包,这将解决pg_config的缺失问题。
sudo apt-get install libpq-dev
Answer 3:
问题是宝石依赖性,因此在安装前,PG确保你已经安装了“的libpq-dev的”
Ubuntu的系统:
命令和apt-get安装的libpq-dev的
RHEL系统:
百胜安装PostgreSQL-devel的
苹果电脑:
BREW安装PostgreSQL
Answer 4:
gem install pg -- --with-pg-config=/usr/pgsql-9.1/bin/pg_config
Answer 5:
@Winfield 说 :
Pg的宝石,需要结合对PostgreSQL客户端库 。 这个错误通常意味着它无法找到你的Postgres库。 要么你没有安装它们,或者你可能需要通过--with-pg-dir=
您的创业板安装。
更重要的是,你只需要--with-pg-config=
安装它。
在Mac
如果,万一,你也通过安装在Mac上的网站捆绑Postgres的,这将是一样的地方/Applications/Postgres.app/Contents/Versions/9.3/bin
。
所以,要么你把它传递的创业板安装:
gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config
或者你正确设置PATH 。 因为这可能是太多,临时设置PATH:
export PATH=%PATH:/Applications/Postgres.app/Contents/Versions/9.3/bin/
Answer 6:
我没有PostgreSQL的安装,所以我只是用它装
sudo apt-get install postgresql postgresql-server-dev-9.1
在Ubuntu 12.04。
这解决了它。
更新:
使用最新版本:
sudo apt-get install postgresql-9.3 postgresql-server-dev-9.3
Answer 7:
在我的情况下工作,我使用Ubuntu 14.04.2 LTS
命令和apt-get安装的libpq-dev的
我用
红宝石2.2.2和4.2.1的Rails
Answer 8:
如果您在Mac上使用Postgres.app,你可能会解决这个问题一劳永逸这样的:
首先gem uninstall pg
,然后编辑你的~/.bash_profile
或~/.zshrc
文件或同等学历,并添加:
# PostgreSQL bin path
export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/9.4/bin
然后bundle install
和gem install pg
都应该按预期方式工作。
Answer 9:
$ PATH=$PATH:/Library/PostgreSQL/9.1/bin sudo gem install pg
更换9.1安装在系统上的版本。
Answer 10:
在Mac OS(萨尔瓦多卡皮塔诺)。 你可以简单地使用: brew install postgresql
Answer 11:
Pg的宝石,需要结合对PostgreSQL客户端库。 这个错误通常意味着它无法找到你的Postgres库。 要么你没有安装它们,或者你可能需要通过--with-PG-DIR =您的创业板安装。
Answer 12:
与使用ARCH
标志。
sudo env ARCHFLAGS="-arch x86_64" gem install pg
该解决您遇到的同样的问题。
Answer 13:
我倒是对Linux Mint的(玛雅)13这个问题,我通过安装PostgreSQL和PostgreSQL服务器固定它:
apt-get install postgresql-9.1
sudo apt-get install postgresql-server-dev-9.1
Answer 14:
对于Mac用户
PATH=$PATH:/Library/PostgreSQL/9.4/bin/ gem install pg
这应该做的伎俩
Answer 15:
无论你正在运行的操作系统的,看的日志文件"Makefile"
,看看发生了什么,而不是一味地安装的东西。
在我的情况下,MAC OS,日志文件是在这里:
/Users/za/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/extensions/x86_64-darwin-15/2.3.0-static/pg-1.0.0/mkmf.log
日志表明make文件不能因为下面的创建:
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers
在mkmf.log里面,你会看到,它无法找到所需的库,以完成编译。
checking for pg_config... no
Can't find the 'libpq-fe.h header
blah blah
运行后"brew install postgresql"
,我可以看到所有需要的库文件在那里:
za:myapp za$ cat /Users/za/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/extensions/x86_64-darwin-15/2.3.0-static/pg-1.0.0/mkmf.log | grep yes
find_executable: checking for pg_config... -------------------- yes
find_header: checking for libpq-fe.h... -------------------- yes
find_header: checking for libpq/libpq-fs.h... -------------------- yes
find_header: checking for pg_config_manual.h... -------------------- yes
have_library: checking for PQconnectdb() in -lpq... -------------------- yes
have_func: checking for PQsetSingleRowMode()... -------------------- yes
have_func: checking for PQconninfo()... -------------------- yes
have_func: checking for PQsslAttribute()... -------------------- yes
have_func: checking for PQencryptPasswordConn()... -------------------- yes
have_const: checking for PG_DIAG_TABLE_NAME in libpq-fe.h... -------------------- yes
have_header: checking for unistd.h... -------------------- yes
have_header: checking for inttypes.h... -------------------- yes
checking for C99 variable length arrays... -------------------- yes
Answer 16:
我不得不这样做在CentOS 5.8。 运行bundle install
不停地导致问题,因为我不能强迫它使用一个特定的PG版本。
我不能yum erase postgresql postgresql-devel
任一,由于依赖问题(它会删除PHP,HTTP等)
解决方案? 混乱$ PATH暂时优先选择更新的pgsql而不是默认的一个:
export PATH=/usr/pgsql-9.2/bin:$PATH
bundle install
基本上,与上述命令,将看/usr/pgsql-9.2/bin/pg_config
所述一个之前/usr/bin/pg_config
Answer 17:
如果您正在使用JRuby,而不是红宝石的安装PG宝石,当你将有类似的问题。 相反,你需要安装适配器:
gem 'activerecord-jdbcpostgresql-adapter'
Answer 18:
在Mac brew install postgres
THEN bundle install
Answer 19:
你刚才去这里看看,如果你的PG版本支持Win32平台上,然后使用这个命令来安装:
创业板安装PG -v 0.14.1 --platform = 86-的mingw32
Answer 20:
我已经遇到了PG这个恼人的问题多年。 我创造了这个要点,以帮助。
下面的命令总是为我工作。
# Substitute Postgres.app/Contents/Versions/9.5 with appropriate version number
sudo ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.5/bin/pg_config
要点: https://gist.github.com/sharnie/5588340cf023fb177c8d
文章来源: unable to install pg gem