Как загрузить, скомпилировать и установить ТОЛЬКО исходный код libpq на сервер, на котором НЕ установлен PostgreSQL

Как я могу загрузить, скомпилировать, создать и установить ТОЛЬКО исходный код libpq на сервер (Ubuntu), на котором НЕ установлен PostgreSQL?

Я нашел исходный код libpq здесь. Однако похоже, что он НЕ отделим от всего PostgreSQL. Заранее спасибо.

Я НЕ хочу устанавливать весь PostgreSQL. Я хочу использовать libpq в качестве интерфейса C для PostgreSQL на ДРУГОМ сервере (также Ubuntu), на котором он ДЕЙСТВИТЕЛЬНО установлен.

Я также нашел эту старую ссылку, которая указывает, что вышеприведенное ВОЗМОЖНО, но не КАК это сделать.


person Love and peace - Joe Codeswell    schedule 22.04.2015    source источник


Ответы (2)


Я нашел исходный код libpq здесь. Однако похоже, что он НЕ отделим от всего PostgreSQL.

Он должен быть сконфигурирован со всем исходным деревом, потому что это то, что генерирует необходимые Makefile части. Но после настройки make && make install может работать только внутри каталога src/interfaces/libpq, а остальные полностью исключаются.

По шагам:

  1. скачать архив с исходным кодом, например https://ftp.postgresql.org/pub/source/v9.4.1/postgresql-9.4.1.tar.bz2
  2. распаковать в директорию сборки: tar xjf ~/Downloads/postgresql-9.4.1.tar.bz2
  3. apt-get install libssl-dev если он еще не установлен
  4. cd в него и настроить: cd postgresql-9.4.1; ./configure --with-openssl --without-readline
  5. Предполагая, что configure прошла успешно, перейдите в src/interfaces/libpq и запустите make
  6. все еще в каталоге libpq, запустите make install от имени пользователя root: sudo make install.

Это будет установлено в /usr/local/pgsql и подкаталоги как библиотека, независимая и изолированная от библиотеки, упакованной в Ubuntu, если она будет установлена. Чтобы установить его в другом месте, укажите местоположение с параметром --prefix на configure.

person Daniel Vérité    schedule 22.04.2015
comment
Если бы только ОП принял этот ответ как правильный... @Loveandpeace... К вашему сведению, подробности об опции --without-readline можно найти здесь. - person villapx; 11.03.2016

Помимо загрузки и настройки, необходимо выполнить следующие шаги:

cd src/interfaces/libpq; make; make install; cd -
cd src/bin/pg_config; make install; cd -
cd src/backend; make generated-headers; cd -
cd src/include; make install; cd -

Эти шаги дадут вам библиотеку и заголовки libpq, а также двоичный файл с именем pg_config и все заголовки серверной части postgresql, чтобы вы могли правильно скомпилировать такие вещи, как libpqxx.

(Я только что протестировал postgresql-9.6.5.)

person Sherwood Wang    schedule 24.09.2017
comment
Это выглядит коротко и мило, это все еще работает для Postgres 12? - person Jay; 14.06.2020
comment
Выглядит нормально на стр.12, по вашим инструкциям я получил libpq.so.5.12. Все еще не уверен, что этого достаточно, библиотека, которую я хочу использовать, это taopq (API выглядит чище и больше похож на то, что я делал на питоне) - person Jay; 15.06.2020