Как установить pg gem в PostgreSQL в Ubuntu? - PullRequest
272 голосов
/ 25 июня 2010

Я пытаюсь установить pg gem PostgreSQL для 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

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

Ответы [ 17 ]

637 голосов
/ 25 июня 2010

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

sudo apt-get install libpq-dev
39 голосов
/ 18 февраля 2012

После двухдневного чтения и пробных попыток, найденных в других заметках, следующая строчка стала для меня лекарством от Ubuntu Lucid 10.04, смешанного с некоторыми пакетами Maverick и RVM (ruby 1.9.2-p290, rvm 1.10 .2 rubygems 1.8.15, рельсы 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 (опция но я все равно далеко за пределами моей глубины

28 голосов
/ 15 января 2013

Я нахожусь на Ubuntu 12.10 и выполняю эту команду:

apt-get install libpq-dev

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

25 голосов
/ 08 января 2016

Нужно добавить пакет

sudo apt-get install libpq-dev

для установки pg gem в RoR

21 голосов
/ 04 сентября 2012

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

sudo apt-get install libpq-dev build-essential
16 голосов
/ 23 мая 2014

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

16 голосов
/ 06 марта 2018

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

sudo apt-get install libpq-dev

и

gem install pg  --   --with-pg-lib=/usr/lib 
9 голосов
/ 15 марта 2012

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

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

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

6 голосов
/ 27 марта 2013

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

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

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

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

5 голосов
/ 03 июля 2017

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

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

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

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

...