[Linux] postinst-скрипт в deb

Mini web-сервер для печати чеков на фискальных регистраторах из мобильных приложений через HTTP запрос JSON.

[Linux] postinst-скрипт в deb

Сообщение Вторник 25 дек 2018, 06:40

Посмотрел я postinst. А там - мама не горюй. Вопросы есть к каждой строке:

Код: Выделить всё
chmod 777 -R /opt/kkmserver/Settings


777? Зачем?

Код: Выделить всё
gpasswd -a ${SUDO_USER:-$USER} dialout


dialout? Зачем?

Код: Выделить всё
sudo chmod 777 /etc/bash.bashrc


Опять 777. Да и sudo ещё. Зачем sudo? Его в дебиане и нет по умолчанию.

Код: Выделить всё
echo "export PATH=\$PATH:/opt/kkmserver" >> /etc/bash.bashrc


Я бы заменил на что-то вроде такого:

echo бла-бла > /etc/profilre.d/kkmserver.sh

Код: Выделить всё
bash /opt/kkmserver/Settings/RegisterLinux.sh > /opt/kkmserver/Settings/RegisterLinux.txt &


Зачем здесь bash? Зачем &? Почему экзешник лежит в каталоге Settings?
Аватара пользователя
Вторник

 
Сообщений: 157
Зарегистрирован: 16 май 2017, 08:36

Re: [Linux] postinst-скрипт в deb

Сообщение Вторник 25 дек 2018, 06:58

В RegisterLinux.sh вижу:

Код: Выделить всё
sudo apt-get install -y liblttng-ust0
sudo apt-get install -y libcurl3
sudo apt-get install -y libssl1.0.0
sudo apt-get install -y libkrb5-3
sudo apt-get install -y zlib1g
sudo apt-get install -y libc6-dev
sudo apt-get install -y libgdiplus


Опять sudo? Ну да ладно. Вы устанавливаете пакеты, которые являются зависимостями, после установки вашего пакета. Так оно не работает. RegisterLinux.sh никогда не будет вызван потому, что инсталляция будет прервана из-за ошибок с зависимостями:

Код: Выделить всё
root@114178cdf496:/# dpkg -i KkmServer.deb
(Reading database ... 7044 files and directories currently installed.)
Preparing to unpack KkmServer.deb ...
Unpacking kkmserver (2.1.25.14) over (2.1.25.14) ...
dpkg: dependency problems prevent configuration of kkmserver:
kkmserver depends on liblttng-ust0; however:
  Package liblttng-ust0 is not installed.
kkmserver depends on libcurl3; however:
  Package libcurl3 is not installed.
kkmserver depends on libssl1.0.0; however:
  Package libssl1.0.0 is not installed.
kkmserver depends on libkrb5-3; however:
  Package libkrb5-3 is not installed.
kkmserver depends on libc6-dev; however:
  Package libc6-dev is not installed.
kkmserver depends on libgdiplus; however:
  Package libgdiplus is not installed.

dpkg: error processing package kkmserver (--install):
dependency problems - leaving unconfigured
Errors were encountered while processing:
kkmserver
Аватара пользователя
Вторник

 
Сообщений: 157
Зарегистрирован: 16 май 2017, 08:36

Re: [Linux] postinst-скрипт в deb

Сообщение Audim 25 дек 2018, 18:39

>chmod 777 -R /opt/kkmserver/Settings
>777? Зачем?
На некоторых дистрибутивах это файл ставится без прав на изменение, а менять его должна программа

>dialout? Зачем?
Для доступа к COM-портам

>echo бла-бла > /etc/profilre.d/kkmserver.sh
И такой файл будет применяться в профиле? попробую.....

>Зачем здесь bash? Зачем &? Почему экзешник лежит в каталоге Settings?
Именно за тем чтоб выполнилось в отдельном потоке
Audim
Администратор
 
Сообщений: 1363
Зарегистрирован: 17 мар 2015, 18:36

Re: [Linux] postinst-скрипт в deb

Сообщение Вторник 25 дек 2018, 22:10

> >chmod 777 -R /opt/kkmserver/Settings
> >777? Зачем?
> На некоторых дистрибутивах это файл ставится без прав на изменение, а менять его должна программа

777 - это rwxrwxrwx. Вы даёте все права всем пользователям. Создайте группу kkmserver и пользователя kkmserver. Владение всеми своими файлами отдайте им. Права на файлы с данными поставьте 660, на экзешники - 770. И объявите, что администратор должен включить в группу kkmserver всех, кто на этом сервере нуждаются в KkmServer.

> >dialout? Зачем?
> Для доступа к COM-портам

Это понятно. Но на этой машине может не быть ККТ, подключенного через USB. Предлагаю поступить так же, как написано выше. Есть USB ККТ, пусть админ в dialout добавит.

Кстати, я вроде где-то читал, что в некоторых дистрах группа другая, кажется uucp. Но это не точно.

> >echo бла-бла > /etc/profilre.d/kkmserver.sh
> И такой файл будет применяться в профиле?

Да, будет (подробнее). Перезагрузка, кстати, не нужна. Достаточно разлогиниться.

> >Зачем здесь bash? Зачем &? Почему экзешник лежит в каталоге Settings?
> Именно за тем чтоб выполнилось в отдельном потоке

Про это я написал здесь.

А зачем вам отдельный поток?
Аватара пользователя
Вторник

 
Сообщений: 157
Зарегистрирован: 16 май 2017, 08:36


Вернуться в Форум поддержки KKM web-сервер


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

Сейчас этот форум просматривают: Google [Bot] и гости: 2