无法在Windows上安装pg gem

我有2个Ruby版本:1.8.7和1.9.2和PostgreSQL 8.3。 我不能在任何安装PGgem。 得到这个错误:

C:/Development/Ruby187/bin/ruby.exe extconf.rb checking for pg_config... yes not recorded 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:/Development/Ruby187/bin/ruby --with-pg --without-pg --with-pg-config --without-pg-config --with-pg-dir --without-pg-dir --with-pg-include --without-pg-include=${pg-dir}/include --with-pg-lib --without-pg-lib=${pg-dir}/lib 

我知道这是一个常见的问题,但我还没有find任何工作的解决scheme呢…哦,我已经添加C:\ Program Files文件(x86)\ PostgreSQL \ 8.3 \ bin到我的path。

Solutions Collecting From Web of "无法在Windows上安装pg gem"

您收到的消息清楚地表明您缺少正确安装该宝石的东西:

由于某种原因无法创建Makefile,可能缺少必要的库和/或头文件。 检查mkmf.log文件以获取更多详细信息。 您可能需要配置选项。

没有Windows最新版本的pg(0.10.0)昨天发布的Windows本地版本,但如果你安装0.9.0它应该安装二进制文件没有问题。

无论如何,如果你想安装gem,你需要安装一个构建环境。 如果您使用RubyInstaller,那么您需要DevKit

安装gem只需要你提供额外的选项来安装gem(比如--with-pg-dir

 subst X: "C:\Program Files (x86)\PostgreSQL\8.3" gem install pg -- --with-pg-dir=X: subst X: /D 

ps为Linux用户添加。

我解决了这个错误安装libpq-dev。

我打了两天。 我从msysgit提供的优秀的unixy命令窗口做我的rails命令行的东西。 我创建了一个包含的postgresql-path.bat文件

 @set PATH=%PATH%;C:\Progra~1\PostgreSQL\8.3\bin @set PATH=%PATH%;C:\Progra~1\PostgreSQL\8.3\include @set PATH=%PATH%;C:\Progra~1\PostgreSQL\8.3 

在我添加的msys.bat文件的顶部

 CALL postgresql-path.bat 

只要我从我的PATH变量的postgreSQL目录的空间,我安装'pg'的问题就消失了。 希望这可以帮助我解决问题。

经过近两天的试验和错误(并在很大程度上感谢在这个线程和其他地方的早期文章的建议,我能够成功地在Ruby 1.8.7安装pg 0.10.0(为我的RubyInstaller和我的InstantRails版本)。如果再次遇到这个问题,我将总结我最后的成功安装过程。

首先,我必须按照安装说明安装DevKit 。 我必须复制(为了安全),然后删除\ Ruby187 \ lib \ ruby​​ \ site_ruby \ 1.8 \ ruby​​gems \ defaults文件夹中的operating_system.rb文件,以便安装成功运行。

其次,我安装了rake编译器和rdoc宝石。 gem install rake-compiler gem install rdoc(如果你有任何问题,我建议大家自由使用–platform = win32配置选项)

一旦安装成功,pg本身的最终安装是:

gem install pg –platform = mswin32 –version = 0.9.0 – – with-pg = {Postgres目录简称} \

例如gem install pg –platform = mswin32 –version = 0.9.0 – – with-pg = C:\ PostgreSQL \

最后的'\'似乎是安装程序分析目录字符串的方式所必需的。 我意识到我对配置选项的使用可能超过了必要的一点,但是显然成功安装了0.10.0版本(当我排除–version选项时)实际上并不工作。

再次感谢那些帮助我完成这个序列的人。

首先安装ruby DevKit

在Windows XP和MSysGIT bash终端上,根据我的安装路径执行以下操作

subst X:“D:/ Program Files / PostgreSQL / 9.0”

gem install pg – –with-pg = X:

我的宝石PG-0.10.1安装成功。

这看起来似乎没有什么意思,但是我也有这个轻微的转折。 得到构建找到头后,立即失败,声称无法找到libpq。 我终于推断,我试图建立一个32位的红宝石64位postgres安装。 安装32位postgres导致即时修复。 只是想我会添加这个以防其他人有相同的错误绊倒在这个线程。

消息“无法找到'libpq-fe.h头'意味着安装程序找不到头

  • 检查你的Postgre安装是否包含开发工具(“include”文件夹)。 如果没有,安装postgre开发工具。
  • 检查pg_config.exe的位置。 你需要运行安装
    gem install pg -- --with-pg-config="C:/PROGRA~2/POSTGR~1/8.3/bin/pg_config.exe"
    请注意,您需要使用文件夹名称。

为了构建pg gem的本地扩展,你需要一个ruby DevKit( http://rubyinstaller.org/downloads/

我遇到另一个问题:

D:\app1>rake test
(in D:/app1)
rake aborted!
no such file to load -- 1.9/pg_ext

在这种情况下,您需要手动复制副本内容
C:\Ruby\192\lib\ruby\gems\1.9.1\gems\pg-0.10.0\lib\

C:\Ruby\192\lib\ruby\gems\1.9.1\gems\pg-0.10.0\lib\1.9

谢谢路易斯! pg 0.9.0安装就好了。

对于最新版本(0.10.0),您需要devkit和这个命令“gem install pg – –with pg-dir = path / to / your / postgresql / dir”

当我离开额外的“ – ”,它会得到一个错误:“gem install pg –with-pg-dir = C:/postgresql/9.0”

我有同样的问题。 在PostgreSQL之前,你很可能在你的路径上安装了perl安装。 Windows最常见的perl安装在其bin中有一个可执行文件名称pg_config ,这会导致冲突。

只要你指定没有空格的路径(比如C:/ PROGRA〜),pg v0.10.0就可以正常安装rubyinstaller + devkit,否则就是nmake扼流圈。

Windows 7,PostgreSQL 8.4,Ruby 1.9.2:

 subst X:\ "C:\Program Files\PostgreSQL\8.4" gem install pg -- --with-pg=X:/ 

这安装成功。

其他简单的方法,在Windows上

  1. 安装postgresql ODBC。

  2. 从pgqlODBC lib目录复制libpq.dll

  3. 将其粘贴到PostGreSQL lib目录中

  4. 运行这个命令(根据你的命令修改这个命令中的PostGreSQL路径 ):

     gem install pg -- --with-pg-config="C:\Dev\Databases\PostgreSQL\9.0\bin\pg_config.exe" 

我遇到了同样的问题。 我想用dbi访问postgres数据库,必须安装Pg。 我花了一天的时间成功地编译模块,指令类似于这个线程的其他帖子。 但是第二次我必须这样做,我发现了另一个解决方案:使用ODBC。

  1. 安装postgresql的ODBC驱动程序( http://www.postgresql.org/ftp/odbc/versions/
  2. 配置数据源( http://www.xtuple.org/SettingUpPostgresAndOdbc
  3. 安装ruby dbi和odbc宝石

     gem install dbi gem install ruby-odbc gem install dbd-odbc 
  4. 连接到postgres

     require 'dbi' dbh = DBI.connect('dbi:ODBC:DSN_NAME', 'USER', 'PASS') 

这对我使用Windows XP 32位红宝石1.9.1。 此外,这不会更改您的代码中的任何东西,除了DBI.connect行,如果您已经使用DBI。

PostgreSQL 9.0:

 gem install pg --platform=mswin32 --version=0.9.0 -- '--with-pg="C:\Progra~1\PostgreSQL\"' 

注意单刻度封装。 (〜1表示“程序文件”,如果PostgreSQL在Win64上的程序文件(x86)中则更改为〜2)

pg gem的版本0.13.0 ,你应该可以使用类似下面的方法安装它:

 subst X: "C:\Program Files\PostgreSQL\9.0" gem install pg -- -- with-pg=X: subst X: /D 

然后,您可以成功运行bundle install并在输出中看到以下行:

 Using pg (0.13.0) 

而不是错误。

我知道了:

和魔术技巧:

 is that you do not have this installed -- > postgres-devel 

所以去得到它:

 install postgresql-devel 

多数民众赞成在所有…不仅仅是宝石安装pg,它在那里。