Urpm-tools

Материал из Rosalab Wiki
Перейти к: навигация, поиск
Urpm-tools - набор утилит, расширяющих и дополняющих функциональность urpmi, urpmq, urpmf и urpme.

Urpm-tools частично основаны на yum-utils, но существенно превосходят их в плане функциональных возможностей. Для большей совместимости инструменты urpm-tools имеют схожие с yum-utils названия и одинаковые опции для одинаковых действий.

В настоящее время пакет urpm-tools доступен в репозитории Mandriva Cooker.

Список инструментов

Tool Description
urpm-downloader скачивание пакетов и SRPM вместе со всеми зависимостями, а также пакетов с debug-информацией (инструмент сочетает в себе функциональность yum-downloader и debuginfo-install из yum-utils)
urpm-package-cleanup чистка установленных пакетов
urpm-repoclosure проверка замкнутости репозитория по зависимостям
urpm-repodiff diff двух репозиториев
urpm-repograph построение графа зависимостей пакетов в репозитории
urpm-repomanage анализ набора RPM-файлов и выделение самых новых и устаревших версий каждого пакета
urpm-reposync синхронизация локального набора пакетов с репозиторием (аналог distrosync из yum-utils)

В дальнейшем планируется добавление еще нескольких полезных утилит:

Tool Description
urpm-build-distrib создание дистрибутива на основе нескольких репозиториев

Некторые возможности, предоставляемые утилитами yum и yum-utils, поддерживаются непосредственно urpmi и компанией:

Yum Tool Urpmi analogue Description
yum-builddep urpmi --buildrequires установка зависимостей, необходимых для сборки заданного SRPM (на основе самого пакета или spec-файла)
createrepo genhdlist2 создание репозитория на основе набора RPM-файлов
repoquery urpmq запросы к репозиторию, аналогичные тем, что умеет делать rpm для пакетов

See also: Package Manager Options

urpm-downloader

Инструмент, позволяющий скачивать RPM и SRPM пакеты из URPM репозиториев

Использование:

urpm-downloader [-h] [-u] [-r] [-a] [-b] [-s] [-d] [-D] [--version]
                       [-v] [-q]
                       [--include-media INCLUDE_MEDIA [INCLUDE_MEDIA ...]]
                       [--exclude-media EXCLUDE_MEDIA [EXCLUDE_MEDIA ...]]
                       [-x EXCLUDE_PACKAGES [EXCLUDE_PACKAGES ...]] [-i] [-o]
                       [--all-alternatives] [--all-versions]
                       [--dest-dir DEST_DIR]
                       packages [packages ...]


positional arguments:
  packages              Имена пакетов для скачивания.
                        Можно так же использовать
                        имена существующих (S)RPM
                        файлов, в этом случае
                        информация об имени пакета
                        будет извлечена из них.

optional arguments:
  -h, --help            show this help message and exit
  -u, --urls            Выводить их URL файлов, но не
                        скачивать их (в случае
                        использования совместно с -a
                        или -r src.rpm файл все равно
                        будет скачан, так как без
                        этого невозможно разрешить
                       сборочные зависимости)
  -r, --resolve         При скачивании пакета
                        разрешать зависимости и
                        скачивать все необходимые
                        пакеты, но только если они не
                        установлены в системе.
  -a, --resolve-all     При скачивании пакета
                        разрешать зависимости и
                        скачивать все необходимые
                        пакеты, даже если они уже
                        установлены в системе
  -b, --binary          Скачивать бинарные пакеты (RPM)
  -s, --source          Скачать пакеты с исходными
                        кодами (SRPM)
  -d, --debug-info      Скачать пакеты с отладочной
                        информацией
  -D, --debug-info-install
                        Скачать пакеты с отладочной
                        информацией и установить
  --version             show program's version number and exit
  -v, --verbose         Выводить при исполнении
                        отладочную информацию
  -q, --quiet           Ничего не печатать в консоль
  --include-media INCLUDE_MEDIA [INCLUDE_MEDIA ...], --media INCLUDE_MEDIA [INCLUDE_MEDIA ...]
                        Использовать только
                        указанные источники
  --exclude-media EXCLUDE_MEDIA [EXCLUDE_MEDIA ...]
                        Не использовать указанные
                        источники
  -x EXCLUDE_PACKAGES [EXCLUDE_PACKAGES ...], --exclude-packages EXCLUDE_PACKAGES [EXCLUDE_PACKAGES ...]
                        Исключить пакеты по
                        регулярному выражению
  -i, --ignore-errors   Пытаться игнорировать ошибки
