Недоработки в deb-пакетах

Mini web-сервер для печати чеков на фискальных регистраторах из мобильных приложений через HTTP запрос JSON.
Ответить
prof-alex
Сообщения: 5
Зарегистрирован: 13 май 2021, 13:38

Недоработки в deb-пакетах

Сообщение prof-alex » 13 май 2021, 14:24

Как я понял про ошибки можно только здесь доложить...
Про kkmserver для архитектуры amd64 в формате deb

1. В пакетах для архитектуры amd64 наличествует файл /opt/kkmserver/Linux/Deb/DEBIAN/control-arm - он лишний.

2. В сценариях postinst и prerm применяется sudo, учитывая, что исполнение этих сценариев происходит при вызове dpkg или dpkg-reconfigure, а там и так требуются права root, это не нужно, но может приводить к ошибкам при установке в системах где sudo нет.

3. Делать исполняемым файл /etc/bash.bashrc не нужно, он подключается и применяется без признака исполняемости через source из /etc/profile о чём в нём самом и написано (для debian 10):
# To enable the settings / commands in this file for login shells as well,
# this file has to be sourced in /etc/profile.
4. Изменять его тоже не следует, т.к., для добавления или изменения переменных окружения применяется механизм загрузки файлов c расширением *.sh из /etc/profile.d/ - вот в нём и следует создать файл с изменение PATH.

5. Версия, которую показывает kkmserver задаётся в /opt/kkmserver/Settings/SettingsServ.ini, но там всегда одно и тоже значение:
"Verson": "2.1.40.58"
- проверено на пакетах версий 2.1.40.61-64

6. Сам файл /opt/kkmserver/Settings/SettingsServ.ini присутсвует в пакете и перезаписывает имеющийся без предупреждения, т.е., простое обновление сносит все настройки! До версии 2.1.40.49 его не было, т.е., недавно привнесённая ошибка.

7. Зачем-то на все файлы выставляются права 777, но признак исполняемости нужен только /opt/kkmserver/kkmserver и /opt/kkmserver/createdump, а право писать в во все имеющиеся файлы лишнее, во всяком случае для членов группы и всех пользователей системы.

8. Очень небезопастный режим устанавливается для файлов с сертификатом и закрытым ключём сервера, там тоже 777, но ни исполняемость ни право читать его, тем более перезаписывать предоставляться кому угодно в сиситеме недопустимо. Причём, я пытался исправить права на файлы, но после перезапуска kkmserver перезаписывает файл /opt/kkmserver/Settings/UnitServer.p12 и снова выставляет все права на всё.

prof-alex
Сообщения: 5
Зарегистрирован: 13 май 2021, 13:38

Re: Недоработки в deb-пакетах

Сообщение prof-alex » 25 май 2021, 13:09

Отзывов нет, но в версии 2.1.40.66 кое-что учли.

Я для себя набросал скрипт для перепаковки дебов, думаю стоит поделиться...

Но у меня есть вопросы:
  • Зачем нужен файл /opt/kkmserver/kkmserver.zip?
  • Можно ли заменить файл /opt/kkmserver/Atol.Drivers10.Fptr.dll на тот что ставится вместе с драйверами Атола?
Тот что идёт в пакете имеет версию 1.0.7.0.0, а у нас стоит 10.8.0.0.
Вложения
kkmserver-repack.sh.gz
(2.71 КБ) 69 скачиваний

Audim
Администратор
Сообщения: 2395
Зарегистрирован: 17 мар 2015, 18:36

Re: Недоработки в deb-пакетах

Сообщение Audim » 25 май 2021, 18:02

Проверим все...

Audim
Администратор
Сообщения: 2395
Зарегистрирован: 17 мар 2015, 18:36

Re: Недоработки в deb-пакетах

Сообщение Audim » 25 май 2021, 18:10

4. Изменять его тоже не следует, т.к., для добавления или изменения переменных окружения применяется механизм загрузки файлов c расширением *.sh из /etc/profile.d/ - вот в нём и следует создать файл с изменение PATH.


Вот тут подробнее можно...
Файл с каким именем можно создавать? с любым?
В линуксах признаюсь я не силен.
И такое в rpm пакетах сработает?

prof-alex
Сообщения: 5
Зарегистрирован: 13 май 2021, 13:38

Re: Недоработки в deb-пакетах

Сообщение prof-alex » 26 май 2021, 17:38

