НовостиСобытияКонференцииIT@Work
Open Source:

Блог

Универсальное средство управления пакетами

Компания Etersoft сообщила о выходе EPM 1.0 - единого средства управления пакетами. Его цель - упростить обслуживание "зоопарка дистрибутивов". Решение проблемы оказалось чрезвычайно простым.

В каждом дистрибутиве используется свой набор команд для управления пакетами: apt, urpm, pacman, yum, zypper и т.д. Чтобы уверенно ориентироваться во всем этом разнообразии нужно феноменальная память. Да и нет особого смысла забивать свою голову наборами символов, а потом думать, что стал от этого умнее.

Etersoft предлагает использовать для управления единый набор команд. А программа в зависимости от используемого дистрибутива подставляет ту, которую "понимает" система.

Например, если пользователь работает в системе Mandriva, то для установки пакета он может использовать команду epm -i, которую программа заменит на urpmi. В openSUSE та же самая команда будет заменена на zypper in. В ALT Linux - на apt-get install.

Правда, непонятно одно. Попытка уменьшить сущности привела к появлению новой сущности. Не проще было бы использовать в качестве универсальной команды любую из уже существующих? Например, если работая в Mandriva пользователь набирает команду zypper in, то программа заменяет ее на urpmi.  
Aceler
Да, и такой же вопрос — почему не использовать packagekit.

Впрочем, LSB со своим BerlinAPI, или как это сегодня вместо него называется — явно тормозят, поэтому решение проблемы «снизу» нельзя не приветствовать.
Липатов Виталий
Ну вот на Ubuntu 12.04:
# apt-get install packagekit
Reading package lists... Done
Building dependency tree      
Reading state information... Done
The following extra packages will be installed:
 app-install-data apt-xapian-index gdebi-core libarchive12 libdbus-glib-1-2 libnettle4 libpackagekit-glib2-14 libpolkit-gobject-1-0 libxapian22
 lsb-release packagekit-backend-aptcc python-apt python-apt-common python-chardet python-dbus python-dbus-dev python-debian python-gi
 python-packagekit python-xapian xz-lzma
The following NEW packages will be installed:
 app-install-data apt-xapian-index gdebi-core libarchive12 libdbus-glib-1-2 libnettle4 libpackagekit-glib2-14 libpolkit-gobject-1-0 libxapian22
 lsb-release packagekit packagekit-backend-aptcc python-apt python-apt-common python-chardet python-dbus python-dbus-dev python-debian python-gi
 python-packagekit python-xapian xz-lzma
0 upgraded, 22 newly installed, 0 to remove and 0 not upgraded.
Need to get 11.3 MB of archives.
After this operation, 24.6 MB of additional disk space will be used.
Do you want to continue [Y/n]?

После установки:
# pkcon
Failed to contact PackageKit: Could not connect: No such file or directory

# apt-get install packagekit-backend-apt
Reading package lists... Done
Building dependency tree      
Reading state information... Done
The following extra packages will be installed:
 python-gdbm python-gnupginterface python-pycurl python-software-properties unattended-upgrades update-manager-core
Suggested packages:
 python-gdbm-dbg libcurl4-gnutls-dev python-pycurl-dbg bsd-mailx
The following NEW packages will be installed:
 packagekit-backend-apt python-gdbm python-gnupginterface python-pycurl python-software-properties unattended-upgrades update-manager-core
0 upgraded, 7 newly installed, 0 to remove and 49 not upgraded.
Need to get 204 kB/345 kB of archives.
After this operation, 2238 kB of additional disk space will be used.
Do you want to continue [Y/n]?

# pkcon
Failed to contact PackageKit: Could not connect: No such file or directory

Нагуглить, в чём проблема, не удалось.
Вот и ответ, почему не использовать. К тому же PackageKit не умеет ничего кроме установки/удаления.
Липатов Виталий
> Не проще было бы использовать в качестве универсальной команды любую из уже существующих? Например, если работая в Mandriva пользователь набирает команду zypper in, то программа заменяет ее на urpmi.
Я думаю, это вызовет нескончаемые споры, а какую команду из существующих принять за основную.
Потом, обычно команда не одна, а два: yum-rpm, apt-dpkg, zypper-rpm.
Также я не уверен, что подмена сущности чем-то лучше появления новой сущности.
Основное же — epm не аналогичен любому пакетному менеджеру. Он несколько выше, у него есть некоторая эвристика.
И ещё есть чисто техническая проблема — конфликт файлов при попытке подмены.
И я бы сказал, что пакетные менеджеры приходят и уходят, а EPM — остаётся. :)