Как установить pg gem в PostgreSQL в Ubuntu?

248

Я пытаюсь установить PostgreSQL pg gem для Ruby.

Я выпустил следующую команду:

gem install pg

Я установил Ruby 1.9.2 с помощью RVM.

Приведенная выше команда показывает мне следующую ошибку.

Ошибка:

Building native extensions.  This could take a while...

ERROR:  Error installing pg:

ERROR: Failed to build gem native extension.

/home/User/.rvm/rubies/ruby-1.9.2-preview3/bin/ruby extconf.rb

checking for pg_config... yes
checking for libpq-fe.h... yes
checking for libpq/libpq-fs.h... yes
checking for PQconnectdb() in -lpq... no
checking for PQconnectdb() in -llibpq... no
checking for PQconnectdb() in -lms/libpq... no
Can't find the PostgreSQL client library (libpq)

*** 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/User/.rvm/rubies/ruby-1.9.2-preview3/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
 --enable-static-build
 --disable-static-build
 --with-pqlib
 --without-pqlib
 --with-libpqlib
 --without-libpqlib
 --with-ms/libpqlib
 --without-ms/libpqlib

Gem files will remain installed in /home/user/.rvm/gems/ruby-1.9.2-preview3/gems/pg-0.9.0 for inspection.

Results logged to /home/user/.rvm/gems/ruby-1.9.2-preview3/gems/pg-0.9.0/ext/gem_make.out

Я не знаю, что такое ошибка...

Теги:
pg

17 ответов

647

Вам необходимо установить пакет postgreSQL dev с заголовком PostgreSQL

sudo apt-get install libpq-dev
  • 0
    Я сделал это в соответствии с вашим предложением ... получить следующую Необходимость получить 0B архивов. После распаковки освободится 5378кБ. Вы хотите продолжить? [Y / n /?] Y Запись расширенной информации о состоянии ... Готово (Чтение базы данных ... 166183 файлов и каталогов, установленных в данный момент.) Удаление Bison ... Удаление libnss3-dev ... Удаление libnspr4-dev ... Удаление libqt4-core ... Удаление libqt4-test ... Удаление libsqlite3-dev ... Обработка триггеров для man-db ..
  • 5
    Кажется, это не решает мою проблему .... я все еще застрял с тем же
Показать ещё 12 комментариев
39

После прочтения и опрокидывания в течение 2 дней, а также для многих вещей, найденных в других заметках, следующая единственная строка была для меня средством для Ubuntu Lucid 10.04, смешанного с некоторыми пакетами Maverick и RVM (ruby 1.9.2-p290, rvm 1.10.2 rubygems 1.8.15, rails 3.0.1, postgres 8.4.10):

gem install pg  --   --with-pg-lib=/usr/lib   

результат:

Building native extensions.  This could take a while...  
Successfully installed pg-0.13.1  
1 gem installed  
Installing ri documentation for pg-0.13.1...  
Installing RDoc documentation for pg-0.13.1...  

{да - наконец успех}!! ! Обратите внимание, что на выходе из запущенного pg_config отсутствует элемент -lpq в переменной LIBS в моей установке Ubuntu/Postresql!

и почему переход от pq к pg в определенных местах - запутанный для новичков?