-o, --overwrite       Если файл уже существует,
                        скачать его заново и
                        заменить.
  --all-alternatives    Скачивать все пакеты, которые
                        могут удовлетворить
                        зависимости для данного
                        пакета (по умолчанию
                        скачивается лишь один).
  --all-versions        Если в репозитории
                        присутствует несколько
                        версий пакета, обработать их
                        все.
  --dest-dir DEST_DIR   Директория, в которую будут
                        помещены скачаные файлы

Если ни одна из опций -b, -s или -d не указана,
то по умолчанию включается -b

urpm-package-cleanup

Find problems in the rpmdb of system and correct them.

The tool can perform the following actions:

  1. Look for situation when multiple versions of the same package are installed; the tool can automatically uninstall all versions except the latest one.
    • There is a separate check for kernel packages; it takes into account running kernel and never tries to uninstall it, and in addition allows to specify number of kernels that should be left in the system.
  2. Look for installed packages that are not available in any configured repository (this is just a wrapper for `urpmq --not-available`).
  3. Look for installed packages that have unmet dependencies.
  4. List "leaf" nodes in the local RPM database. Leaf nodes are RPMs that are not relied upon by any other RPM.

Использование:

urpm-package-cleanup.py [-h] [--qf QF] [--auto] [--version] [--orphans]
                               [--update] [--media media [media ...]]
                               [--excludemedia media [media ...]] [--problems]
                               [--suggests] [--dupes] [--cleandupes]
                               [--noscripts] [--leaves] [--all]
                               [--leaf-regex LEAF_REGEX] [--exclude-devel]
                               [--exclude-bin] [--oldkernels]
                               [--count KERNELCOUNT] [--keepdevel]

optional arguments:
  -h, --help            show this help message and exit
  --qf QF, --queryformat QF
                        Формат вывода.
  --auto                Работать в неинтерактивном
                        режиме
  --version             show program's version number and exit
