1. Справка РКЦ Офис
  2. Руководство администратора
  3. Администрирование
  4. Установка РКЦ Офис на Linux

Установка РКЦ Офис на Linux

Инструкция предназначена для системного администратора. Описывает разворачивание на примере Astra Linux 1.8 с нуля серверной части программного комплекса РКЦ: Офис.

Предполагается, что программа запускается одним пользователем на машине (модель «один пользователь - одна установка»). Для нескольких пользователей нужна отдельная установка под каждого.

1. Подготовка системы

1.1. Учётная запись пользователя

Программа работает под обычным пользователем (не root). Дальше по тексту этот пользователь обозначен как astra, подставьте имя вашей реальной учётной записи при выполнении команд.

1.2. Обновление пакетов

sudo apt update
sudo apt upgrade

1.3. Установка зависимых пакетов

Программному комплексу, а также СУБД Firebird, требуются библиотеки GTK2 и ncurses5.

sudo apt install libgtk2.0-0 libncurses5

1.4. Установка Firebird 2.5

В репозиториях Astra пакета Firebird 2.5 нет (есть 3.0, но его ставить нельзя, т.к. РКЦ: Офис разрабатывается и тестируется на версии 2.5). Необходимо скачать дистрибутив с официального аккаунта разработчиков Firebird на SourceForge:

cd /tmp
wget https://sourceforge.net/projects/firebird/files/R2_5_9/FirebirdSS-2.5.9.27139-0.amd64.tar.gz/download -O firebird.tar.gz
tar xzf firebird.tar.gz
cd FirebirdSS-2.5.9.27139-0.amd64
sudo ./install.sh

Установщик спросит пароль пользователя SYSDBA - задайте и запишите, он понадобится при настройке сервера приложений webapi.

После установки:

Проверка, что демон работает:

ps aux | grep fbserver

В выводе должен быть процесс fbserver под пользователем firebird.

2. Структура каталогов

Программа устанавливается в домашний каталог пользователя:

/home/astra/rent/
├── bin/             # бинарные файлы и библиотеки
│   ├── rent
│   ├── webapi
│   ├── libresource.so
│   ├── libcrypto.so.1.0.0
│   ├── libssl.so.1.0.0
│   ├── libfbclient.so.2
│   ├── webapi.conf
│   ├── webapi.crt
│   └── webapi.key
└── data/            # файл базы данных
    └── rent.fdb

Каталог temp/ создаётся программой автоматически при необходимости.

3. Установка файлов программы

Скопируйте исполняемые файлы программы в /home/astra/rent/ от имени пользователя astra. Способ копирования значения не имеет.

После копирования установите права на бинарные файлы:

chmod 755 /home/astra/rent/bin/rent
chmod 755 /home/astra/rent/bin/webapi
chmod 644 /home/astra/rent/bin/*.so*
chmod 644 /home/astra/rent/bin/webapi.conf
chmod 644 /home/astra/rent/bin/webapi.crt
chmod 600 /home/astra/rent/bin/webapi.key

Файл webapi.key обязательно с правами 600 - это приватный ключ TLS.

4. Настройка прав доступа

Это самый важный раздел. Ошибки в правах приведут к тому, что либо программа не сможет работать с БД, либо Firebird-демон не сможет открыть файл.

4.1. Модель прав

4.2. Добавление пользователя в группу firebird

sudo usermod -aG firebird astra

После выполнения команды обязательно перезагрузить систему, либо как минимум полностью выйти из сессии и войти заново. Без этого новая группа не подхватится.

Проверка:

groups

В выводе должна быть firebird.

4.3. Права на каталоги

# Открыть проход через домашний каталог для firebird
sudo chmod o+x /home/astra

# Каталог программы
sudo chown -R astra:astra /home/astra/rent
sudo chmod 755 /home/astra/rent

# Каталог data с общим доступом для группы firebird
sudo chown astra:firebird /home/astra/rent/data
sudo chmod 770 /home/astra/rent/data
sudo chmod g+s /home/astra/rent/data

# Наследование прав группы firebird на новые файлы внутри data
sudo setfacl -d -m g:firebird:rwx /home/astra/rent/data
sudo setfacl -m g:firebird:rwx /home/astra/rent/data

4.4. Права на файл БД

sudo chown firebird:firebird /home/astra/rent/data/rent.fdb
sudo chmod 660 /home/astra/rent/data/rent.fdb

4.5. Проверка прав

# Должно вывести: drwxrws---+ astra firebird
ls -ld /home/astra/rent/data

# Должно вывести: -rw-rw---- firebird firebird
ls -la /home/astra/rent/data/rent.fdb

# Firebird должен мочь прочитать файл БД
sudo -u firebird cat /home/astra/rent/data/rent.fdb > /dev/null && echo OK || echo FAIL

Все три проверки должны проходить. Если FAIL на последней - проверьте chmod o+x /home/astra.

5. Настройка сервера приложений

Перед первым запуском сервера приложений webapi создайте в папке rent/bin файл webapi.conf со следующим содержимым:

[Database]
HostName=localhost
FileName=/home/astra/rent/data/rent.fdb
User=SYSDBA
Password=masterkey

В ключе FileName укажите полный путь к базе данных, а в ключе Password укажите тот же пароль пользователя SYSDBA, который вы ввели при установке СУБД Firebird.

Для удобства пользователей можно создать ярлык на рабочем столе. Автозапуск приложения при старте операционной системы лучше всего сделать через файл .desktop в каталоге автозапуска ~/.config/autostart.

6. Обслуживание

6.1. Обновление программы

Обновление выполняется через встроенный механизм программы, никаких ручных действий с файлами производить не нужно.

6.2. Переиндексация (backup/restore)

Выполняется через GUI программы. После завершения операции права на файл БД сохраняются автоматически за счёт настроек ACL - никаких ручных команд не требуется.

Если после переиндексации программа не может работать с БД - проверьте права командами из раздела 4.5.

6.3. Резервное копирование каталога программы

При копировании каталога /home/astra/rent/ обязательно сохранять ACL и расширенные атрибуты:

tar --acls --xattrs -czf rent-backup.tar.gz /home/astra/rent/

или

rsync -aAX /home/astra/rent/ /backup/rent/

Обычный cp -r или tar без флагов потеряют настройки ACL, и после восстановления потребуется заново выполнить раздел 4.

6.4. Чего нельзя делать

7. Диагностика типовых проблем

Программа запускается, но не подключается к БД. Проверить, что демон Firebird работает (ps aux | grep fbserver). Проверить права на файл БД (раздел 4.5).

Программа не запускается, в терминале «error while loading shared libraries». Не установлены зависимости из раздела 1.3, либо программа запущена не из каталога bin (раздел 5).

После переиндексации программа не может открыть БД. Скорее всего слетели ACL. Выполнить заново команды раздела 4.3 и 4.4.

Webapi не перезапускается после обновления. Проверить, что в /tmp/ не остался lock-файл от старого процесса:

ls /tmp/*.lock

Если нашёлся и старый процесс уже мёртв - удалить вручную: rm /tmp/имя.lock.