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

Я пытаюсь установить 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

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

Ответ 1

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

sudo apt-get install libpq-dev

Ответ 2

После прочтения и опрокидывания в течение 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 (опция но я все равно вне моей глубины

Ответ 3

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

apt-get install libpq-dev

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

Ответ 4

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

sudo apt-get install libpq-dev

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

Ответ 5

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

sudo apt-get install libpq-dev build-essential

Ответ 6

Простое решение для пользователей 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'. Все будет отлично. Удачного дня!

Ответ 7

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

sudo apt-get install libpq-dev

а также

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

Ответ 8

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

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

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

Ответ 9

Если у вас установлен 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.

Ответ 10

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

rvmsudo gem install pg -v '0.12.2' -- --with-pg-lib=/usr/include/postgresql

Ответ 11

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

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

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

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

Ответ 12

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

sudo apt-get install aptitude

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

sudo apt-get install libpq-dev

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

Ответ 13

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

sudo apt-get install libgmp3-dev
gem install pg

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

postgresql 9.5.8
Ubuntu 16.10

Ответ 14

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

Ответ 15

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

brew install postgresql

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

Ответ 16

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

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

Ответ 17

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