Осиротевшие пакеты:
  --orphans             Перечислить пакеты,
                        недоступные в настроенных на
                        текущий момент репозиториях
  --update              Ипользовать только источники
                        обновлений. Это означает, что
                        urpmq будет искать и разрешать
                        зависимости только используя
                        источники, помеченные как
                        источники обновлений
                        (например, которые были
                        добавлены при помощи "urpmi.addmedia
                        --update")
  --media media [media ...]
                        Выбрать особые источники
                        вместо того чтобы
                        использовать все доступные
                        по умолчанию источники (или
                        все источники обновлений,
                        если указан флаг --update). В
                        других источниках пакеты
                        искаться не будут.
  --excludemedia media [media ...]
                        Не использовать указанные
                        источники.

Проблемы с зависимостями:
  --problems            Перечислить проблемы с
                        зависимостями в локальной
                        базе RPM
  --suggests            Перечислить список мягких
                        зависимостей установленных
                        пакетов

Дублирующиеся пакеты:
  --dupes               Найти дубликаты в локальной
                        базе RPM
  --cleandupes          Найти дубликаты в локальной
                        базе RPM и удалить более старые
  --noscripts           отключить скриптлеты rpm при
                        очистке дубликатов

Листовые узлы:
  --leaves              Перечислить листовые узлы в
                        локальной базе RPM
  --all                 перечислить все
                        пакеты-листовые узлы, имя
                        которых не подходить под
                        регулярное выражение
  --leaf-regex LEAF_REGEX
                        Считать листовым узлом пакет,
                        имя которого подходит по
                        регулярному выражению
                        (регистронезависимо).
  --exclude-devel       не считать devel пакеты
                        листовыми узлами
  --exclude-bin         не считать пакеты, имеющие
                        файлы в bin директориях,
                        листовыми узлами

Старые ядра:
  --oldkernels          Удалить старые ядра и их devel
                        пакеты.
  --count KERNELCOUNT   Количество пакетов с ядрами,
                        которые надо сохранить в
                        системе (по умолчанию 2)
  --keepdevel           Не удалять kernel-devel пакеты при
                        удалении ядер

urpm-repoclosure

A tool to check dependency closure in the repository.

Usage:

  urpm-repoclosure.pl --hdlist=hdlist.txt
  urpm-repoclosure.pl --hdlist=http://mirror.yandex.ru/mandriva/.../synthesis.hdlist.cz
  urpm-repoclosure.pl --dir=rpms/ --static --file-deps=file-deps.txt
  urpm-repoclosure.pl --list=list.txt --dynamic

OPTIONS:
  -h|-help
      Print this help.

  -v|-version
      Print version information.

  -hdlist <path>
      Path or URL of HDlist (synthesis) to check.

  -d|-dir <path>
      The directory with RPM packages to check.

  -l|-list <path>
      The list of packages to check.

  -file-deps <path>
      Read file-deps to ignore some unresolved
      dependencies.

  -s|-static
      Check statically if all required dependencies are
      satisfied by provided dependencies in the set of
      RPM packages.

  -dynamic
      Install a set of RPM packages to the local chroot
      and check if extra packages were installed.

  -r|-check-release
      Check installation media (DVD).

  -sign|-check-signature
      Validate package signatures.

  -noclean
      Do not clean urpmi cache.

  -root <path>
      Where to install packages.
      Default:
          /tmp/...

EXIT CODES:
      0 - Suceess. The tool has run without any errors
      non-zero - Failed or the tool has run with errors. In particular:
      1 - Failed to run the tool
      2 - Discovered dependency problems

urpm-repodiff

Инструмент для сравнения наборов репозиториев. Берет на вход 2 или более репозиториев и возвращает список пакетов, которые были добавленны, удаленны или изменили версию.

Использование:

urpm-repodiff.py [-h] --old OLD_REPO [OLD_REPO ...] --new NEW_REPO
                        [NEW_REPO ...] [--size] [--simple] [--quiet] [--html]
                        [--output OUTPUT_FILE]



optional arguments:
  -h, --help            show this help message and exit
  --old OLD_REPO [OLD_REPO ...], -o OLD_REPO [OLD_REPO ...]
                        URL или пути к старым
                        репозиториям
  --new NEW_REPO [NEW_REPO ...], -n NEW_REPO [NEW_REPO ...]
                        URL или пути к новым
                        репозиториям
  --size, -s            Показывать различия в
                        размерах пакетов.
  --simple              Упрощенный формат вывода.
  --quiet, -q           Не показывать служебные
                        сообщения.
  --html                Вывод в формате HTML. Если --output
                        не указан, то HTML файл будет
                        создан в текущей директории.
                        Опции --size и --simple будут
                        игнорироваться.
  --output OUTPUT_FILE, -out OUTPUT_FILE
                        Перенаправить вывод в "OUTPUT_FILE"

urpm-repograph

Generate a full package dependency graph for repository in dot format

Usage:

urpm-repograph.py [-h] [--cross CROSS_REPO [CROSS_REPO ...]] [--quiet]
                         [--verbose] [--requires] [--suggests] [--file]
                         [--unprovided]
                         [--requires-recursive PKG | --whatrequires PKG]
                         [--loops | --alternatives | --broken] [--different]
                         [--output OUTPUT_FILE | --nograph]
                         REPOSITORY

positional arguments:
  REPOSITORY            URL or local PATH to repository.

optional arguments:
  -h, --help            show this help message and exit
  --cross CROSS_REPO [CROSS_REPO ...], -c CROSS_REPO [CROSS_REPO ...]
                        Search for cross-repository references in
                        CROSS_REPO(s) repositories.
  --quiet, -q           Hide service messages. (About progress status etc.)
  --verbose, -v         Show warnings. (About unprovided packages etc.)
  --requires, -r        Process "requires" package dependencies. Used by
                        default.
  --suggests, -s        Process "suggests" package dependencies. If used
                        without --requires then only suggests dependencies are
                        processed.
  --file, -f            Process file dependencies.
  --unprovided, -u      Show unprovided dependencies.
  --requires-recursive PKG
                        Search for packages, which are required by package PKG
                        (PKG is a file name or package name)
  --whatrequires PKG    Search for packages, which requires package PKG (PKG
                        is a file name or package name)
  --loops, -l           Search for all simple loops of cycled dependecies.
  --alternatives, -a    Search for alternative packages providing the same
                        feature.
  --broken, -b          Search for all broken packages and anything beetween
                        them
  --different, -d       Output each loop or each alternative in different
                        file. Ignored if --loops or --alternatives options are
                        not present. OUTPUT_FILE (if present) is tracted as
                        folder name for new files in that case.
  --output OUTPUT_FILE, -o OUTPUT_FILE
                        Change graph output to "OUTPUT_FILE". STDIN by
                        default.
  --nograph, -n         Do not output graph. Tool will not start working if
                        --quiet, --nograph are present and --verbose is not.
                        (If there is nothing to output - then nothing has to
                        be done.)

urpm-repomanage

Manage a directory of rpm packages and report newest or oldest packages

Usage:

urpm-repomanage.py [-h] [-o | -n] [-r] [-s] [-k KEEP] [-c] [-q | -V]
                          path

manage a directory of rpm packages and report newest or oldest packages

positional arguments:
  path                  path to directory with rpm packages

optional arguments:
  -h, --help            show this help message and exit
  -o, --old             print the older packages
  -n, --new             print the newest packages (this is the default
                        behavior)
  -r, --remove-old      remove older packages
  -s, --space           space separated output, not newline
  -k KEEP, --keep KEEP  number of newest packages to keep - defaults to 1
  -c, --nocheck         do not check package payload signatures/digests
  -q, --quiet           be completely quiet
  -V, --verbose         be verbose - say which packages are decided to be old
                        and why (this info is dumped to STDERR)

urpm-reposync

Synchronize installed package base with remote repository

Usage:

urpm-reposync.py [-h]
                        [--include-media INCLUDE_MEDIA [INCLUDE_MEDIA ...]]
                        [--exclude-media EXCLUDE_MEDIA [EXCLUDE_MEDIA ...]]
                        [-x EXCLUDE_PACKAGES [EXCLUDE_PACKAGES ...]] [-v] [-q]
                        [-a]

optional arguments:
  -h, --help            show this help message and exit
  --include-media INCLUDE_MEDIA [INCLUDE_MEDIA ...], --media INCLUDE_MEDIA [INCLUDE_MEDIA ...]
                        Use only selected URPM media
  --exclude-media EXCLUDE_MEDIA [EXCLUDE_MEDIA ...]
                        Do not use selected URPM media
  -x EXCLUDE_PACKAGES [EXCLUDE_PACKAGES ...], --exclude-packages EXCLUDE_PACKAGES [EXCLUDE_PACKAGES ...]
                        Exclude package(s) by regex
  -v, --verbose         Verbose (print additional info)
  -q, --quiet           Quiet operation. Senseless without --auto.
  -a, --auto            Ask no questions, just do it!