Сборка Slony-I

Ответить
crook
Интересующийся
Сообщения: 22
Зарегистрирован: 30 мар 2009, 09:12
Репутация: 0

Сборка Slony-I

Сообщение crook » 09 апр 2009, 11:48

У меня стоит PosgreSQL 8.3.7
Хочу скомпилировать Slony1-2.0.1
При выполнении ./configure выдает ошибку
configure: error: Your version of libpq doesn't have PQunescapeBytea
which means that your version of PostgreSQL is lower than 7.3
and thus not even remotely supported by Slony-I version 2
./configure: line 6973: exit: which: numeric argument required
./configure: line 6973: exit: which: numeric argument required

в чем проблема?

Aequilibrium
Новоприбывший
Сообщения: 14
Зарегистрирован: 29 мар 2009, 23:00
Репутация: 0
Откуда: Украина

Re: помогите собрать Slony1

Сообщение Aequilibrium » 09 апр 2009, 18:37

Приветствую,

Скорее всего линкер просто не видит libpq. Попробуйте
# locate libpq.so
и проверьте, так ли это (есть ли в /usr/lib симлинк на реальный so). Если симлинка действительно нет, то сделайте его на новейшую версию libpq (опять же руководствуясь результатами локейта чтобы найти, где она лежит). Например у меня это будет так:
# ln -s /usr/lib64/postgresql-8.3/lib64/libpq.so.5.1 /usr/lib/libpq.so
у вас путь может несколько отличаться в зависимости от выбранной арх-ры и версии libpq, естественно.
Удачи. Если проблема не в наличии libpq, будем думать дальше.

С уважением,
Павел

PS Если слокейт давно не обновляли, то сначала сделайте
# slocate -u

PPS Если слокейт у вас вообще не установлен, то вместо него поиск сделайте файндом
# find / -name libpq.so
а слокейт поставьте при первой возможности :)

crook
Интересующийся
Сообщения: 22
Зарегистрирован: 30 мар 2009, 09:12
Репутация: 0

Re: помогите собрать Slony1

Сообщение crook » 10 апр 2009, 11:29

на $ locate libpq.so cygwin вообще никак не реагирует..
через find файл не находит.

Скачал libpq.so.5 и сделал линк на него:
// $ ln-s 'c:/program files/posgresql/8.3/lib/libpq.so.5' /usr/lib/libpq

