Самостоятельная компиляция исходников PostgreSQL 9, для Debian 6/Ubuntu 10.04

1. Nigelist 24.03.11 14:22 Сейчас в теме
Добрый день. Меня давно интересует вопрос самостоятельной сборки пакетов для того или иного дистрибутива Linux, в моем случае это Debian или Ubuntu. А с недавнего времени столкнулся с необходимостью поднять сервер 1С:Предприятия в связке с желательно PostgreSQL 9. До этого пробовал ставить Postgres от Etersoft, накладывать патчи от 1С на чистый Posgres. Но все это не то, очень много пишут, что пакеты собираются из под старых ОС и это сказывается на качестве соблюдения зависимостей. Что в свою очередь сказывается на стабильности сервера, с чем сам неоднократно сталкивался. Например тот же PostgreSQL от Etersoft'a требует библиотеку libreadline.so.5, а в последних дистрибутивах Ubuntu используются libreadline.so.6.1, такая же ситуация с libicu32. А сервер 1С:Предприятие требует пакет ttf2pt1, которого уже нет в репозиториях Ubuntu 10.04 и Debian 6. Конечно можно создать сим-линки или подключить репозитории более старых дистрибутивов, но это ведь только вершина айсберга. По этой причине очень хочется научится грамотно собирать пакеты со всеми с соблюдением всех необходимых зависимостей. В случае с PostgreSQL, это еще и оптимизация СУБД для корректного взаимодействия с сервером 1С:Предприятие 8.2.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Mixan4ick 26.03.11 00:12 Сейчас в теме
Да, тема интересная, с учетом 9ой версии...
Коллеги, на сколько возможно изменение статьи http://infostart.ru/public/74956/ ?
3. Nigelist 31.03.11 21:13 Сейчас в теме
Раз ни у кого нет ни желания, ни времени. Может поделитесь полезными ссылками по этой тематике?
4. pumbaE 12.09.11 13:31 Сейчас в теме
Сборка пакетов
Пользовался этим man.
В принципе postinst.ex надо будет дописать, для своих настроек по умолчанию.

P.S. но все уже давно расписано, более точно и что необходимо
Debian HELP ну и google translate в помощь, если не знаем англицкого.
5. sasha777666 325 04.11.11 18:37 Сейчас в теме
не на том сайте обсуждаешь убунту, хотя я даже не читал твоё сообщение . мне главное побольше написать чтобы заработать на файлик, который я скачаю через 3 минуты после публикации этого сообщения..... извини что нафлудил , ставьте плюсы :))
azevakin; +1 Ответить
21. azevakin 2 27.02.12 10:17 Сейчас в теме
(5) sasha777666, +1
Ужасная политика. С 1с знаком недавно, все больше на python.
Появилась необходимость выгрузить из 1с данные в JSON для последующей обработки в python.
В google нашел это http://infostart.ru/public/60611/, чтобы скачать пришлось зарегистрироваться,а еще и рейтинг зарабатывать. Зарабатываю :(
Жесть, говорят что 1с открытая система. Ага, как же :(

Извините за флуд. Наболело.
6. ooo1234 07.11.11 16:03 Сейчас в теме
как то так:

root@pgsrv# apt-get install libreadline-dev libicu-dev patch zlib1g-dev

Переходим в директорию /usr/local/src, скачиваем и распаковываем исходники:

root@pgsrv# cd /usr/local/src
root@pgsrv# wget http://www.alsigned.ru/?dl_name=postgresql-9.0.1-1C.tar.gz -O postgresql-9.0.1.tar.gz
root@pgsrv# tar xzvf postgresql-9.0.1.tar.gz

Переходим в каталог с исходниками, конфигурируем, собираем и устанавливаем:

root@pgsrv# cd postgresql-9.0.1
root@pgsrv# ./configure --disable-integer-datetimes --prefix=/usr
root@pgsrv# make && make install

Переходим в каталог contrib, собираем и устанавливаем:

root@pgsrv# cd contrib
root@pgsrv# make && make install
7. swamp 10.11.11 14:00 Сейчас в теме
8. Nigelist 10.11.11 16:41 Сейчас в теме
(7) swamp, конечно это не все. Если бы все было так просто, я бы не стал создавать тему.
10. swamp 10.11.11 19:01 Сейчас в теме
(8) Nigelist, вы меня не поняли, да и задавал вопрос я в данном случае не вам.
(2) Mixan4ick, почитал ман, попробую именно собрать сам, спасибо
11. Nigelist 10.11.11 19:12 Сейчас в теме
(10) swamp, я сам автор статьи по установке сервера 1С. Но те патчи и сборки, что предлагают 1С и Etersoft частенько работают не корректно.
12. swamp 10.11.11 20:37 Сейчас в теме
(11) Nigelist, и тут я вас нашел. ))
я по вашему ману поднимал сервер, 4 раза и 4 разных результата.
но спасибо вам огромное.