вещь, которую я до сих пор не понимаю, - это двойной набор - и --with (опция но я все равно вне моей глубины

  • 0
    Вы спасли мою жизнь!!
  • 1
    '-' обычно используется для отделения параметров первой команды от второй, в данном случае это скрипт конфигурации extmod
Показать ещё 2 комментария
29

Я на Ubuntu 12.10 и запускаю эту команду:

apt-get install libpq-dev

помог мне - после этого запустил gem install pg -v "0.14.1", и теперь все хорошо

23

Необходимо добавить пакет

sudo apt-get install libpq-dev

установить pg gem в RoR

19

Установка libpq-dev не помогла мне. Мне также нужно было установить build-essential

sudo apt-get install libpq-dev build-essential
  • 0
    Это работает с Ubuntu 16.04.1 на Digital Ocean
16

Простое решение для пользователей ubuntu...

Сначала удалите все пакеты postgres, затем запустите эти комбаты...

sudo apt-get install postgresql
sudo apt-get install postgresql-client libpq5 libpq-dev

# for rvm (single user)
mv ~/.rvm/usr/lib ~/.rvm/usr/lib_rvm 

# for rvm (multi-user)
mv /usr/local/rvm/usr/lib /usr/local/rvm/usr/lib_rvm

gem install pg  --   --with-pg-lib=/usr/lib

Затем запустите 'bundle install'. Все будет отлично. Удачного дня!

  • 1
    Если кому-то интересно узнать, как удалить все пакеты postgres, выполните sudo apt-get remove --purge postgresql postgresql-9.3 (или любую другую версию postgres).
10

В Ubuntu это работает для меня, я надеюсь помочь вам:

sudo apt-get install libpq-dev

а также

gem install pg  --   --with-pg-lib=/usr/lib 
9

Для пользователей .RVM это будет лучше:

rvmsudo gem install pg -- --with-pg-lib=/usr/lib 

это сработало для меня (после того, как я увидел версию jdupont)

6

Если у вас установлен libpq-dev и по-прежнему возникает эта проблема, это, скорее всего, из-за противоречивых версий OpenSSL libssl и друзей - версии системы Ubuntu в /usr/lib (с которой libpq построен против) и второй версии RVM установленный в $HOME/.rvm/usr/lib (или/usr/local/rvm/usr/lib, если он устанавливается системой). Вы можете проверить это, временно переименовав $HOME/.rvm/usr/lib и посмотрев, работает ли "gem install pg".

Чтобы решить эту проблему, выполните команду rvm rebuild с использованием системных OpenSSL-библиотек (вам может потребоваться вручную удалить libssl. * и libcrypto. * из каталога rvm/usr/lib):

rvm reinstall 1.9.3 --with-openssl-dir=/usr

Это, наконец, решило проблему для меня на Ubunto 12.04.

  • 0
    Спасибо за этот ответ! Чем новее Ubuntu и чем старше сборка ruby, тем больше вероятность несоответствия OpenSSL.
  • 0
    Ничто другое не сработало, кроме этого! Большое вам спасибо @ Майк-Блэквелл. Я почти потерял надежду, прежде чем вы пришли на помощь.
5

Попробуйте это

sudo apt-get install postgresql postgresql-contrib libpq-dev

Вы должны установить сервер базы данных PG, в первую очередь, для установки клиентов. После этого вы устанавливаете клиентов.

См. это сообщение в блоге, чтобы узнать о настройке PostGresSQL в первый раз для разработки Ruby on Rails.

5

Это решило проблему для меня на Ubuntu 12.04 после того, как каждое предложение здесь потерпело неудачу.

rvmsudo gem install pg -v '0.12.2' -- --with-pg-lib=/usr/include/postgresql
  • 0
    Мое решение было почти таким же; Я использую rbenv, и у меня сработало следующее: `gem install pg - --with-pg-lib = / usr / lib / postgresql / --with-pg-include = / usr / include / postgresql /`; Мне не нужно было указывать версию.
3

Я пытался настроить проект Rails в моем недавно установленном Ubuntu 16.04. Я столкнулся с проблемой при запуске пакета. Запуск

sudo apt-get install aptitude

за которым следует

sudo apt-get install libpq-dev

Решил это для меня.

2

Для тех, кто по-прежнему испытывает проблемы после того, как попробовал все ответы на этой странице, следующее (наконец) работало:

sudo apt-get install libgmp3-dev
gem install pg

Это было после, делая все остальное, упомянутое на этой странице.

postgresql 9.5.8
Ubuntu 16.10

  • 0
    Это было то, что мне было нужно в Ubuntu 18.04
1

Для тех, кто пытается установить Redmine, я пропустил sudo apt-get install ruby-all-dev после того, как попробовал все вышеперечисленное.

Исходная ошибка mkmf.rb can't find header files for ruby at /usr/lib/ruby/include/ruby.h.

1

Другим решением этой проблемы является установка PostgreSQL с использованием Homebrew/linuxbrew:

brew install postgresql

Как правило, я не люблю использовать sudo, если только не хочу.

  • 0
    Доморощенный только для Mac.
  • 2
    Там есть форк Linux.
1

У меня была такая же проблема, и я попробовал много разных вариантов. После некоторых попыток я смог sudo gem install, но все еще есть проблема, чтобы установить его без sudo.
Наконец я нашел деление - мне помогла переустановка rvm. Вероятно, это может сэкономить время кому-то другому.

0

apt-get install ruby-dev работал для меня.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню