Urpmi - автоматическое добавление источников при установке пакетов по сети

Материал из Rosalab Wiki
Перейти к: навигация, поиск


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

Однако контейнеры - вещь временная, используемая для тестирования пакетов перед их отправкой в репозиторий (или на свалку истории). Более того, контейнеры на ABF автоматически уничтожаются через два месяца после создания. Так что добавление контейнера как постоянного источника вряд ли разумно - нужен он обычно только один раз, а после только засоряет систему.

Если в контейнере только один пакет, то можно передать urpmi прямую ссылку на этот пакет. Однако если в контейнере несколько пакетов, зависящих друг от друга, то придется добавлять источник, ставить пакет, а потом (рано или поздно) этот источник удалять. Многовато действий для ленивых тестировщиков и разработчиков! Неудивительно, что не раз поступали предложения сделать urpmi немного умнее и автоматически пробовать добавлять источник, если запрашивается установка пакета по сети, а после завершения установки этот источник автоматически удалять.

Например, допустим мы хотим установить пакет apache-mpm-prefork из сборки https://abf.io/build_lists/2290444. С предыдущей версией urpmi, попытка передать URL пакета напрямую успеха бы не принесла:

[root@r4null64 ~]# urpmi http://abf-downloads.rosalinux.ru/rosa2014.1/container/2290445/x86_64/main/release/apache-mpm-prefork-2.4.10-2-rosa2014.1.x86_64.rpm
Не удаётся установить запрошенный пакет:
apache-mpm-prefork-2.4.10-2-rosa2014.1.x86_64 (из-за неудовлетворённости apache-base[== 2.4.10-2])
Продолжить установку? (Y/n) 

Понятное дело, недостающий apache-base-2.4.10-2 находится в том же контейнере.

С новым urpmi эта команда отрабатывает "на ура":

urpmi http://abf-downloads.rosalinux.ru/rosa2014.1/container/2290445/x86_64/main/release/apache-mpm-prefork-2.4.10-2-rosa2014.1.x86_64.rpm
добавляется источник «medium_for_apache-mpm-prefork-2.4.10-2-rosa2014.1.x86_64.rpm»
    http://abf-downloads.rosalinux.ru/rosa2014.1/container/2290445/x86_64/main/release/media_info/20141009-184429-synthesis.hdlist.cz
    http://abf-downloads.rosalinux.ru/rosa2014.1/container/2290445/x86_64/main/release/media_info/20141009-184429-info.xml.lzma                                                    
    http://abf-downloads.rosalinux.ru/rosa2014.1/container/2290445/x86_64/main/release/media_info/20141009-184429-files.xml.lzma                                                   
    http://abf-downloads.rosalinux.ru/rosa2014.1/container/2290445/x86_64/main/release/media_info/20141009-184429-changelog.xml.lzma                                               
Для удовлетворения зависимостей будут установлены следующие пакеты:                                                                                                                
(только проверка, без установки)
 Пакет                          Версия       Релиз         Dist  DEpoch Платформа 
(источник «medium_for_apache-mpm-prefork-2.4.10-2-rosa2014.1.x86_64.rpm»)
 apache-base                    2.4.10       2             rosa  2014.1 x86_64 
 apache-mod_actions             2.4.10       2             rosa  2014.1 x86_64 
 apache-mod_alias               2.4.10       2             rosa  2014.1 x86_64 

< ... список пакетов для установки ... >

 apache-mod_usertrack           2.4.10       2             rosa  2014.1 x86_64 
 apache-mod_version             2.4.10       2             rosa  2014.1 x86_64 
 apache-mod_vhost_alias         2.4.10       2             rosa  2014.1 x86_64 
 apache-modules                 2.4.10       2             rosa  2014.1 x86_64 
(командная строка)
 apache-mpm-prefork             2.4.10       2             rosa  2014.1 x86_64 
Будет использовано 8.1КБ дополнительного дискового пространства.
Будет загружено 887КБ пакетов.
Установить 38 пакетов? (Y/n) Y

< ... журнал установки вырезан ... >

удаляется источник «medium_for_apache-mpm-prefork-2.4.10-2-rosa2014.1.x86_64.rpm»

Как мы видим, перед установкой пакета urpmi добавил источник с названием medium_for_apache-mpm-prefork-2.4.10-2-rosa2014.1.x86_64.rpm, а после установки удалил его. Даже если попытка установки завершится неудачно (по причине конфликтов, отсутсвия зависимостей, либо если вы просто ответите "нет" на предложение urpmi поставить необходимые пакеты), то источник все равно будет удален. Однако если вы прервете выполнение urpmi в процессе установки пакета (например, нажав Ctrl-C), то источник останется у вас в системе.

URL источника определяется очень просто - из URL, переданного в качестве аргумента urpmi, Отбрасывается имя пакета. Если источник по заданной ссылке добавить не удастся, то будет выведено соответствующее сообщение, однако установка запрошенного пакета будет продолжена. Автоматическое добавление источников можно полностью отключить в командной строке с помощью опции --no-auto-media, либо выставив глобальную опцию no-auto-media в файле /etc/urpmi/urpmi.cfg.

[ Хронологический вид ]Комментарии

(нет элементов)

Войдите, чтобы комментировать.