Epm: различия между версиями

Материал из Etersoft wiki
Перейти к навигацииПерейти к поиску
Строка 1: Строка 1:
== Единая команда управления пакетами (epm) ==
== Единая команда управления пакетами (epm) ==


EPM — имеющая одинаковый интерфейс на всех системах команда управления пакетами. При интерфейсе, похожем на rpm, apt и urpm, выполняет необходимые операции на любой платформе.  
EPM — имеющая одинаковый интерфейс на всех системах команда управления пакетами. При интерфейсе, похожем на rpm, apt и urpm, выполняет необходимые операции на любой платформе.
 
Включает в себя следующую функциональность:
* управление пакетами (установка — удаление — поиск)
* управление репозиториями (добавление — удаление — обновление — список)
* управление системными сервисами (включение — выключение — список)
 
=== Назначение ==
* в скриптах и установщиках, сервисных программах
* в повседневном администрировании различных систем
* для обучения: не нужны длинные статьи, как в той или иной системе работать с пакетами. EPM выводит каждую выполняемую им для реальных операций с пакетами команду
 


=== Установка ===
=== Установка ===
Строка 10: Строка 21:
Получить исходники можно [http://git.etersoft.ru/projects/?p=korinf/eepm.git;a=summary здесь]. EPM может работать без установки в систему. Исходные rpm-пакеты можно взять [http://download.etersoft.ru/pub/Etersoft/Sisyphus/sources здесь].
Получить исходники можно [http://git.etersoft.ru/projects/?p=korinf/eepm.git;a=summary здесь]. EPM может работать без установки в систему. Исходные rpm-пакеты можно взять [http://download.etersoft.ru/pub/Etersoft/Sisyphus/sources здесь].


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


[http://wiki.etersoft.ru/Epmtest Состояние реализации под разные дистрибутивы].
[http://wiki.etersoft.ru/Epmtest Состояние реализации под разные дистрибутивы].
Строка 107: Строка 119:
* [http://docs.puppetlabs.com/references/latest/type.html#package Puppet]
* [http://docs.puppetlabs.com/references/latest/type.html#package Puppet]


=== Отличия ===
=== Отличия от аналогов ===
* EPM написан на shell, поэтому не имеет зависимостей в системе, и не может сломаться при обновлении python.
* EPM написан на shell, поэтому не имеет зависимостей в системе, и не может сломаться при обновлении python.
* EPM поддерживает все дистрибутивы, а не некоторые системы
* EPM поддерживает все дистрибутивы, а не некоторые системы
* EPM не является заменой штатного пакетного менеджера
* EPM не является заменой штатного пакетного менеджера
* EPM не использует D-BUS, системные сервисы
* EPM не использует D-BUS, системные сервисы
=== Планы развития ===
* сделать поддержку перевода интерфейса на другие языки
* сделать man-страницы (английский, русский)
* поддержка NetBSD
* совместимые (универсальные) названия пакетов
* поддержка msi
* нужна помощь в упаковке в разные дистрибутивы (чтобы он был в каждой установленной системе)


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

Версия 20:48, 9 февраля 2013

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

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

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

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

= Назначение

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


Установка

Epm поставляется в пакете eepm. Для установки EPM в вашу систему скачайте соответствующий пакет с сайта http://download.etersoft.ru/pub/Etersoft/Sisyphus/ и установите его.

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

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

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

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

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

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


Описание операции Команда 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

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

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

  • 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
  • нужна помощь в упаковке в разные дистрибутивы (чтобы он был в каждой установленной системе)

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

Ссылки