Urpm-tools — различия между версиями

Материал из Rosalab Wiki
Перейти к: навигация, поиск
(urpm-repodiff)
(urpm-repograph)
Строка 325: Строка 325:
  
 
== urpm-repograph ==
 
== urpm-repograph ==
Generate a full package dependency graph for repository in dot format
+
Инструмент для создания графа зависимостей в формате dot для пакетов из репозитория.
  
Usage:
+
 
 +
Использование:
 
<pre>
 
<pre>
 
urpm-repograph.py [-h] [--cross CROSS_REPO [CROSS_REPO ...]] [--quiet]
 
urpm-repograph.py [-h] [--cross CROSS_REPO [CROSS_REPO ...]] [--quiet]
Строка 336: Строка 337:
 
                         [--output OUTPUT_FILE | --nograph]
 
                         [--output OUTPUT_FILE | --nograph]
 
                         REPOSITORY
 
                         REPOSITORY
 +
 +
  
 
positional arguments:
 
positional arguments:
Строка 343: Строка 346:
 
   -h, --help            show this help message and exit
 
   -h, --help            show this help message and exit
 
   --cross CROSS_REPO [CROSS_REPO ...], -c CROSS_REPO [CROSS_REPO ...]
 
   --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.)
+
                        репозиториями CROSS_REPO
   --verbose, -v        Show warnings. (About unprovided packages etc.)
+
   --quiet, -q          Не показывать служебные
   --requires, -r        Process "requires" package dependencies. Used by
+
                        сообщения. (О прогрессе и т. д.)
                         default.
+
   --verbose, -v        Показывать предупреждения (О
   --suggests, -s        Process "suggests" package dependencies. If used
+
                        зависимостях, не
                         without --requires then only suggests dependencies are
+
                        предоставляемых ни одним
                         processed.
+
                        пакетом из репозитория и т. д.)
   --file, -f            Process file dependencies.
+
   --requires, -r        Обрабатывать "requires" пакетные
   --unprovided, -u      Show unprovided dependencies.
+
                        зависимости. Используется по
 +
                         умолчанию.
 +
   --suggests, -s        Обрабатывать "suggests" пакетные
 +
                        зависимости. Если
 +
                         используется без --requires, то
 +
                         будут обрабатываться только
 +
                        мягкие зависимости.
 +
   --file, -f            Обработка зависимостей по
 +
                        файлам...
 +
   --unprovided, -u      Показать зависимости, не
 +
                        предоставленные ни одним
 +
                        пакетом из репозитория.
 
   --requires-recursive PKG
 
   --requires-recursive PKG
                         Search for packages, which are required by package PKG
+
                         Искать пакеты, которые нужны
                         (PKG is a file name or package name)
+
                         пакету PKG. (PKG - это имя пакета
   --whatrequires PKG    Search for packages, which requires package PKG (PKG
+
                        или файла)
                         is a file name or package name)
+
   --whatrequires PKG    Искать пакеты, которым нужен
   --loops, -l          Search for all simple loops of cycled dependecies.
+
                        пакет PKG. (PKG - это имя пакета
   --alternatives, -a    Search for alternative packages providing the same
+
                         или файла)
                         feature.
+
   --loops, -l          Поиск всех простых циклов в
   --broken, -b          Search for all broken packages and anything beetween
+
                        пакетных зависимостях.
                         them
+
   --alternatives, -a    Поиск альтернативных
   --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
+
   --broken, -b          Искать все пакеты с
                         folder name for new files in that case.
+
                        нарушенными зависимостями и
 +
                         цепочки пакетов между ними
 +
   --different, -d      Выводить каждый цикл или
 +
                         каждую альтернативу в
 +
                        отдельный файл. Игнорируется,
 +
                        если указано --loops или --alternatives.
 +
                         OUTPUT_FILE (если указан) в этом
 +
                        случае рассматривается как
 +
                        имя директории для новых
 +
                         файлов.
 
   --output OUTPUT_FILE, -o OUTPUT_FILE
 
   --output OUTPUT_FILE, -o OUTPUT_FILE
                         Change graph output to "OUTPUT_FILE". STDIN by
+
                         Перенаправить вывод графа в
                         default.
+
                        файл "OUTPUT_FILE". По умолчанию
   --nograph, -n        Do not output graph. Tool will not start working if
+
                         используется STDOUT.
                         --quiet, --nograph are present and --verbose is not.
+
   --nograph, -n        Не выводить граф. Инструмент
                         (If there is nothing to output - then nothing has to
+
                         не будет ничего делать, если
                         be done.)
+
                        включены --quiet и --nograph, а verbose
 +
                         нет. (Если ничего не надо
 +
                         выводить, то и не надо ничего
 +
                        делать.)
 +
 
 
</pre>
 
</pre>
  

Версия 14:02, 19 марта 2012

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

Инструмент для создания графа зависимостей в формате dot для пакетов из репозитория.


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

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 ...]
                        Искать зывисимости между
                        репозиториями в
                        репозиториями CROSS_REPO
  --quiet, -q           Не показывать служебные
                        сообщения. (О прогрессе и т. д.)
  --verbose, -v         Показывать предупреждения (О
                        зависимостях, не
                        предоставляемых ни одним
                        пакетом из репозитория и т. д.)
  --requires, -r        Обрабатывать "requires" пакетные
                        зависимости. Используется по
                        умолчанию.
  --suggests, -s        Обрабатывать "suggests" пакетные
                        зависимости. Если
                        используется без --requires, то
                        будут обрабатываться только
                        мягкие зависимости.
  --file, -f            Обработка зависимостей по
                        файлам...
  --unprovided, -u      Показать зависимости, не
                        предоставленные ни одним
                        пакетом из репозитория.
  --requires-recursive PKG
                        Искать пакеты, которые нужны
                        пакету PKG. (PKG - это имя пакета
                        или файла)
  --whatrequires PKG    Искать пакеты, которым нужен
                        пакет PKG. (PKG - это имя пакета
                        или файла)
  --loops, -l           Поиск всех простых циклов в
                        пакетных зависимостях.
  --alternatives, -a    Поиск альтернативных
                        пакетов, предоставляющих
                        одну и ту же зависимость.
  --broken, -b          Искать все пакеты с
                        нарушенными зависимостями и
                        цепочки пакетов между ними
  --different, -d       Выводить каждый цикл или
                        каждую альтернативу в
                        отдельный файл. Игнорируется,
                        если указано --loops или --alternatives.
                        OUTPUT_FILE (если указан) в этом
                        случае рассматривается как
                        имя директории для новых
                        файлов.
  --output OUTPUT_FILE, -o OUTPUT_FILE
                        Перенаправить вывод графа в
                        файл "OUTPUT_FILE". По умолчанию
                        используется STDOUT.
  --nograph, -n         Не выводить граф. Инструмент
                        не будет ничего делать, если
                        включены --quiet и --nograph, а verbose
                        нет. (Если ничего не надо
                        выводить, то и не надо ничего
                        делать.)

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!