LINUX.ORG.RU

«розеточный» менеджер пакетов


0

2

Есть такой «розеттский камень», где одинаковые слова написаны на разных языках.

Проблема разных пакетных менеджеров не в том, что они выполняют свои функции по-разному, а в том, что у них разный интерфейс с пользователем (разные пользователи помнят разные наборы команд для выполнения одних и тех же функций).

Идея в том, чтобы написать транслятор из всех языков команд в команды одному исполнителю. Т.е. не важно, что наберет пользователь - rpm -i pkg, emerge pkg или aptitude install pkg - в итоге будет выполнена нужная команда для пакетного менеджера текущего дистрибутива.

Никто не видел подобного?

Тогда, для начала, нужно привести пакетные менеджеры к одинаковому функционалу, что глупо.

kinik ★★☆
()

такая обёртка пишется на баше за несколько неспешных вечеров

заодно и попрактикуешься

anonymous
()
Ответ на: комментарий от equeim

Есть packagekit

по-моему он делает другое:

The pkcon text-mode program allows you to interact with PackageKit on the command line.

т.е. он примерно как менеджер пакетов «cave» из комплекта paludis/exherbo

deadline-multishiva
() автор топика
Ответ на: комментарий от anonymous

Как раз очень в тему. «А давайте изобретём ещё одно (квадратное) колесо!»

beastie ★★★★★
()
Ответ на: комментарий от deadline-multishiva

Да, это немного не то. Но задача та же самая. Он просто предоставляет унифицированный интерфейс для практически любого пакетного менеджера.

equeim ★★
()
Ответ на: комментарий от equeim

задача та же самая.

да нет же! он как раз предоставляет n+1-ый язык команд.

Ну разве что, может быть часть кода можно использовать как интерфейс к бэкендам

StrongDollar
()
Последнее исправление: StrongDollar (всего исправлений: 1)

Функционал разный. Как в apt транслировать

USE="-systemd" emerge mpd -avp
а?

Lilly
()

rpm -i pkg
aptitude install pkg

Это немного разные уровни

Никто не видел подобного?

Да пускай тот же KPackageKit

KennyMinigun ★★★★★
()
Последнее исправление: KennyMinigun (всего исправлений: 1)

Проблема разных пакетных менеджеров не в том, что они выполняют свои функции по-разному, а в том, что у них разный интерфейс с пользователем (разные пользователи помнят разные наборы команд для выполнения одних и тех же функций).

что вам мешает подключить к любимому дистру чужой ПМ?

(правда я не знаю, где взять RPM пакеты для убунты, но вам-то не пофиг?)

emulek
()

Проблема разных пакетных менеджеров не в том, что они выполняют свои функции по-разному, а в том, что у них разный интерфейс с пользователем

Нет. Ни то, ни другое проблемой не являются.

x3al ★★★★★
()
Ответ на: комментарий от emulek

В репах генты был pacman, может, ещё есть. Рабочий. Можно юзать арчерепу и превратить систему в помойку двумя командами.

x3al ★★★★★
()
Ответ на: комментарий от x3al

В репах генты был pacman, может, ещё есть. Рабочий. Можно юзать арчерепу и превратить систему в помойку двумя командами.

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

emulek
()

Была подобная тема на ЛОРе. Продвигали такую идею. Нужны юзкейсы.

Вот для начала (c примерами из apt/dpkg для понимания):

  • Искать пакет по имени apt-cache search
  • Искать пакет по другим критериям (назначение, время релиза)
  • Установить пакет. Предварительно (но только по желанию пользователя) ознакомится с изменениями, вносимыми пакетом (зависимости, изменения файлов) apt-get install
  • Посмотреть список установленных/проверить установлен ли пакетapt-cache policy dpkg --get-selections
  • Посмотреть сведения об установленном пакете apt-cache show
  • Удалить пакет. Предварительно ознакомившись с изменениями. Если изменения не критичны — то только по желанию пользователя.
  • Добавить репозиторий vim /etc/apt/sources.list.d/my.list add-apt-repository
  • Управление репозиториями: какие пакеты использовать, какие нет. (причём как можно проще: не нагружать пользователя кучей лишней ручной работы).
  • Удаление репозитория (и опционально всего софта с него). add-apt-repository --remove

И всё это надо представить в максимально удобной для пользователя форме. Тогда и только тогда такой пакетный менеджер станет нужным. Иначе — как beastie и сказал: еще один «стандарт».

KennyMinigun ★★★★★
()
Ответ на: комментарий от emulek

RPM пакеты для убунты, но вам-то не пофиг?

Та, всё намного проще:

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 14.04 LTS
Release:        14.04
Codename:       trusty

$ apt-cache show yum
Package: yum
Priority: extra
Section: universe/admin
Installed-Size: 3201
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Thomas Goirand <zigo@debian.org>
Architecture: all
Version: 3.4.3-2ubuntu1
Depends: python (>= 2.7.1-0ubuntu2), python-libxml2, python-rpm, python-sqlite, python-sqlitecachec, python-urlgrabber, rpm (>= 4.4.1), python (<< 2.8)
Filename: pool/universe/y/yum/yum_3.4.3-2ubuntu1_all.deb
Size: 821054
MD5sum: 22652ae8e91d0f00c3ed1427abe9eb00
SHA1: c188c60608d9b8574902f9ec40f13dc5021eaa8e
SHA256: 40db723f35bceeb978d6c639b566fb91047d6fb56399092c67c98ea553d03184
Description-ru: Advanced front-end for rpm
 Yum (Yellow dog Updater, Modified) is an automatic updater and package
 installer/remover for rpm systems. It automatically computes dependencies
 and figures out what things should occur to install packages. It makes it
 easier to maintain groups of machines without having to manually update
 each one using rpm.
 .
 Возможности:
 .
     * Multiple Repositories
     * Simple config file
     * Correct dependency calculation
     * Fast operation
     * rpm-consistent behavior
     * comps.xml group support, including multiple repository groups
     * Simple interface
