Я использую предварительную версию Ruby on Rails 3.1. Мне нравится использовать PostgreSQL, но проблема заключается в установке pg
драгоценного камня. Это дает мне следующую ошибку:
$ gem install pg
Building native extensions. This could take a while...
ERROR: Error installing pg:
ERROR: Failed to build gem native extension.
/home/u/.rvm/rubies/ruby-1.9.2-p0/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=/home/u/.rvm/rubies/ruby-1.9.2-p0/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 /home/u/.rvm/gems/ruby-1.9.2-p0/gems/pg-0.11.0 for inspection.
Results logged to /home/u/.rvm/gems/ruby-1.9.2-p0/gems/pg-0.11.0/ext/gem_make.out
Как мне решить эту проблему?
ruby-on-rails
ruby-on-rails-3
postgresql
rails-postgresql
pg
demonchand
источник
источник
Ответы:
В Ubuntu похоже, что заголовок является частью
libpq-dev
пакета (по крайней мере, в следующих версиях Ubuntu: 11.04 (Natty Narwhal), 10.04 (Lucid Lynx), 11.10 (Oneiric Ocelot), 12.04 (Precise Pangolin), 14.04 (Trusty Tahr) и 18.04 (Бионический Бобр)):Так что попробуйте установить
libpq-dev
или его эквивалент для вашей ОС:sudo apt-get install libpq-dev
yum install postgresql-devel
brew install postgresql
gem install pg -- --with-pg-config=/opt/local/lib/postgresql[version number]/bin/pg_config
zypper in postgresql-devel
pacman -S postgresql-libs
источник
durrantm@castleLinux2011:~/Dropbox_not_syncd/webs/3/linker$ gem install libpq-dev ERROR: Could not find a valid gem 'libpq-dev' (>= 0) in any repository durrantm@castleLinux2011:~/Dropbox_not_syncd/webs/3/linker$
apt-get install postgres-server-dev-{pg.version}
Ваш ответ больше не работает с postgresql 9.4 в Ubuntu 14.04. См .: stackoverflow.com/a/28837453/75194В macOS (ранее Mac OS X и OS X ) используйте Homebrew для установки правильных заголовков:
а затем работает
должно сработать.
В качестве альтернативы, вместо установки целого
postgresql
, вы можетеbrew install libpq
и экспортировать правильныеPATH
иPKG_CONFIG_PATH
как объяснено в разделе «Предостережения»источник
brew install postgressql
я бегуARCHFLAGS="-arch x86_64" gem install pg
и отлично работает.brew install libpqxx
на Mac OSXlibpqxx
устанавливаетсяpostgresql
как зависимость, так что по сути это то же самое, что иbrew install postgresql
postgresql
, вы можетеbrew install libpq
и экспортировать правильныеPATH
иPKG_CONFIG_PATH
как объяснено в разделе «Предостережения».Я также пытался сделать
gem install libpq-dev
, но я получил эту ошибку:Однако я обнаружил, что установка с
sudo apt-get
(которую я стараюсь избегать с Ruby on Rails) работала, т.е.тогда я смог сделать
без проблем.
источник
libpq-dev
пакетом Ubuntu / Debian / ....Я мог бы решить это по-другому. Я не нашел библиотеку в моей системе. Таким образом, я установил его с помощью приложения с основного сайта PostgreSQL. В моем случае (OS X) я обнаружил файл,
/Library/PostgreSQL/9.1/include/
когда установка была закончена. У вас также может быть файл в другом месте, в зависимости от вашей системы, если у вас уже установлен PostgreSQL.Благодаря этой ссылке о том, как добавить дополнительный путь для установки gem , я мог указать gem на lib с помощью этой команды:
После этого он работает, потому что теперь знает, где найти недостающую библиотеку. Просто замените путь на правильное место для вашего libpq-fe.h
источник
export CONFIGURE_ARGS="with-pg-include=/usr/local/Cellar/postgresql/9.3.1/include/"
pg_*
скрипты в $ PATH следующим образом:ln -s /usr/pgsql-9.3/bin/p* /usr/local/bin
. Я установил postgres 9.3 примерно так:yum install http://yum.postgresql.org/9.3/redhat/rhel-6-x86_64/pgdg-redhat93-9.3-1.noarch.rpm && yum install postgresql93 postgresql93-contrib postgresql93-server postgresql93-devel
gem install pg -- with-pg-include=/Library/PostgreSQL/9.1/include/
export CONFIGURE_ARGS="with-pg-config=/path/to/postgres/bin/pg_config"
.pg_config
Исполняемый файл будет называться , чтобы получить все необходимые опции компилятора и компоновщика - вы можете запустить его самостоятельно , чтобы увидеть их.у меня был успех на CentOS 7.0.1406 с помощью следующих команд:
В качестве альтернативы , вы можете настроить упаковщик так, чтобы он всегда устанавливался
pg
с этими параметрами (полезно для запуска упаковщика в средах развертывания),bundle config build.pg --with-pg-config=/usr/pgsql-9.4/bin/pg_config
источник
Для CentOS 6.4,
работал хорошо!
источник
sudo port install postgresql-devel
.Только для записи:
Приложение Ruby on Rails 4 в OS X с PostgresApp (в данном случае нужна версия 0.17.1 - своего рода старый проект):
источник
/Applications/Postgres.app/Contents/Versions/10/bin/pg_config
На Mac OS X запустите так:
***/path/to/pg_config***
это путь к pg_configисточник
sudo find / -name "pg_config"
, а затемgem install pg -- --with-pg-config=/Library/PostgreSQL/9.4/bin/pg_config
использовать только что обнаруженный путь.В моем случае это был пакет
postgresql-server-dev-8.4
(я на Ubuntu 11.04 (Natty Narwhal), 64 бита).источник
Правильный ответ для пользователей Mac с Postgres.app - это сборка с использованием
libpq
этого пакета. Например, в версии 9.4 (текущей на момент написания статьи) все, что вам нужно, это:Это будет
pg
синхронизировать ваш драгоценный камень с той версией PostgreSQL, которую вы установили. Установка чего-либо из Homebrew в данном случае является пустой тратой.источник
У меня была такая же проблема на Amazon Linux. Я мог найти заголовок
libpq-fe.h
, но как-то это не сработало.Это были разные версии пакетов, которые были установлены разными пользователями на компьютере. PostgreSQL 9.2 и PostgreSQL 9.3 были установлены. Поэтому убедитесь, что у вас есть версия PostgreSQL, прежде чем включать библиотеки.
Для меня волшебная командная строка была:
Источник: Практически идиотское руководство по установке PostgreSQL 9.3, PostGIS 2.1 и pgRouting с Yum
источник
Более общий ответ для любого дистрибутива на основе Debian (который включает в себя Ubuntu) заключается в следующем. Сначала установите
apt-file
пакет, работающий от имени пользователя root:Это позволяет вам искать пакеты, содержащие файл. Затем обновите свою базу данных, используя
(это можно запустить как обычный пользователь). Затем найдите отсутствующий заголовок, используя:
На моей машине это дает:
Вот и вы!
источник
Для MacOS без установки сервера PostgreSQL:
источник
На Mac я решил это с помощью этого кода:
источник
Я запускаю Postgres.app на Mac, и мне пришлось
первый. затем
работал на меня.
источник
У меня была та же проблема в Mac OS, но я легко установил гем PostgreSQL, используя в терминале следующее:
(Сначала я установил PostgreSQL
brew install postgresql
.)источник
Я нашел этот ответ, и он был единственным, который работал для меня (Mac OS) - после исследования в течение примерно двух дней:
См. Вопрос переполнения стека. Не удается найти клиентскую библиотеку PostgreSQL (libpq) .
источник
Недавно я обновил Mac OS X до версии 10.10 (Yosemite), и мне было трудно собрать
pg
.Сообщение об ошибке было типичным:
Мое решение состояло в том, чтобы
gem uninstall pg
затемbundle update pg
заменить драгоценный камень самым последним. Я запустилbrew update; brew upgrade
после установки Yosemite, чтобы получить последние версии пакетов, которые я установил ранее.источник
В Ubuntu установите «libpq-dev», чтобы избавиться от этой проблемы.
источник
sudo apt-get install postgresql
раньшеlibpq-dev
На CentOS я установил
libpq-dev package
с помощью команды нижеВыполнение
gem install pg
вернуло ту же ошибку, что и "No pg_config... trying anyway. If building fails, please try again with --with-pg-config=/path/to/pg_config
".Установка драгоценного камня, как показано ниже, решила мою проблему
источник
Во FreeBSD (9.1) необходимым пакетом является / usr / ports / database / postgresql-server *, который при установке также установит требуемый заголовочный файл, который приводит к сбою установки gem для "pg". Этот ответ помог мне найти решение, но разница в именах пакетов потребовала небольшого количества поиска.
Надеюсь, это поможет кому-то избежать царапин на голове при поиске пакета «-dev» в системе FreeBSD!
источник
В Debian 7.0, 64-bit (Wheezy), просто запустите:
После того, как вы успешно установили libpq-dev, запустите:
источник
Под CentOS 6.5 (Squeeze) я создал файл:
с содержанием:
Обратите внимание: вы должны установить путь к PostgreSQL с помощью файла pg_config. Вы можете найти это с помощью команды:
Сохраните файл:
и попробуйте выполнить вашу команду снова.
Примечание. Каждый раз, когда вы изменяете конфигурацию Bash - изменяя конфигурацию profile.d - вы должны перезагрузить Bash.
источник
pg_*
сценарии в пути примерно так:ln -s /usr/pgsql-9.3/bin/p* /usr/local/bin
. После этого мне не нужно было никаких дополнительных сценариев или переменных среды.Расположение
libpq-fe.h
зависит от того, где установлена ваша PostgreSQL (зависит от того, как вы ее установили). Используйтеlocate
( http://en.wikipedia.org/wiki/Locate_%28Unix%29 ), чтобы найтиlibpq-fe.h
файл на вашем компьютере. Если он существует, он будет находиться вinclude
каталоге вашей установки PostgreSQL.bin
Каталог, который содержитpg_config
, будет находиться в том же каталоге, что иinclude
каталог. Как показывает ошибка, используйте параметр --with-pg-config, чтобы установить гем:Обратите внимание, что вам может потребоваться запустить,
updatedb
если вы никогда не использовалиlocate
или если вы не обновляли с момента установки PostgreSQL.источник
--
до--with-pg-config=...
я получаю сообщение об ошибке: ОШИБКА: при выполнении gem ... (OptionParser :: InvalidOption) недопустимая опция: --with-pg-config = / usr / bin / pg_config)Я наконец решил эту проблему, но не используя ранее описанные методы.
Используя
brew install postgresql
, я узнаю, что он уже был установлен, но не связан.Узнайте, где установлен PostgreSQL, и удалите его,
Потом
brew install postgresql
опятьbrew link postgresql
gem install pg
источник
Я только что это на OSX работает Brew и
postgres@9.4
.Мое исправление было таким:
источник
У меня была эта проблема с Postgresql 9.6. Я смог это исправить, выполнив:
источник
Я столкнулся с той же ошибкой с postgres, установленным через asdf. Решения pg-config у меня не сработали. Вместо этого мне пришлось найти папку postgres include, которая содержит файл, и запустить команду с
--with-pg-include
флагомисточник
Для
AltLinux
пакетаpostgresqlx.x-devel
(в моем случаеpostgresql9.5-devel
) должны быть установлены:источник
Я решил это, установив пакет 'postgresql-common'. Этот пакет предоставляет
pg_config
двоичный файл, который, скорее всего, вы пропустили.источник