хочу еще попробовать по этой статье таки сделать.
13. Nigelist 11.11.11 05:50 Сейчас в теме
(12) swamp, внимательнее нужно быть. Куча народу установило и ничего.
14. swamp 11.11.11 08:43 Сейчас в теме
(13) Nigelist, да я знаю, я и не говорю ничего - может мой косяк, не отрицаю
18. beldieff 20.12.11 13:20 Сейчас в теме
(8)
Nigelist пишет:
Если бы все было так просто, я бы не стал создавать тему.

Предлагаешь другим за тебя читать readme?
Читаешь и подставляешь нужные тебе опции в эту строчку.
./configure --disable-integer-datetimes --prefix=/usr
9. 1сasd 10.11.11 16:45 Сейчас в теме
ooo1234 пишет:

как то так:



root@pgsrv# apt-get install libreadline-dev libicu-dev patch zlib1g-dev



Переходим в директорию /usr/local/src, скачиваем и распаковываем исходники:



root@pgsrv# cd /usr/local/src

root@pgsrv# wget http://www.alsigned.ru/?dl_name=postgresql-9.0.1-1C.tar.gz -O postgresql-9.0.1.tar.gz

root@pgsrv# tar xzvf postgresql-9.0.1.tar.gz



Переходим в каталог с исходниками, конфигурируем, собираем и устанавливаем:



root@pgsrv# cd postgresql-9.0.1

root@pgsrv# ./configure --disable-integer-datetimes --prefix=/usr

root@pgsrv# make && make install



Переходим в каталог contrib, собираем и устанавливаем:



root@pgsrv# cd contrib

root@pgsrv# make && make install
Показать
15. niram 12.11.11 02:21 Сейчас в теме
ooo1234 пишет:
...
root@pgsrv# make && make install