Description-md5: 9698b7fd0494b9324e3ff2069c3f8afe
Homepage: http://yum.baseurl.org/
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Origin: Ubuntu

Дело за малым — добавить репу от федоры (whatever).

KennyMinigun ★★★★★
()

это будет что-то типа setup.exe или autorun с компакта/флешки?

swwwfactory ★★
()
Последнее исправление: swwwfactory (всего исправлений: 1)
Ответ на: ./configure && make && make install от anonymous

Два чая этому господину.
2ТС: RPM вроде входит в LSB, радуйтесь. А я и с pkgtools и slackpkg неплохо живу, УМВР.

yars068 ★★★★
()

Это же легко пишется на Bash. Пара скриптов с именами соответственно rpm, pacman, portage...

DeadEye ★★★★★
()
Ответ на: ./configure && make && make install от anonymous

./configure && make && make install

Остальное от лукавого.

«лёгким движением make install любой дистрибутив превращается в слакваре» :)

sergej ★★★★★
()
Ответ на: комментарий от Shtsh

«Конфигурация описывается на специальном декларативном языке.» - это просто ещё один язык, не то...

StrongDollar
()
Ответ на: комментарий от x3al
kirill@haruhi:~$ apt-cache show yum
Package: yum
Priority: extra
Section: universe/admin
Installed-Size: 3201
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Thomas Goirand <zigo@debian.org>
Architecture: all
Version: 3.4.3-2ubuntu1
Depends: python (>= 2.7.1-0ubuntu2), python-libxml2, python-rpm, python-sqlite, python-sqlitecachec, python-urlgrabber, rpm (>= 4.4.1), python (<< 2.8)
Filename: pool/universe/y/yum/yum_3.4.3-2ubuntu1_all.deb
Size: 821054
MD5sum: 22652ae8e91d0f00c3ed1427abe9eb00
SHA1: c188c60608d9b8574902f9ec40f13dc5021eaa8e
SHA256: 40db723f35bceeb978d6c639b566fb91047d6fb56399092c67c98ea553d03184
Description-ru: Advanced front-end for rpm
 Yum (Yellow dog Updater, Modified) is an automatic updater and package
 installer/remover for rpm systems. It automatically computes dependencies
 and figures out what things should occur to install packages. It makes it
 easier to maintain groups of machines without having to manually update
 each one using rpm.
 .
 Возможности:
 .
     * Multiple Repositories
     * Simple config file
     * Correct dependency calculation
     * Fast operation
     * rpm-consistent behavior
     * comps.xml group support, including multiple repository groups
     * Simple interface
Description-md5: 9698b7fd0494b9324e3ff2069c3f8afe
Homepage: http://yum.baseurl.org/
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Origin: Ubuntu
LongLiveUbuntu ★★★★★
()
Последнее исправление: LongLiveUbuntu (всего исправлений: 1)
Ответ на: комментарий от x3al
kirill@haruhi:~$ apt-cache show rpm
Package: rpm
Priority: optional
Section: admin
Installed-Size: 401
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Michal Čihař <nijel@debian.org>
Architecture: amd64
Version: 4.11.1-3
Replaces: manpages-pl (<< 20051017-1)
Depends: libc6 (>= 2.17), libelf1 (>= 0.131), libpopt0 (>= 1.14), librpm3 (>= 4.10.0), librpmbuild3 (>= 4.10.0), librpmio3 (>= 4.10.0), librpmsign1 (>= 4.10.0), perl, rpm2cpio, debugedit (= 4.11.1-3), rpm-common (= 4.11.1-3)
Suggests: alien, elfutils, rpm-i18n
Breaks: man-db (<< 2.5.0-1), manpages-pl (<< 20051017-1)
Filename: pool/main/r/rpm/rpm_4.11.1-3_amd64.deb
Size: 135162
MD5sum: 1679156a2ca9cb611d1aa2255b1fce54
SHA1: 9884aabf1f5e5ea35354064000c717cda51dad5a
SHA256: 44e01f568a2078e16e04fa05bf444d963d5af9d68bdf68ae9716968ba817e221
Description-ru: менеджер пакетов RPM
 RPM Package Manager (RPM) – это мощный менеджер пакетов, управляемый из
 командной строки, который позволяет устанавливать, удалять, проверять,
 искать и обновлять пакеты с программным обеспечением.
 .
 В Debian и основанных на нём системах рекомендуется использовать alien для
 преобразования пакетов RPM в пакеты .deb, а не обходить систему управления
 пакетов Debian, устанавливая пакеты rpm напрямую.
Description-md5: b637dea69233214122f83668b1ac634e
Homepage: http://rpm.org/
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Origin: Ubuntu
Supported: 5y
LongLiveUbuntu ★★★★★
()

я уже видел это где-то, не один раз причём. ещё не назвали вроде.

wakuwaku ★★★★
()
Последнее исправление: wakuwaku (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.