zrpm - консольный менеджер пакетов

Ответить
sokoloff
Сообщения: 156
Зарегистрирован: 05 ноя 2013, 20:28
Operating system: ROSA Desktop Fresh R1 64bit

zrpm - консольный менеджер пакетов

Сообщение sokoloff » 07 ноя 2015, 10:20

Когда я перешел на Росу меня удивили urpm утилиты. После aptitude они создавали ощущение набора костыликов. Основные претензии у меня к urpmq, с одной стороны она выдает лишнюю информацию, старые версии пакетов, пакеты под чужие архитектуры. С другой стороны информации мало, из вывода urpmq нельзя узнать установлен ли пакет и требует ли он обновления.

В результате я решил это исправить и написал свою консольную программу для управления пакетами - zrpm.

Преимущества
  • Безопасно. Для опасных операции вроде установки, удаления пакетов, обновления репозиториев и.т.д. используются штатные urpm утилиты. Поэтому, если вы доверяете urpm, то можете быть спокойны, zrpm не сломает Вашу систему.
  • Быстро. Поиск работает намного быстрее, например у меня `urpmq --fuzzy qt` думает 4 с лишним минуты, а `zrpm search qt` выдает результат за 3 секунды.
  • Удобно. Хоть утилита и не покрывает все возможности urpm, но все ежедневные действия делаются с помощью одной утилиты и единообразными опциями командной строки. Поиск выдает информацию в цвете и сообщает статус пакета - установлен, не установлен, требует обновления.
Установка
Программа написана на Go и не требует для работы никаких зависимостей. Просто скачайте бинарник для Вашей архитектуры из репозитория, положите его в /usr/bin, /usr/local/bin или ~/bin и можете запускать. Никакой настройки программа не требует. Если будет интерес к программе я подготовлю нормальный пакет.

Использование
Как я уже говорил программа не имеет всех возможностей urpm утилит, но все "ежедневные" потребности она покрывает и даже чуть больше. Сейчас программа может делать следующее:
  • Поиск пакетов
    Для поиска пакетов используется команда `zrpm search строка_поиска` Пример:

    Код: Выделить всё

    zrpm search qtcurve
    zrpm1.png
    Сразу видно какие пакеты установлены, какие нет, а какие устарели.
    Можно использовать щаблоны "*" и "?", только не забывайте брать их в кавычки. Например zrpm search "qt?-designer" найдет и qt4-designer и qt5-designer
    zrpm2.png
    Программа показывает только последние версии и только пакеты подходящие для вашей архитектуры, но при желании можете использовать ключи `--showduplicates` и `--arch`

    Если нужно узнать имя пакета в который содержит нужную программу, можно использовать `zrpm files имя_нужного_файла` Пример:

    Код: Выделить всё

    zrpm files bin/boomaga
  • Просмотр подробной информации о пакетах
    Поиск выдает только минимум информации, если надо больше, то используйте команду `zrpm show строка_поиска` Пример:

    Код: Выделить всё

    zrpm show "qt?-designer"
    zrpm3.png
    Программа показывает только последние версии и только пакеты подходящие для вашей архитектуры, но при желании можете использовать ключи `--showduplicates` и `--arch`
  • Установка, обновление и удаление пакетов
    Для установки или обновления пакетов используйте `zrpm install пакет`, можно указать несколько пакетов. Программа спросит пароль и установит или обновит пакеты.
    Для удаления используйте `zrpm remove пакет`.
  • Обновление списка пакетов из репозитория, и обновление системы
    Для обновление списка пакетов используйте `zrpm update`.
    Для обновления всех программ в системе используйте `zrpm upgrade`
    Возможно я добавлю автоматическое обновление реп, если они устарели. Вопрос нужно это, и какое время считать устаревшим 30 минут, 1 час, пол дня.
  • Список репозиториев
    Команда `zrpm repo` выводит список репозиториев и дату последнего обновления. Если нужна еще какая информация, пишите в комментах.
  • Прочее
    Используя команды `zrpm download имя_пакета` и `zrpm source имя_пакета` можно скачать RPM или SRC.RPM файл соответственно.
