Решено mchar.control ошибка

Статус
Закрыто для дальнейших ответов.

NanoSuit

Специалист
Добрый день! Собираю на ubuntu server 22 1с 8.3+postgresql. Вроде бы все установил, 1с слушается на портах 1540 /1541. Администрирование 1с серверов цепляется к серверу. Когда пытаюсь добавить информационную базу получаю ошибку:
58P01:Error: could not open extension control file */usr/share/postgresql/14/extension/mchar.control: No such file or directory
По настройке postgresql для 1с информации крайне мало. Вроде бы какого то расширения для postgres не хватает. Подскажите как пофиксить проблему.:cautious:
 
Решение
В общем долго возился и победил наконец. Решил настрочить мануал, с командами которые надергал с разных статей в сети. На эталон ваще не претендую но PostgreSQL + 1c 8.3 + Ubuntu Server 22 работает.
Мне надо было собрать сервер в облаке vcloud director и дать доступ через NSX Edge.
Поскольку сервер с убунту я могу развернуть только из шаблона виртуальной машины с разделом в 1ТБ (такой цод 🤬 достался), придется расширять раздел после создания вм из шаблона.

Для управления разделами пользуемся тулзой cfdisk (тыкаем на нужный sda который надо расширить и внизу resize -> write):
# sudo cfdisk

После того, как вы увеличили физический раздел, нужно увеличить размер логического раздела Ubuntu. Проверяем что используется используются...
Попробуйте в постгрес выполнить запрос и найти расширения
postgres# select * from pg_available_extensions where name = 'mchar'
 
я думаю postgresql ставится без расширений, о чем свидетельствует вывод таблицы. Нужно установить расширения в postgresql
 
В общем долго возился и победил наконец. Решил настрочить мануал, с командами которые надергал с разных статей в сети. На эталон ваще не претендую но PostgreSQL + 1c 8.3 + Ubuntu Server 22 работает.
Мне надо было собрать сервер в облаке vcloud director и дать доступ через NSX Edge.
Поскольку сервер с убунту я могу развернуть только из шаблона виртуальной машины с разделом в 1ТБ (такой цод 🤬 достался), придется расширять раздел после создания вм из шаблона.

Для управления разделами пользуемся тулзой cfdisk (тыкаем на нужный sda который надо расширить и внизу resize -> write):
# sudo cfdisk

После того, как вы увеличили физический раздел, нужно увеличить размер логического раздела Ubuntu. Проверяем что используется используются тома LVM:
# sudo lsblk

Проверяем свободное место в группе томов LVM:
# sudo vgdisplay

Для расширения раздела LVM нужно сначала увеличить PV (Physical Volume):
# sudo pvresize /dev/sda3

Увеличиваем логический том за счет всего доступного свободного места:
# sudo lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv

Расширяем файловую систему для ext2, ext3 и ext4 выполните:
# sudo resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv

Проверяем свободное место командой
df -h

Ставим дополнительные шрифты
sudo apt install ttf-mscorefonts-installer fontconfig

Далее что бы вся эта "балалайка" заработала нужно реконфигурировать локаль, выбираем ru RU UTF-8, затем перезайти, менюшки в MC к примеру должны стать на русском.
sudo dpkg-reconfigure locales

Обновляемся
sudo apt update
sudo apt upgrade

Далее выкачиваем с 1с ИТС "суповой набор"

postgresql_15.4_1.1C_amd64_deb.tar.bz2
postgresql_15.4_1.1C_amd64_addon_deb.tar.bz2
deb64_8_3_23_1912.tar.gz
Patch_SUBD_PostgreSQL_15.4_1.1C.tar.bz2

Сразу скажу, вот это #овно не заработало и не устанавливалось никак. Пробовал 14 версию - тоже самое.
postgresql_15.4_1.1C_amd64_deb.tar.bz2
postgresql_15.4_1.1C_amd64_addon_deb.tar.bz2

Есть сборка PostgreSQL от фирмы 1С, которую можно загрузить с официального сайта. Ее в инструкции не рассматриваем.
Далее обновляем доступные репозитории пакетов согласно инструкции. (1с заработала только с этой сборкой постгрес, хз почему)


И устанавливаем PostgreSQL версии 14.
apt-get install postgrespro-1c-14
Чтобы найти имя демона PostgreSQL выполним команду.
systemctl --type=service | grep postgres

Теперь останавливаем сервис и удаляем созданный по умолчанию кластер.
Останавливаем PostgreSQL
sudo systemctl stop postgrespro-1c-14

Удаляем файлы ранее созданного при установке кластера
Вместо 1c-14 может быть другое название каталога, в зависимости от версии.
rm -r /var/lib/pgpro/1c-14/data/*

Инициализируем новый кластер для 1С с нужной локалью (не обязательно, если по умолчанию локаль в системе "ru_RU.UTF-8").
sudo /opt/pgpro/1c-14/bin/pg-setup initdb --tune=1c --locale=ru_RU.UTF-8

Запускаем PostgreSQL
sudo systemctl start postgrespro-1c-14

Ставим 1с сервер
Вы получите единый установщик setup-full-8.3.23.1912-x86_64.run, который содержит все пакеты для сервера 1С. Запускаем его в пакетном режиме с некоторыми параметрами:
# chmod +x setup-full-8.3.23.1912-x86_64.run
# ./setup-full-8.3.23.1912-x86_64.run --mode unattended --enable-components server,ws

Регистрируем unit systemd для управления службой 1С:
# systemctl link /opt/1cv8/x86_64/8.3.23.1912/srv1cv8-8.3.23.1912@.service

Запускаем Сервер 1С и сразу добавляем в автозагрузку:
# systemctl start srv1cv8-8.3.23.1912@.default
# systemctl daemon-reload
# systemctl enable srv1cv8-8.3.23.1912@.service
Смотрим что все запущено по части postgres и 1csrv
systemctl list-units --type service --state running
systemctl list-unit-files | grep enabled

Проверим, все ли службы запустились:
# netstat -tulnp | grep "rphost\|ragent\|rmngr"

Открываем порты
iptables -I INPUT 1 -p tcp --dport 1540:1541 -j ACCEPT
iptables -I INPUT 1 -p tcp --dport 1560 -j ACCEPT
И сохраняем правила с помощью iptables-persistent:
apt-get install iptables-persistent
netfilter-persistent save

Задаем пароль юзера postgres в постгрес
$ sudo -u postgres psql
psql
postgres=# \password postgres
Enter new password:
Enter it again:

Узнать версию постгрес
pg_config --version
 
Последнее редактирование:
Решение
Статус
Закрыто для дальнейших ответов.
Назад
Верх