Urpmi - автоматическое добавление источников при установке пакетов по сети
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.
[ Хронологический вид ]Комментарии
Войдите, чтобы комментировать.