Да, с любым.
Файлы из этого каталога подключаются в /etc/profile там такой код присутствует:

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

if [ -d /etc/profile.d ]; then
  for i in /etc/profile.d/*.sh; do
    if [ -r $i ]; then
      . $i
    fi
  done
  unset i
fi
Т.е., независимо от имени, лишь бы расширение было .sh. И исполняемым его тоже не следует делать, т.к., он подключается наподобие include в си.
Тут подробнее описано: https://devacademy.ru/article/razbiraie ... etc-bashrc

И для rpm это применимо тоже, т.к., это для целого семейства шеллов настроечные файлы.

Audim
Администратор
Сообщения: 2395
Зарегистрирован: 17 мар 2015, 18:36

Re: Недоработки в deb-пакетах

Сообщение Audim » 27 май 2021, 14:59

Вопрос - есть желание убрать из дистрибутива сам движок Net.core.
Тогда дистрибутив станет намного меньше.
А Net.core ставить отдельно через запуск скрипта.

?????

prof-alex
Сообщения: 5
Зарегистрирован: 13 май 2021, 13:38

Re: Недоработки в deb-пакетах

Сообщение prof-alex » 27 май 2021, 22:23

Ну, при современных скоростях интернета размер далеко не огромен.
А вот возня с допрепозитариями наличествует. Скачать один пакет или изучать простыню, по подключению реп от M$, тут доставляет, что могут появиться и другие репозитарии как здесь:
Для приложений .NET Core, использующих сборку System.Drawing.Common, необходима также следующая зависимость:

libgdiplus (версия 6.0.1 или выше)

Предупреждение

Вы можете установить последнюю версию libgdiplus, добавив в систему репозиторий Mono. Для получения дополнительной информации см. https://www.mono-project.com/download/stable/.
По мне, так лучше версию в пакете получать.

Audim
Администратор
Сообщения: 2395
Зарегистрирован: 17 мар 2015, 18:36

Re: Недоработки в deb-пакетах

Сообщение Audim » 28 май 2021, 18:18

Немного не так:

У мягких есть официальный скрипт установки net.core
Сам скрипт: https://dot.net/v1/dotnet-install.sh
Описание: https://docs.microsoft.com/ru-ru/dotnet ... ed-install

Я хочу в скрипт установки kkmserver в событие "после установки" и добавить запуск этого скрипта.
По идее скрипт тащит нужные зависимости в зависимости (сори за тавтологию) от версии Linux.
Но ставит net.core отдельно от kkmserver и разрешает пользоваться им всем программам написанным на net.
Ставить собираюсь командой ./dotnet-install.sh -c 3.1 --runtime

????

ЗЫ: libgdiplus как я понимаю всегда нужно тянуть отдельно.
Но он нужен или для эмулятора ККТ или при включении эмуляции чека.
А так и без него прекрасно работает.

prof-alex
Сообщения: 5
Зарегистрирован: 13 май 2021, 13:38

Re: Недоработки в deb-пакетах

Сообщение prof-alex » 01 июн 2021, 15:00

Audim писал(а):
28 май 2021, 18:18
Но ставит net.core отдельно от kkmserver и разрешает пользоваться им всем программам написанным на net.
Вы не представляете себе как много программ используют net.core на Linux - 0.000%. В Linux всё ставится из репов, в которых необходимые зависимости уже есть. Вот net.core там нет, по причине абсолютной ненужности.

Пакеты нужны ещё и для того, что бы уметь "убирать" за собой всё привнесённое в систему, а так же контролировать подмену/повреждение компонентов. Вот net.core очень нужен kkmserver и не нужен больше ничему, какому пакету это стоит доверить?

Этот скрипт не знает об актуальных версиях дистрибутивов, например про Debian 10 и Ubuntu 20.04. Так что гарантировать корректное разрешение зависимостей он не сможет.

Впрочем может есть какие-то другие ограничения (лицензионные, например), из-за которых паковать net.core необходимо отдельно. 14 мегабайт - явно не тот размер.

UPD: Вот что действительно стоит продумать, так это разделение на серверную и десктопную части. У меня, например, сервер крутится на виртуалке без графики и браузеров. Но в пакет для десктопа можно вшить расширения для браузеров, что бы их не приходилось качать отдельно. Ну и расположение логов вместе с настройками и исполняемыми файлами для Linux является крайне нежелательным явлением, либо /var/log для общесистемных демонов, либо $HOME для пользовательского процесса.

Ответить