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

Материал из Rosalab Wiki
Перейти к: навигация, поиск
(repomanage - ready to use)
(urpm-repomanage: + verbose option)
Строка 230: Строка 230:
   -k KEEP, --keep KEEP  newest N packages to keep - defaults to 1
   -k KEEP, --keep KEEP  newest N packages to keep - defaults to 1
   -c, --nocheck        do not check package payload signatures/digests
   -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)

Версия 10:43, 21 декабря 2011

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-файла)


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.


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.
  --orphans             List installed packages which are not available from
                        currently configured repositories
  --auto                Use non-interactive mode
  --version             show program's version number and exit

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 asleaf

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)