Материал из Rosalab Wiki
Версия от 14:48, 21 декабря 2011; D uragan (обсуждение | вклад) (urpm-package-cleanup: + *media options for package-cleanup)

Перейти к: навигация, поиск

Urpm-tools - набор утилит, расширяющих и дополняющих функциональность urpmi, urpmq, urpmf и urpme.

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

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

В первую версию пакета вошли следующие инструменты:

Tool Description
urpm-downloader скачивание пакета вместе со всеми зависимостями
urpm-package-cleanup чистка установленных пакетов
urpm-repoclosure проверка замкнутости репозитория по зависимостям
urpm-repodiff diff двух репозиториев
urpm-repomanage анализ набора RPM-файлов и выделение самых новых и устаревших версий каждого пакета

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

Tool Description
urpm-build-distrib создание дистрибутива на основе нескольких репозиториев
urpm-debuginfo-install установка пакетов debuginfo, необходимых для отладки программ из заданного пакета
urpm-distrosync синхронизация локального набора пакетов с репозиторием
urpm-repograph построение графа зависимостей пакетов в репозитории

Некторые возможности, предоставляемые утилитами 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


A tool to check dependency closure in the repository.


  urpm-repoclosure.pl [-h] [-list=PACKAGES_LIST] [--dir=PACKAGES_DIR] [--hdlist=HDLIST]
                      [--static] [--check-release] [--check-signature] [--media MEDIA]
                      [--noclean] [--root ROOT]


    urpm-repoclosure.pl --hdlist=hdlist.txt --static
    urpm-repoclosure.pl --list=list.txt --media=local
    urpm-repoclosure.pl --dir=rpms/ --static
    urpm-repoclosure.pl --dir=rpms/ --check-release --sign
    urpm-repoclosure.pl --list=list.txt --check-release


      Print help message.

      Print version information.

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

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

  -hdlist <path>
      The HDlist to check.

      Check statically if all required dependencies are
      satisfied by provided dependencies in the set of
      RPM packages. Should be used with --dir or --hdlist options.

      Check installation media (DVD).
      You can use this option with --dir or --list options.
      If you are using --list option, then it should point
      to a list of package paths.

      Validate package signatures. Should be used
      with --dir option.

  -media <name|dir>
   [ not implemented yet ]
      Use local repository (or directory) instead of the
      default external repository.

      Do not clean urpmi cache.

  -root <path>
      Where to install packages.


A tool for downloading RPMs from Urpmi repositories


urpm-downloader.py [-h] [--urls] [-r] [-s] [--version] [-v] [-q]
                   [--include-media INCLUDE_MEDIA [INCLUDE_MEDIA ...]]
                   [--exclude-media EXCLUDE_MEDIA [EXCLUDE_MEDIA ...]]
                   [--exclude-packages EXCLUDE_PACKAGES [EXCLUDE_PACKAGES ...]]
                   [--fail-broken] [--overwrite] [--all-alternatives]
                   packages [packages ...]

positional arguments:
  packages              Package name(s) to download

optional arguments:
  -h, --help            show this help message and exit
  --urls                Instead of downloading RPMs, list the URLs that would
                        be downloaded
  -r, --resolve         When downloading RPMs, resolve dependencies and also
                        download the required packages
  -s, --source          Instead of downloading the binary RPMs, download the
                        source RPMs
  --version             show program's version number and exit
  -v, --verbose         verbose (print additional info)
  -q, --quiet           Quiet operation
                        use only selected media
  --exclude-media EXCLUDE_MEDIA [EXCLUDE_MEDIA ...]
                        do not use selected media
  --exclude-packages EXCLUDE_PACKAGES [EXCLUDE_PACKAGES ...]
                        Exclude package(s) by name or glob
  --fail-broken         When the package with depsolving problems found, do
                        not skip it, but exit.
  --overwrite           If the file already exists, download it again and
                        overwrite the old one.
  --all-alternatives    While resolving dependencies, if alternative packages
                        present, download all of them.


Take 2 or more repositories and return a list of added, removed and changed packages.


urpm-repodiff --old=old_repo_baseurl [--old=old_repo2_baseurl ...] --new=new_repo_baseurl [--new=new_repo2_baseurl ...]


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] [--orphans] [--auto] [--version]
                        [--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
                        Query format to use for output.
  --auto                Use non-interactive mode
  --version             show program's version number and exit

Orphans Options:
  --orphans             List installed packages which are not available from
                        currently configured repositories
  --update              Use only update media. This means that urpmq will
                        search and resolve dependencies only in media marked
                        as containing updates (e.g. which have been created
                        with "urpmi.addmedia --update").
  --media media [media ...]
                        Select specific media to be used, instead of
                        defaulting to all available media (or all update media
                        if --update is used). No rpm will be found in other
  --excludemedia media [media ...]
                        Do not use the specified media.

Dependency Problems Options:
  --problems            List dependency problems in the local RPM database
  --suggests            List missing suggestions of installed packages

Duplicate Package Options:
  --dupes               Scan for duplicates in your rpmdb
  --cleandupes          Scan for duplicates in your rpmdb and remove older
  --noscripts           disable rpm scriptlets from running when cleaning

Leaf Node Options:
  --leaves              List leaf nodes in the local RPM database
  --all                 list all packages leaf nodes that do not match leaf-
  --leaf-regex LEAF_REGEX
                        A package name that matches this regular expression
                        (case insensitively) is a leaf
  --exclude-devel       do not list development packages as leaf nodes
  --exclude-bin         do not list packages with files in a bin dirs as leaf

Old Kernel Options:
  --oldkernels          Remove old kernel and kernel-devel packages
  --count KERNELCOUNT   Number of kernel packages to keep on the system
                        (default 2)
  --keepdevel           Do not remove kernel-devel packages when removing


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


urpm-repomanage.py [-h] [-o] [-n] [-s] [-k KEEP] [-c] path

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
  -s, --space           space separated output, not newline
  -k KEEP, --keep KEEP  newest N packages to keep - defaults to 1
  -c, --nocheck         do not check package payload signatures/digests
  -V, --verbose         be verbose - say which packages are decided to be old
                        and why (this info is dumped to STDERR)