Вот за такой способ установки софта, надо бить по рукам. *nix, а уж тем более Debian и его семейство - это не Винада.
Как потом этот софт удалять или обновлять ?
Неужели трудно выделить 10 минут и собрать пакет ?
shamarin; +1 Ответить
16. udaffkaa 12.11.11 02:45 Сейчас в теме
Из личных со исканий по этой теме:
Была необходимость пропатчить 1Скими патчами postrges 9.0.3 на Debian 6 x64
К сожалению не получилось (пока пытался приняли решение отказаться), НО заткнулся на на том что патчти накладываются по системе патчинга версии 2, а в Debian 6 x64 уже используется версия патчингов 3. Есть скрипт конвертирующий патчинги v2 в v3 (хотя без гарантии правильной конвертации:(....
Если у кого получится - отпишитесь, пожалуйста, тема очень актуальна...
17. Nigelist 13.11.11 11:15 Сейчас в теме
niram пишет:
Вот за такой способ установки софта, надо бить по рукам.
+1

udaffkaa пишет:
Из личных со исканий по этой теме:
Была необходимость пропатчить 1Скими патчами postrges 9.0.3 на Debian 6 x64
К сожалению не получилось (пока пытался приняли решение отказаться), НО заткнулся на на том что патчти накладываются по системе патчинга версии 2, а в Debian 6 x64 уже используется версия патчингов 3. Есть скрипт конвертирующий патчинги v2 в v3 (хотя без гарантии правильной конвертации:(....
Если у кого получится - отпишитесь, пожалуйста, тема очень актуальна...
А по какой причине, не хотите брать версию от Etersoft?
19. admsmsz 20.12.11 13:26 Сейчас в теме
я всегда беру пропатченные исходники постгри от 1с и собираю сам.
инструкций много, но мне нравится на этом сайте http://www.alsigned.ru/
20. elmontenegro 03.01.12 00:53 Сейчас в теме
Postgre@Etersoft
Postgre@Etersoft – это специальные сборки свободной реляционной СУБД PostgreSQL, в которые включены все изменения, необходимые для работы SELTA@Etersoft и серверов 1С:Предприятие 8.1 и 1С:Предприятие 8.2.
Об изменениях по отношению к оригинальной версии PostgreSQL смотрите в разделе Изменения, внесённые в PostgreSQL.

Вы можете приобрести поддержку Postgre@Etersoft на сайте продаж.
Поддерживаемые платформы

Платформы, для которых собран Postgre@Etersoft, можно увидеть на странице продукта при заказе сборки SELTA@Etersoft или Postgre@Etersoft. Обратите внимание, что в зависимости от выбора платформы, Вам будет предоставлена полная, либо базовая поддержка на вашей системе.

Приоритетными при тестировании и сборке новых версий являются платформы ALT Linux 5.0 Server и Ubuntu Server. Мы рекомендуем ставить Postgre SQL на них.
Пакеты доступны как в 32-битных, так и в 64-битных версиях.
Установка СУБД

Инструкция приводится на примере ALT Linux 5.0. Для других систем могут быть свои особенности.

Установка происходит под root
#su -
Password:
Готовим место под пакеты
# cd ~
# md pg
# cd md
Скачиваем пакеты, проверяем, что все скачалось
Стабильные пакеты для различных систем можно получить здесь:
ftp://updates.etersoft.ru/pub/Etersoft/Postgre@Etersoft/stable/
http://updates.etersoft.ru/pub/Etersoft/Postgre@Etersoft/stable/
#wget ftp://updates.etersoft.ru/pub/Etersoft/Postgre@Etersoft/stable/ALTLinux/5.0/*.rpm
.....
#ls
postgresql-8.3eter-8.3.8-alt1.M50.2.1.i586.rpm
postgresql-8.3eter-contrib-8.3.8-alt1.M50.2.1.i586.rpm
postgresql-8.3eter-server-8.3.8-alt1.M50.2.1.i586.rpm
Устанавливаем пакеты
Для работы требуется установить следующие пакеты Postgre SQL:
postgresql-8.3eter
postgresql-8.3eter-contrib
postgresql-8.3-eter-server
#rpm -ihv *.rpm
Preparing... ##################################################
postgresql-8.3eter ##################################################
postgresql-8.3eter-contrib ##################################################
postgresql-8.3eter-server ##################################################
Running /usr/lib/rpm/posttrans-filetriggers

Удаляем rpm, больше они не понадобяся
# rm *.rpm
rm: remove regular file `postgresql-8.3eter-8.3.8-alt1.M50.2.1.i586.rpm'? y
rm: remove regular file `postgresql-8.3eter-contrib-8.3.8-alt1.M50.2.1.i586.rpm'? y
rm: remove regular file `postgresql-8.3eter-server-8.3.8-alt1.M50.2.1.i586.rpm'? y
Запускаем, при первом запуске создается кластер
#/etc/init.d/postgresql start
Initializing database: [ DONE ]

Starting postgresql service: [ DONE ]

если этого не произошла смотрите ошибки в логе запуска /var/lib/pgsql/pgstartup.log.

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

Возможные ошибки
Несоответствие SHMMAX и SHMALL
#/etc/init.d/postgresql start
The current value of SHMMAX is too low for postgresql to run.
Please edit /etc/sysctl.conf and set this value to at least 134217728:
kernel.shmmax = 134217728

Значение SHMMAX (максимальный размер сегмента разделяемой памяти в байтах) слишком мало для запуска Postgre SQL.
Решение: Уcтановите значение shmmax на указанное Postgre SQL.
# sysctl -w kernel.shmmax=134217728

Возможно придется сделать еще
# sysctl -w kernel.shmall=134217728

Тоже самое сделать в /etc/sysctl.conf.
Занятый порт
Одна из проблем, из-за которой вы не можете запустить Postgre SQL, может быть вызвана невозможностью использования выбранного порта.
Postgre SQL не смог запуститься:
#/etc/init.d/postgresql start
Starting postgresql service: [ FAILED ]

И в /var/lib/pgsql/pgstartup.log
#cat /var/lib/pgsql/pgstartup.log
ПОДСКАЗКА: Is another postmaster already running on port 80? If not, wait a few seconds and
retry.
LOG: не получилось создать сокет IPv6: Семейство адресов не поддерживается протоколом
WARNING: could not create listen socket for "*"
FATAL: could not create any TCP/IP sockets

Это означает, что скорее всего порт, используемый Postgre SQL занят. По умолчанию это 5432
Проверяем это, смотрим, кто использует порт
#netstat -plan | grep 5432

Пути решения:
Решить проблему с программой, которая использует порт. Изменить ее порт.
Изменить порт Postgres.
Для этого нужно изменить номер порта в файле /etc/init.d/postgresql
#cat /etc/init.d/postgresql | grep PGPORT=
PGPORT=5432

Измените это значение, на любой другой свободный номер порта.

Подробности по установке смотрите здесь:
http://www.forum.mista.ru/topic.php?id=260077
http://www.gilev.ru/1c/81/postgresql/
http://life.screenshots.ru/the-code-inside/php-platform/linux-1c-setup

Настройка Postgre SQL

В наших сборках Postgre SQL уже заложены необходимые минимальные настройки для работы СУБД с SELTA@Etersoft.
Инициализация базы производится автоматически при первом запуске Postgre SQL, файлы баз данных будут храниться в каталоге /var/lib/pgsql/data, владелец каталога и процессов Postgre SQL устанавливается пользователь postgres, который создается автоматически, при установке пакетов.

Для того, чтобы иметь возможность подключиться к нему, мы должны задать пароль главному пользователю СУБД – владельцу всех баз данных – postgres, это выполняется это следующим образом:
Сначала в файле конфигурации /var/lib/pgsql/data/pg_hba.conf изменяем строчку:
local all all ident sameuser

на строчку:
local all all trust

Сохраним изменения и перезапустим Postgre SQL, для вступлений изменений настроек, командой

# /etc/init.d/postgresql restart
Stopping postgresql service: [ DONE ]

Starting postgresql service: [ DONE ]

Зададим пароль для работы с Postgre SQL.
Для этого требуется выполнить запрос.
# psql -U postgres -d template1 -c "ALTER USER postgres PASSWORD 'новый пароль'"

Проверяем:
#psql -U postgres -W
Password for user postgres:
Welcome to psql 8.3.8-eter1, the PostgreSQL interactive terminal.

Если вы хотите запретить локальный доверенный доступ (без пароля), поменяйте обратно натройки. Строчку "local all all trust" следует заменить обратно на "local all all ident sameuser" и перезапустить сервис постгри, чтобы отключить возможность подключения локальным пользователем без пароля.

Консоль SQL запросов Postgre SQL
В состав Postgre SQL входит утилита командной строки psql. Для ее запуска на сервере, на котором работает Postgre SQL нужно выполнить следующую команду:
psql -U postgres

C помощью утилиты psql можно выполнять SQL запросы и просматривать результаты их выполнения, например:

psql -U postgres
# select upper('q');
# \quit
Проверка работоспособности
Проверям статус сервера:
#/etc/init.d/postgresql status
pg_ctl: выполняется сервер (PID: 31805)
/usr/bin/postgres "-p" "5432" "-D" "/var/lib/pgsql/data"

Сервер запущен. Если, это не так, запустите сервер, так, как было описано выше.

Проверяем, использование порта
# netstat -plan | grep 5432
tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN 31805/postmaster
unix 2 [ ACC ] STREAM LISTENING 311449 31805/postmaster /tmp/.s.PGSQL.5432

Требующейся нам порт используется postmaster, как и должно быть.

Смотрим установленную версию
# psql -U postgres -c "SELECT version()"
version
----------------------------------------------------------------------------------------------
--------------------------------
PostgreSQL 8.3.8-eter1 on i586-alt-linux-gnu, compiled by GCC i586-alt-linux-gcc (GCC) 4.3.2
20081105 (ALT Linux 4.3.2-alt9)
(1 row)
Запустите SELTA и создайте БД. Подробнее тут. Если БД создалась без ошибок, значит Postgre SQL установлен правильно.
После проверки работоспособности желательно провести оптимизацию настроек Postgre SQL в соответствии с возможностями вашего сервера: Оптимизация настроек PostgreSQL.
22. KiborG85 26 27.02.12 11:21 Сейчас в теме
А почему связывает автор с ПостГре? а не IBM DB2 ?
На сайте 1С есть и ДБ2, но я ставил из репозитория... ставится себе молча, и работает...
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот