Epm

Материал из Etersoft wiki
Перейти к навигацииПерейти к поиску

Единая команда управления пакетами (epm)

EPM — имеющая одинаковый интерфейс на всех системах команда управления пакетами. При интерфейсе, похожем на rpm, apt и urpm, выполняет необходимые операции на любой платформе.

Включает в себя следующую функциональность:

  • управление пакетами (установка — удаление — поиск)
  • управление репозиториями (добавление — удаление — обновление — список)
  • управление системными сервисами (включение — выключение — список)

Назначение

  • в скриптах и установщиках, сервисных программах
  • в повседневном администрировании различных систем
  • для обучения: не нужны длинные статьи, как в той или иной системе работать с пакетами. EPM выводит каждую выполняемую им для реальных операций с пакетами

Установка

Epm поставляется в пакете eepm. Для установки EPM в вашу систему скачайте соответствующий пакет с сайта http://download.etersoft.ru/pub/Etersoft/Sisyphus/ и установите его. Например так: # wget ftp://updates.etersoft.ru/pub/Etersoft/Sisyphus/ALTLinux/Sisyphus/eepm && rpm -Uvh eepm && rm -f eepm

Получить исходники можно здесь. EPM может работать без установки в систему. Исходные rpm-пакеты можно взять здесь.

Также epm и serv можно использовать без установки, например так скачав скрипт всё-в-одном:

# wget --no-check-certificate http://github.com/vitlav/eepm/raw/master/packed/epm.sh && mv -u epm.sh /usr/bin/ && chmod 755 /usr/bin/epm.sh
# wget --no-check-certificate http://github.com/vitlav/eepm/raw/master/packed/serv.sh && mv -u serv.sh /usr/bin/ && chmod 755 /usr/bin/epm.sh

Состояние реализации под разные дистрибутивы.

Список команд, epm --help :

Описание операции Команда epm Альтернативная команда epm Команда Debian Команда ALT Linux
Установка пакета по названию в систему epm -i (package) epm install (package) или epmi (package) apt-get install (package) apt-get install (package)
Установка файла пакета в систему epm -i (package file) epm install (package file) или epmi (package file) dpkg -i (package file); apt-get -f install (package file) apt-get install (package file)
Удаление пакета из системы epm -e (package) epm remove (package) или epme (package) apt-get remove (package) ; dpkg -P (package) apt-get remove (package)
Поиск пакета в репозитории epm -s (text) epm search (text) или epms (text) apt-cache search (text) apt-cache search (text)
Проверка наличия пакета в системе epm -q (package) epm installed (package) или epmq (package) dpkg -l (package) (pipe) grep 'ii (package) rpm -qa (pipe) grep (package)
Список установленных пакетов epm -qa epm packages или epm list или epmqa dpkg -l rpm -qa
Поиск по названиям установленных пакетов epm -qp <word> epmqp grep <word> grep <word>
Принадлежность файла к (установленному) пакету epm -qf (file) epmqf (file) dpkg -S (file) rpm -qf (file) или rpmqf из etersoft-build-utils
Поиск, в каком пакете есть указанный файл epm -sf <file> epm filesearch
Список файлов в (установленном) пакете epm -ql (package) epm filelist <package> dpkg -L (package) rpm -ql (package)
Вывести информацию о пакете epm -qi (package) epm info (package) apt-cache show (package) apt-cache show (package)
Обновить дистрибутив epm upgrade epm dist-upgrade apt-get dist-upgrade apt-get dist-upgrade

Таблицы:

  1. Основные действия с пакетами: команды для разных дистрибутивов
  2. То же самое в разных стилях: Fedora / Mandriva / Debian (epm -i, epmi, epm install)

Важно показать, что разброд и шатание заменяется на единообразность.

Особенности реализации

  1. сглаживание различий между разными уровнями управления пакетами: позволяет посмотреть список файлов пакета, как rpm -ql, и установить файлы пакетов с разрешением зависимостей, как yum install.
  2. максимальное соблюдение зависимостей между пакетами при операциях

Также epm позволит убрать учёт различий между пакетными менеджерами из Korinf, который также выполняет действия с пакетами в целевых системах.

Примеры

# epms name subtext — выполняет epms name | grep subtest
# epms name ^subtext — выполняет epms name | grep -v subtest
# epms "name1 name2" — выполняет поиск именно такого сочетания

Подобные проекты

Работающие для нескольких дистрибутивов менеджеры пакетов:

  • smart (python): Arch, Debian, Mandriva, openSUSE, Slackware
  • PackageKit: Fedora, Ubuntu, openSUSE, Mandriva (pkgcon in command line)
  • Puppet

Отличия от аналогов

  • EPM написан на shell, поэтому не имеет зависимостей в системе, и не может сломаться при обновлении python.
  • EPM поддерживает все дистрибутивы, а не некоторые системы
  • EPM не является заменой штатного пакетного менеджера
  • EPM не использует D-BUS, системные сервисы

Планы развития

  • сделать поддержку перевода интерфейса на другие языки
  • сделать man-страницы (английский, русский)
  • поддержка NetBSD
  • совместимые (универсальные) названия пакетов
  • поддержка msi
  • нужна помощь в упаковке в разные дистрибутивы (чтобы он был в каждой установленной системе)

Публикации и обсуждения

Продвижение в дистрибутивы

Замечания и предложения можно оставить здесь

Ссылки