Не могу установить pg gem в Windows - PullRequest
32 голосов
/ 02 декабря 2010

У меня есть 2 версии Ruby: 1.8.7 и 1.9.2 и PostgreSQL 8.3.Я не могу установить pg gem на любой из них.Получение этой ошибки:

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

Я знаю, что это распространенная проблема, но я не нашел никакого рабочего решения ... О, я добавил C: \ Program Files (x86) \ PostgreSQL \ 8.3\ bin к моему PATH.

Ответы [ 16 ]

31 голосов
/ 02 декабря 2010

Сообщение, которое вы получаете, ясно указывает на то, что вам не хватает чего-то для правильной установки этого драгоценного камня:

Не удалось создать Makefile по какой-то причине, вероятно, из-за отсутствия необходимые библиотеки и / или заголовки. Проверьте файл mkmf.log для более подробности. Вам могут потребоваться параметры конфигурации.

Нет родной версии Windows последней версии pg (0.10.0), выпущенной вчера, но если вы установите 0.9.0, он должен установить двоичные файлы без проблем.

В любом случае, если вы хотите установить гем, вам нужно установить среду сборки. Если вы используете RubyInstaller, то вам нужен DevKit

Для установки драгоценного камня потребуется только предоставить дополнительные параметры для установки драгоценного камня (например, --with-pg-dir)

subst X: "C:\Program Files (x86)\PostgreSQL\8.3"
gem install pg -- --with-pg-dir=X:
subst X: /D
27 голосов
/ 20 февраля 2011

PsAdding для пользователей Linux.

Я решил эту ошибку при установке libpq-dev.

12 голосов
/ 21 декабря 2010

Я боролся с этим в течение двух дней.Я делаю мои вещи из командной строки rails из превосходного unixy-подобного командного окна, предоставляемого msysgit.Я создал файл 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 исчезли.Надеюсь, это спасет кого-то от проблем, с которыми я столкнулся.

8 голосов
/ 05 января 2011

После почти двух дней проб и ошибок (и во многом благодаря советам предыдущего поста в этой теме и в других местах я смог успешно установить pg 0.10.0 в Ruby 1.8.7 (для обоих моихRubyInstaller и мои версии InstantRails.) В случае, если кто-то столкнется с этой проблемой снова, я подведу итоги моего окончательного успешного процесса установки.

Сначала мне пришлось установить DevKit , следуя инструкциям по установке.Мне пришлось скопировать (для безопасности), а затем удалить файл operating_system.rb в папке \ Ruby187 \ lib \ ruby ​​\ site_ruby \ 1.8 \ rubygems \ defaults для успешной установки.

Во-вторых, яустановил rake-compiler и rdoc gems. 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) на самом деле не работала.

Еще раз спасибо этимв этой теме, кто помог мне в этой последовательности.

3 голосов
/ 03 марта 2011

Может показаться, что ежу понятно, но у меня была та же ошибка с небольшим поворотом. Получив сборку для поиска заголовков, она сразу же потерпела неудачу и заявила, что не может найти libpq. Наконец, я понял, что я пытался собрать с 64-битной установкой postgres с 32-битным ruby. Установка 32-битного Postgres привела к мгновенному исправлению. Просто подумал, что добавлю это на тот случай, если кто-нибудь с такой же ошибкой наткнется на эту тему.

3 голосов
/ 24 января 2011

Первая установка ruby ​​DevKit

В Windows XP и в терминале MSysGIT bash выполните следующие действия. на основе моего пути установки

subst X: "D: / Program Files / PostgreSQL / 9.0"

gem install pg - --with-pg = X:

Мой gem pg-0.10.1 успешно установлен.

2 голосов
/ 12 марта 2018

"gem install pg" не работает

Получение: pg-0.17.0.gem (100%) Сборка собственных расширений. Это может занять некоторое время ... ОШИБКА: Ошибка установки pg: ОШИБКА: не удалось создать собственное расширение для гема.

Попробуйте, это сработало для меня, и я уверен, что это сработает и для вас ::

#On Ubuntu
    $ sudo apt-get install postgresql-client libpq5 libpq-dev
    $ sudo gem install pg

Это также должно работать с "Bash на Ubuntu в Windows"

2 голосов
/ 30 декабря 2010

Сообщение «Не удается найти заголовок 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, вам понадобится рубиновый DevKit (http://rubyinstaller.org/downloads/)

Я встречаюсь с другой проблемой:

D:\app1>rake test<br> (in D:/app1)<br> rake aborted!<br> 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

1 голос
/ 24 марта 2011

Другим простым способом, на окнах

  1. Установите postgresql ODBC.

  2. Скопируйте libpq.dll из каталога lib pgqlODBC

  3. Вставьте его в каталог lib PostGreSQL

  4. Запустите эту команду (адаптируйте путь PostGreSQL в этой команде, в соответствии с вашей):

    gem install pg -- --with-pg-config="C:\Dev\Databases\PostgreSQL\9.0\bin\pg_config.exe"
    
1 голос
/ 21 января 2011

Windows 7, PostgreSQL 8.4, Ruby 1.9.2:

subst X:\ "C:\Program Files\PostgreSQL\8.4"

gem install pg -- --with-pg=X:/

Это успешно установлено.

...