Назад | Перейти на главную страницу

Пользовательский некорневой менеджер пакетов

У нас есть программное обеспечение, работающее на Centos 7 в отдельной папке и под выделенным пользователем без прав sudo. В настоящее время процесс обновления включает ручное копирование новых файлов zip с новой версией и их извлечение с помощью сценариев bash. Он работает нормально, но нас интересуют некоторые дополнительные функции, такие как контроль версий, контроль зависимостей и установка из репозитория. Yum не подходит, поскольку он не поддерживает установку без полномочий root. Не могли бы вы посоветовать нам какой-нибудь настраиваемый менеджер пакетов с указанными функциями и доступный для пользователей без полномочий root?

Помимо переносимых форматов упаковки, вы можете использовать другие существующие менеджеры пакетов, которые позволяют установить корневой каталог:

  • rpm --root dir
  • dpkg --root=dir

И если вам нужно разрешение пакета и аналогичные функции:

  • zypper --root dir
  • dnf --installroot=dir

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

Некоторые языки могут устанавливать модули локально для пользователя, например pip для Python или CPAN для Perl. Конечно, они требуют, чтобы вы использовали их язык. У них есть встроенные системы управления версиями с зависимостями.

Извлечение рабочей копии из системы контроля версий - это еще один способ развертывания. Возможно, используйте git, clone для развертывания и получайте обновления из той же ветки. Однако не имеет зависимостей, было бы проще, если бы одно репо содержало все приложение. И любые запускаемые скрипты должны выполняться отдельно.

Существующий метод извлечения архивов не обязательно плох. Конечно автоматизируйте его, чтобы он везде точно развертывался. Если вы создаете свои сценарии, управление версиями и метаданные на основе этого архива, поздравляю, вы изобрели другую систему упаковки. В этом нет ничего плохого, если он отвечает вашим потребностям и может поддерживаться.