при конфигурации выдает ту же самую ошибку что и раньше. =(

PS:
выолняя команду как Вы показали ($ ln-s 'c:/program files/posgresql/8.3/lib/libpq.so.5' /usr/lib/libpq.so)
cygwin говорит, что нет директории /usr/lid/libpq.so

Aequilibrium
Новоприбывший
Сообщения: 14
Зарегистрирован: 29 мар 2009, 23:00
Репутация: 0
Откуда: Украина

Re: помогите собрать Slony1

Сообщение Aequilibrium » 10 апр 2009, 15:52

Давайте лучше по шагам распишу что и как надо делать. Или вы уже под виндами подняли?

Шаг первый. Необходимо убедиться, что проблема с установкой именно в отсутствующем libpq. Для этого из-под цигвина делаете
# ld -lpq
Если выдаст
ld: warning: cannot find start symbol ...
значит проблема в чем-то другом (что очень маловероятно).
Если же
ld: cannot find -lpq
то проблема именно в отстуствии libpq, идем дальше.

Шаг второй.
Под виндами копируете свою библиотеку libpq.so.5 в папку C:/CYGWIN/lib, или где там установлен у вас цигвин, найдите там папку lib и в неё кидайте.

Шаг третий
В цигвине
# cd /usr/lib
На этом шаге проблем возникнуть не должно, насколько я помню в цигвине (последний раз почти четыре года назад в него заглядывал, пардон) по умолчанию /usr/lib как раз нормально маунтится. Но если вдруг на вашем цигвине отсутствует /usr/lib (на эти мысли наводит сообщение об ошибке из вашего постскриптума), то попробуйте перейти в /lib
# cd /lib
В любом случае после этого проверяем, видна ли библиотека, которую мы кинули в цигвин на шаге два
# dir | grep libpq
Должно выдать
libpq.so.5

Шаг четвертый
Не выходя из директории, где нашелся libpq.so.5 (/usr/lib или /lib) делаем симлинк
# ln -s libpq.so.5 libpq.so
Пробуем опять выполнить
# ld -lpq
Если после этого будет
ld: warning: cannot find start symbol ...
то после этого можно пробовать конфигурить slony1

Если что-то не получится - пишите, на каком шаге что сбойнуло, только в свой пост включите вывод команд
# ls / -l
# ls /usr -l | grep libpq
# ls /usr/lib -l | grep libpq

crook
Интересующийся
Сообщения: 22
Зарегистрирован: 30 мар 2009, 09:12
Репутация: 0

Re: помогите собрать Slony1

Сообщение crook » 11 апр 2009, 19:01

В самом конце уже, на шаге четвертом при выполнении
>>Пробуем опять выполнить
>># ld -lpq

выдал : ld: cannot find -lpq

В этот раз при конфигурировании cygwin надолго задумался (минуты 3-4 ), но в итоге все равно такая же ошибка
checking for PQunescapeBytea in -lpq... no
configure: error: Your version of libpq doesn't have PQunescapeB
which means that your version of PostgreSQL is lower than 7
and thus not even remotely supported by Slony-I version 2
./configure: line 6973: exit: which: numeric argument required
./configure: line 6973: exit: which: numeric argument required

вывод команд:
crook@winxpsp3-pc /usr/lib
$ ls / -l
total 901
-rwxr-x---+ 1 crook Пользователи 57 Apr 8 23:42 Cygwin.bat
-rwxr-x---+ 1 crook Пользователи 7022 Apr 9 07:06 Cygwin.ico
drwxrwx---+ 2 crook Пользователи 0 Apr 9 00:59 bin
dr-xr-xr-x 1 0 root 0 Jan 1 1970 cygdrive
drwxrwx---+ 2 crook Пользователи 0 Apr 8 23:40 dev
drwxrwx---+ 11 crook Пользователи 0 Apr 9 00:58 etc
drwxrwxrwx+ 3 crook Отсутствует 0 Apr 8 23:42 home
drwxrwx---+ 20 crook Пользователи 0 Apr 11 19:45 lib
dr-xr-xr-x 1 crook Отсутствует 0 Dec 1 2006 proc
-rwx------+ 1 crook Отсутствует 912676 Apr 8 23:44 tcl-8.4.1.tar.gz
drwxrwxrwt+ 2 crook Пользователи 0 Apr 11 19:41 tmp
drwxrwx---+ 16 crook Пользователи 0 Apr 9 00:59 usr
drwxrwx---+ 7 crook Пользователи 0 Apr 8 23:40 var

crook@winxpsp3-pc /usr/lib
$ ls /usr -l | grep libpq

crook@winxpsp3-pc /usr/lib
$ ls /usr/lib -l | grep libpq
-rwx------+ 2 crook Отсутствует 117879 Apr 10 11:58 libpq
lrwxrwxrwx 1 crook Отсутствует 10 Apr 11 19:44 libpq.so -> libp
q.so.5
-rwx------+ 1 crook Отсутствует 117879 Apr 10 11:58 libpq.so.5

Aequilibrium
Новоприбывший
Сообщения: 14
Зарегистрирован: 29 мар 2009, 23:00
Репутация: 0
Откуда: Украина

Re: помогите собрать Slony1

Сообщение Aequilibrium » 12 апр 2009, 14:57

Ясно, статической библиотеки нет. Выполните следующее:

Код: Выделить всё

# cp `pg_config --libdir`/libpq.* /usr/lib
(кавычки одинарные обратные). И пробуйте еще раз запустить конфигур.
Если это не получится (особенно если при выполнении команды будут ошибки "not found"), то проблема глубже, со сборкой библиотек постгресом. Напишите тогда здесь вывод:

Код: Выделить всё

# pg_config --libdir | ls -l | grep libpq
# ls -l /usr/lib | grep libpq
+ сообщения об ошибках при выполнении первой команды, если таковые обнаружатся, и будем думать дальше. Удачи.

crook
Интересующийся
Сообщения: 22
Зарегистрирован: 30 мар 2009, 09:12
Репутация: 0

Re: помогите собрать Slony1

Сообщение crook » 12 апр 2009, 19:39

crook@winxpsp3-pc ~
$ pg_config --libdir | ls -l | grep libpq
bash: pg_config: command not found

crook@winxpsp3-pc ~
$ ls -l /usr/lib | grep libpq
-rwx------+ 2 crook Отсутствует 117879 Apr 10 11:58 libpq
lrwxrwxrwx 1 crook Отсутствует 10 Apr 11 19:44 libpq.so -> libp
q.so.5
-rwx------+ 1 crook Отсутствует 117879 Apr 10 11:58 libpq.so.5

crook@winxpsp3-pc ~
$ cp `pg_config --libdir`/libpq.* /usr/lib
bash: pg_config: command not found
cp: cannot stat `/libpq.*': No such file or directory

говорит нету команды pg_config.
Может это из-за того, что постгрес ставил с экзешника?Может его надо было так же компилировать?

Aequilibrium
Новоприбывший
Сообщения: 14
Зарегистрирован: 29 мар 2009, 23:00
Репутация: 0
Откуда: Украина

Re: помогите собрать Slony1

Сообщение Aequilibrium » 12 апр 2009, 20:41

Вот это:
pg_config: command not found
говорит о том, что постгреса у вас в системе просто нет. Физически.
crook писал(а):Может это из-за того, что постгрес ставил с экзешника?Может его надо было так же компилировать?
Ну как бы да. Боже, только не говорите, что вы слонов пытаетесь компилить под цигвином, а постгрес перед этим ставили под виндами :shock:

crook
Интересующийся
Сообщения: 22
Зарегистрирован: 30 мар 2009, 09:12
Репутация: 0

Re: помогите собрать Slony1

Сообщение crook » 13 апр 2009, 08:14

Именно так :oops:

Тогда сегодня скачаю бинарники постреса и скомпилю, если что не так то отпишу =)

crook
Интересующийся
Сообщения: 22
Зарегистрирован: 30 мар 2009, 09:12
Репутация: 0

Re: помогите собрать Slony1

Сообщение crook » 13 апр 2009, 08:15

Просто я не мог найти виндовский инсталлер слонов под постгрес 8.3

Aequilibrium
Новоприбывший
Сообщения: 14
Зарегистрирован: 29 мар 2009, 23:00
Репутация: 0
Откуда: Украина

Re: помогите собрать Slony1

Сообщение Aequilibrium » 13 апр 2009, 18:46

Я бы вам ответил цитатой из Булгакова: "Теоретически это интересно. Ну, ладно! Физиологи будут в восторге. Москва беснуется... Ну, а практически что?" (с) Имхо логичнее наоборот - найти виндовые бинарники постгреса 8.2, сделать даунгрейд с 8.3 на последнюю версию 8.2, и поставить на него виндовых слонов под 8.2. Зато все будет вам знакомо и привычно. Судя по списку багфиксов, 8.2 по-прежнему поддерживается (так же как и 8.0, 8.1 и 7.4), заплатки к нему выходят регулярно. Если не делать фетиша из версии с самой большой циферкой, то в остальном я очень сомневаюсь, что вам нужна какая-то особенная функциональность 8.3. Да и Постгис, если он вам нужен, тоже ставится 1.3.5 на 8.2, я видел виндовые бинарники. Короче подумайте хорошенько.

crook
Интересующийся
Сообщения: 22
Зарегистрирован: 30 мар 2009, 09:12
Репутация: 0

Re: помогите собрать Slony1

Сообщение crook » 14 апр 2009, 08:44

Спасибо за совет, наверно так и сделаю, только с экзешника поставлю.
А то сейчас времени нет разбираться, потом как нибудь покопаюсь с бинарниками (интересно стало).

Еще такой вопрос: не подскажите где можно почитать, как написать скрипт, который подключается к БД и читает таблицы (желательно не на перле)? Чтобы он выполнялся по рассписанию это, как я понимаю, надо делать с помощью pg_Agent.

Aequilibrium
Новоприбывший
Сообщения: 14
Зарегистрирован: 29 мар 2009, 23:00
Репутация: 0
Откуда: Украина

Re: помогите собрать Slony1

Сообщение Aequilibrium » 14 апр 2009, 11:07

Еще такой вопрос: не подскажите где можно почитать, как написать скрипт, который подключается к БД и читает таблицы (желательно не на перле)? Чтобы он выполнялся по рассписанию это, как я понимаю, надо делать с помощью pg_Agent.
Навскидку из простого - питон, под который написана масса модулей для постгреса, или пхп. Что вам ближе. Потом найдете подходящий планировщик задач под винду, даже необязательно пгагент, и оформите расписание.
Здесь зависит от того, какие именно задачи и с какой машины вы хотите выполнять. Начнем с машины. pgagent да, очень удобен именно для винды, я даже так сходу более удобной альтернативы и не придумаю. Но под *никс имхо при наличии крона пгагент не нужен вообще.
Теперь насчет задач. На самом деле все сильно зависит от того, что должен выполнять ваш скрипт. пгагент умеет запускать системные скрипты (шелл под виндами и баш под *никс), и поэтому используется он в основном для организации бекапа. Но кроме этого в пгагенте есть, например, такая интересная штука как SQL Job, которая дает вам низкоуровневое управление вашими таблицами и функциями без необходимости скармливать запросы через psql -f. В сухом остатке получаем для написания скрипта необходимость знания 1) шелла, 2) SQL и 3) ключей к постгресовским утилитам - комбинируя эти вещи в пгагенте в принципе можно выполнить большинство админзадач.
Но. Если ваши задачи сильно выходят за рамки поддержки и администрирования, и подразумевают более сложную обработку, особенно с использованием каких-то еще источников данных (ну например построение графиков, формирование таблиц в хтмл и т.п.) то лучше конечно воспользоваться еще каким-то языком, варианты я предложил.
Все это имхо конечно.

crook
Интересующийся
Сообщения: 22
Зарегистрирован: 30 мар 2009, 09:12
Репутация: 0

Re: помогите собрать Slony1

Сообщение crook » 15 апр 2009, 08:21

Спасибо большое, буду разбираться =)

Ответить

Вернуться в «PostGIS/PostgreSQL»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя