Страница 1 из 1

Сборка Slony-I

Добавлено: 09 апр 2009, 11:48
crook
У меня стоит 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

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

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

Добавлено: 09 апр 2009, 18:37
Aequilibrium
Приветствую,

Скорее всего линкер просто не видит 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
а слокейт поставьте при первой возможности :)

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

Добавлено: 10 апр 2009, 11:29
crook
на $ 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

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

Добавлено: 10 апр 2009, 15:52
Aequilibrium
Давайте лучше по шагам распишу что и как надо делать. Или вы уже под виндами подняли?

Шаг первый. Необходимо убедиться, что проблема с установкой именно в отсутствующем 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

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

Добавлено: 11 апр 2009, 19:01
crook
В самом конце уже, на шаге четвертом при выполнении
>>Пробуем опять выполнить
>># 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

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

Добавлено: 12 апр 2009, 14:57
Aequilibrium
Ясно, статической библиотеки нет. Выполните следующее:

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

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

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

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

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

Добавлено: 12 апр 2009, 19:39
crook
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.
Может это из-за того, что постгрес ставил с экзешника?Может его надо было так же компилировать?

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

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

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

Добавлено: 13 апр 2009, 08:14
crook
Именно так :oops:

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

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

Добавлено: 13 апр 2009, 08:15
crook
Просто я не мог найти виндовский инсталлер слонов под постгрес 8.3

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

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

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

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

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

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

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

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

Добавлено: 15 апр 2009, 08:21
crook
Спасибо большое, буду разбираться =)