О багах и пожеланиях можно писать в баг-треккер или обсуждать в этой ветке.
Мне очень интересно, такая программа нужна еще кому кроме меня, пишите Ваши отзывы.

Аватара пользователя
Delles
Сообщения: 1785
Зарегистрирован: 18 авг 2015, 19:52
Operating system: GNU/Linux : ROSA Desktop Fresh R7 (x86_64). Не обновлял.

Re: zrpm - консольный менеджер пакетов

Сообщение Delles » 07 ноя 2015, 12:26

Умеет ли она автоматически переключаться на работающий репозиторий, если первый, к которому она обратилась, не работает? Такая опция была бы очень кстати: официальный репозиторий не отозвался, тут же запрашивается репозиторий на Яндексе.
Talk is cheap. Show me the code.
Linus Torvalds

sokoloff
Сообщения: 156
Зарегистрирован: 05 ноя 2013, 20:28
Operating system: ROSA Desktop Fresh R1 64bit

Re: zrpm - консольный менеджер пакетов

Сообщение sokoloff » 07 ноя 2015, 14:15

Основные фишки связаны с поиском и отображением информации.
При обновлениях программа работает как враппер, т.е. просто запускает urpm утилиты. Я не нашел полноценной информации об устройстве репозитория, поэтому не стал рисковать, пусть urpm разбирается с ними.

Аватара пользователя
Delles
Сообщения: 1785
Зарегистрирован: 18 авг 2015, 19:52
Operating system: GNU/Linux : ROSA Desktop Fresh R7 (x86_64). Не обновлял.

Re: zrpm - консольный менеджер пакетов

Сообщение Delles » 07 ноя 2015, 14:33

Но ведь при недоступности основного репозитория будет выведена ошибка, почему бы при выводе ошибки (сообщения о недоступности) не прописать перезапуск urpm снова с адресацией ее уже на Яндекс-репозиторий?
Talk is cheap. Show me the code.
Linus Torvalds

sokoloff
Сообщения: 156
Зарегистрирован: 05 ноя 2013, 20:28
Operating system: ROSA Desktop Fresh R1 64bit

Re: zrpm - консольный менеджер пакетов

Сообщение sokoloff » 07 ноя 2015, 15:52

Delles писал(а):Но ведь при недоступности основного репозитория будет выведена ошибка, почему бы при выводе ошибки (сообщения о недоступности) не прописать перезапуск urpm снова с адресацией ее уже на Яндекс-репозиторий?
Мы говорим про обновление списка пакетов (urpmi.update) или про установку программ (urpmi program)?
В принципе я не против. Но как делать "переадресацию на Яндекс-репозиторий", есть такая опция? Или надо подменять /etc/urpmi/urpmi.cfg.
И еще. Насколько яндексовское зеркало актуально обноывляется? Может проще совсем переключиться на него?

Аватара пользователя
Delles
Сообщения: 1785
Зарегистрирован: 18 авг 2015, 19:52
Operating system: GNU/Linux : ROSA Desktop Fresh R7 (x86_64). Не обновлял.

Re: zrpm - консольный менеджер пакетов

Сообщение Delles » 07 ноя 2015, 16:26

sokoloff писал(а):Мы говорим про обновление списка пакетов (urpmi.update) или про установку программ (urpmi program)?
Я больше имел в виду установку. Кому-то понадобилась некая программа, а основной репозиторий не работает. Человек часто даже не понимает, почему она у него не устанавливается.
sokoloff писал(а):Но как делать "переадресацию на Яндекс-репозиторий", есть такая опция? Или надо подменять /etc/urpmi/urpmi.cfg.
Это уж Вам виднее, как лучше. http://mirror.yandex.ru/rosa/
sokoloff писал(а):Насколько яндексовское зеркало актуально обноывляется? Может проще совсем переключиться на него?
У меня такое впечатление, что там всё свежее появляется очень быстро. М.б. там дежурят демоны, которые сразу забирают всё новое с основных репозиториев?.. Федора 23 там появилась практически сразу же. Оцените сами http://mirror.yandex.ru/
Talk is cheap. Show me the code.
Linus Torvalds

Аватара пользователя
Галахов Роман
Сообщения: 2349
Зарегистрирован: 26 фев 2012, 20:02
Operating system: Rosa R12.1 Fresh Plasma (HP ProBook 440 G4 (y7z81ea))
Откуда: Моск. обл. Волоколамск

Re: zrpm - консольный менеджер пакетов

Сообщение Галахов Роман » 07 ноя 2015, 19:16

sokoloff писал(а):И еще. Насколько яндексовское зеркало актуально обноывляется? Может проще совсем переключиться на него?
По статусу оно, так же как и rosalab.ru 2-е после ABF (с которого зеркалируется). Если хотите самое свежее - только ABF но там канал достаточно слабый, не потянет большое количество клиентов.
Rosa 2021.1 Fresh KDE5 x64-86 (HP ProBook 440 G4 (y7z81ea))

sokoloff
Сообщения: 156
Зарегистрирован: 05 ноя 2013, 20:28
Operating system: ROSA Desktop Fresh R1 64bit

Re: zrpm - консольный менеджер пакетов

Сообщение sokoloff » 07 ноя 2015, 20:27

Галахов Роман писал(а):
sokoloff писал(а):И еще. Насколько яндексовское зеркало актуально обноывляется? Может проще совсем переключиться на него?
По статусу оно, так же как и rosalab.ru 2-е после ABF (с которого зеркалируется). Если хотите самое свежее - только ABF но там канал достаточно слабый, не потянет большое количество клиентов.
Роман может Вы проясните есть в Росе понятие зеркала, т.е. можно ли настроить 2 репозитория для одних пакетов?

Аватара пользователя
Галахов Роман
Сообщения: 2349
Зарегистрирован: 26 фев 2012, 20:02
Operating system: Rosa R12.1 Fresh Plasma (HP ProBook 440 G4 (y7z81ea))
Откуда: Моск. обл. Волоколамск

Re: zrpm - консольный менеджер пакетов

Сообщение Галахов Роман » 07 ноя 2015, 21:19

sokoloff писал(а):Роман может Вы проясните есть в Росе понятие зеркала, т.е. можно ли настроить 2 репозитория для одних пакетов?
Я, конечно не разработчик, но вижу ситуацию так:
Есть 2 главных зеркала:
39.png
Есть "Настройка источников" - куда можно добавить хоть все...
40.png
И включить все.
До этого все для всех понятно.
Но возникает вопрос - "Как сделать настройку приоритета репозитория (когда работают сразу все - откуда качать/устанавливать, чтобы не было сбоя из-за задвоения)?" Как это отрабатывается по порядку в списке или еще как? Тут увы я подсказать не могу, хотя самому интересно, так как есть свой локальный репозиторий (зеркало rosalab.ru на NAS) и как их использовать совместно пока не знаю и перешел с локального на интернет-репозиторий.
Rosa 2021.1 Fresh KDE5 x64-86 (HP ProBook 440 G4 (y7z81ea))

Аватара пользователя
Barmalei
Сообщения: 5468
Зарегистрирован: 29 дек 2014, 15:45
Operating system: Rosa Fresh R12 Plasma 2021.1 x64

Re: zrpm - консольный менеджер пакетов

Сообщение Barmalei » 07 ноя 2015, 21:49

По моему Яндекс завязан с Росой и приоритет устанавливается.

sokoloff
Сообщения: 156
Зарегистрирован: 05 ноя 2013, 20:28
Operating system: ROSA Desktop Fresh R1 64bit

Re: zrpm - консольный менеджер пакетов

Сообщение sokoloff » 07 ноя 2015, 22:21

Barmalei писал(а):По моему Яндекс завязан с Росой и приоритет устанавливается.
У меня похожая ошибка выскочила, но репы добавились. После этого через кнопку "Редактировать" я поменял для всех яндесовых реп ftp на http, после этого заработало.

sokoloff
Сообщения: 156
Зарегистрирован: 05 ноя 2013, 20:28
Operating system: ROSA Desktop Fresh R1 64bit

Re: zrpm - консольный менеджер пакетов

Сообщение sokoloff » 08 ноя 2015, 12:32

Галахов Роман писал(а):есть свой локальный репозиторий (зеркало rosalab.ru на NAS) и как их использовать совместно пока не знаю и перешел с локального на интернет-репозиторий.
Мне кажется что это подойдет https://wiki.mageia.org/en/Urpmi-proxy

sokoloff
Сообщения: 156
Зарегистрирован: 05 ноя 2013, 20:28
Operating system: ROSA Desktop Fresh R1 64bit

Re: zrpm - консольный менеджер пакетов

Сообщение sokoloff » 08 ноя 2015, 12:43

Так, первые косяки вылезли. После добавления яноксовых зеркал выяснилось что в их директорях (/var/lib/urpmi/XXX) есть только synthesis.hdlist.cz и нет info.xml.lzma. А моя программа берет описания из info.xml.lzma. В synthesis храниться только некоторая информация urpmihowto говорит "a synthesis.hdlist.cz file, much smaller than the hdlist and that contains only the information necessary to urpmi to resolve dependencies", это понятно, не понятно откуда брать остальную информацию для этих репозиториев.
Или это только у меня нет файлов info.xml.lzma, из-за косяков с яндексовым ftp. Ребят, у кого нормально зеркала настроены посмотрите есть у вас файлы info.xml.lzma во всех директориях в /var/lib/urpmi?

Аватара пользователя
Галахов Роман
Сообщения: 2349
Зарегистрирован: 26 фев 2012, 20:02
Operating system: Rosa R12.1 Fresh Plasma (HP ProBook 440 G4 (y7z81ea))
Откуда: Моск. обл. Волоколамск

Re: zrpm - консольный менеджер пакетов

Сообщение Галахов Роман » 08 ноя 2015, 13:54

sokoloff писал(а):Так, первые косяки вылезли. После добавления яноксовых зеркал выяснилось что в их директорях (/var/lib/urpmi/XXX) есть только synthesis.hdlist.cz и нет info.xml.lzma. А моя программа берет описания из info.xml.lzma. В synthesis храниться только некоторая информация urpmihowto говорит "a synthesis.hdlist.cz file, much smaller than the hdlist and that contains only the information necessary to urpmi to resolve dependencies", это понятно, не понятно откуда брать остальную информацию для этих репозиториев.
Или это только у меня нет файлов info.xml.lzma, из-за косяков с яндексовым ftp. Ребят, у кого нормально зеркала настроены посмотрите есть у вас файлы info.xml.lzma во всех директориях в /var/lib/urpmi?
Я не знаю к какому зеркалу подключен - прописано $MIRRORLIST
Этот файл есть
41.png
Но откуда он я не понимаю
Тут его нет ftp://mirror.rosalab.ru/rosa/rosa2014.1 ... edia_info/
И тут ftp://mirror.yandex.ru/rosa/rosa2014.1/ ... edia_info/
Rosa 2021.1 Fresh KDE5 x64-86 (HP ProBook 440 G4 (y7z81ea))

semivanya
Сообщения: 300
Зарегистрирован: 07 авг 2015, 16:44
Operating system: ROSA R6

Re: zrpm - консольный менеджер пакетов

Сообщение semivanya » 17 янв 2016, 10:48

А есть возможность удалять пакеты по шаблону названия? например kernel-nrj-desktop-4.1.* ?
так что при вводе части названия пакета и нажатии tab ничего не предлагает?

sokoloff
Сообщения: 156
Зарегистрирован: 05 ноя 2013, 20:28
Operating system: ROSA Desktop Fresh R1 64bit

Re: zrpm - консольный менеджер пакетов

Сообщение sokoloff » 17 янв 2016, 16:46

semivanya писал(а):А есть возможность удалять пакеты по шаблону названия? например kernel-nrj-desktop-4.1.* ?
Если urpme это умеет, то и zrpm может. Установка/удаление/обновление сделано как тонкая надстройка над urpm утилитами.
semivanya писал(а):так что при вводе части названия пакета и нажатии tab ничего не предлагает?
Клике на таб обрабатывает шелл, в bash это пакет bash bash-completion

Ответить

Вернуться в «Обсуждение ROSA Fresh R4 - R8 (платформа 2014.1)»