yum-utils工具集详解

本文介绍了Yum-utils中的各种实用工具,如debuginfo-install用于安装调试信息,package-cleanup用于清理冗余和问题包,reposync用于同步远程仓库等。这些工具在Linux包管理中扮演着关键角色。
摘要由CSDN通过智能技术生成

Yum-utils 剖析
功能简介:
管理repository及扩展包的工具 (主要是针对repository)
准备:
1.安装createrepo ,可以通过如下命令实现
yum install createrepo
2. rpm包放在/media

命令简介
一、 debuginfo-install :
安装debuginfo 包及其依赖
选项:
-h, --help
-t, --tolerant :
允许有错误
-C :
从cache 中运行,且不更新cache
-c [config file ] :
配置文件位置
-R [minutes] :
命令行等待的最长时间
-d [debug level] :
debugging output level
–showduplicates :
show duplicates, in repos, in list/search commands 显示重复
-e [error level] :
error output level
-q, --quiet :
quiet operation
-v, --verbose :
verbose operation (详细)
-y : answer yes for all questions
–version : show Yum version and exit
–installroot=[path]
set install root
–enablerepo=[repo]
enable one or more repositories (wildcards allowed)
–disablerepo=[repo]
disable one or more repositories (wildcards allowed)
-x [package], --exclude=[package]
exclude package(s) by name or glob
–disableexcludes=[repo]
disable exclude from main, for a repo or for everything
–obsoletes :
enable obsoletes processing during updates
–noplugins :
disable Yum plugins (插件)
–nogpgcheck :
disable gpg signature checking
–disableplugin=[plugin]
disable plugins by name
–enableplugin=[plugin]
enable plugins by name
–skip-broken :
skip packages with depsolving problems
–color=COLOR :
control whether color is used

  1. package-cleanup: 清除重复包、孤儿包、及明显的包依赖问题
    GENERAL OPTIONS:
    -c :
    使用-c 后面指定的配置文件,默认是 /et/yum.conf
    -h : 帮助
    -q , --quiet :
    Print out nothing unecessary
    -v , --version :
    报告程序版本同时退出
    -y :
    响应任何请求
    –leaves :
    列出local RPM database 中的叶子节点。即没有软件包依赖叶节点。
    –orphans:
    列出从当前软件仓库库中无法安装的包
    –oldkernels:
    删除老的 kernel 及kernel-devel 包
    –problems :
    列出local RPM database 中的赖问题
    –dupes :
    扫描local RPM database 中重复的包
    –cleandupes :
    扫描本地rpm数据库中重复的包并清除老版本的rpm包

leaves options :
–all:列出所有的节点,包括不是本库中的
–leaf-regex :
指定某rpm包为叶子节点
–exclude-bin:
除了在bin 目录中出现的包,其他的包都列出来

oldkernels options:
–count :
保持对系统内核软件包的数量,默认为2
–keepdevel :
删除内核时不删除kernel-devel

例子:

  1. 列出所有存在问题的依赖
    package-cleanup --problems
  2. 列出不属于任何repository的包
    package-cleanup --orphans
  3. 删除旧版本的kernel ,并保存3个包,保留kernel-devel
    package-cleanup --oldkernels --count=3 --keepdevel
    4.列出在bin目录下没有文件且以 perl 或者 python开头的叶子节点包
    package-cleanup --leaves --exclude-bin --leaf-regex=“^(perl)|(python)”

结果为:
#package-cleanup --leaves --exclude-bin --leaf-regex=“^(perl)|(python)”
Loaded plugins: fastestmirror
perl-Crypt-SSLeay-0.57-16.el6.x86_64
perl-XML-Dumper-0.81-6.el6.noarch
perl-XML-Grove-0.46alpha-40.el6.noarch
perl-core-5.10.1-115.el6.x86_64

三、repo-graph: 以点格式输出一个完整的软件包依赖关系列表
格式:
repo-graph [options]
options:
–repoid=REPOID :
指定使用哪个软件仓库
-c CONFIFILE :
config file location

四、 repo-rss : 一个RSS feed 生成一个或多个资料库
格式:
repo-rss [options] repoid1 repoid2
选项:
-h :
-f :
指定RSS生成的文件名,默认是repo-rss.xml
-l :
RSS feed 的URL, 默认是 http://yum.baseurl.org/
-t TITLE :
指定RSS feed的标题, 默认是RSS “Repository - Recent Packages".
-d DESCRIPTION: :
Default is “Most recent packages in Repositories”.
-r DAYS :
指定的天数,默认是3
–tempcache :
使用yum缓存启用一个临时目录(由非root用户默认启用)
-g :
Generate one feed per package group
-a ARCHES :
arches to use – can be listed more than once
-c CONFIG :
config file

五、 repoclosure : 读取元数据资料库,检查依赖关系,并显示未解决的依赖列表
options:
-h:
-c CONFIG, --config=CONFIG
config file to use (defaults to /etc/yum.conf)
-a ARCH, --arch=ARCH check packages of the given archs, can be specified
multiple times (default: current arch)
–basearch=BASEARCH :
set the basearch for yum to run as
-b, --builddeps :
check build dependencies only (needs source repos enabled)
-r REPOID, --repoid=REPOID :
specify repo ids to query, can be specified multiple
times (default is all enabled)
-t, --tempcache :
Use a temp dir for storing/accessing yum-cache
-q, --quiet :
quiet (no output to stderr)
-n, --newest :
check only the newest packages in the repos
–repofrompath=REPOFROMPATH
specify repoid & paths of additional repositories -
unique repoid and complete path required, can be
specified multiple times.
Example.
–repofrompath=myrepo,/path/to/repo
-p PKG, --pkg=PKG :
check closure for this package only
-g GROUP, --group=GROUP
check closure for packages in this group only
六、repodiff : 比较一个或多个资料库的差异并返回一个显示增加,删除,改变的包的列表
格式:
repodiff --old=old_repo_baseurl --new=new_repo_baseurl
options:
–version :
show program’s version number and exit
-h, --help show this help message and exit
-n NEW, --new=NEW :
new baseurl[s] for repos
-o OLD, --old=OLD :
old baseurl[s] for repos
-q, --quiet :
-a ARCHLIST, --archlist=ARCHLIST
In addition to src.rpms, any arch you want to include
-s, --size :
Output size changes for any new->old packages
–simple :
output simple format

七、 repomanage :
manage a directory of rpm packages, returns lists of newest or oldest packages in a directory for easy piping to xargs or similar programs.
管理rpm包的目录,在目录返回最新或最古老的软件包列表

格式:
repomanage [–old] [–new] path
options:
-h, --help
-o, --old :
print the older packages
-n, --new :
print the newest packages
-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

八、 repoquery : 查询yum库,并得到他们的额外信息
格式:
repoquery [options] <item…>
repoquery -a [options]

CENERAL OPTION

--querytags : 列出有效的queryformat标签并退出
-v :报告程序版本并推出
--repoid=<repo>
-q: 为了兼容,不做任何事
--quiet :错误输出没有警告
--verbose :输出详细资料
-C:从缓存中yum
--tempcache :使用私有的cache代替main YUM cache
-c <config file>, --config=<config file>  : 指定配置文件,默认是/etc/yum.conf

Package Query options:

-i, --info:  as  rpm -qi
-l , --list : 列出包中的文件
-R, --requires :  
      列出包的依赖
--resolve  :
      When used with --requires, resolve capabilities to originating packages.
--provides :
    list capabilities package provides  
    列出该rpm包提供了哪些包
--obsoletes :
    list capabilities obsoleted by package  (过时包)
    列出该rpm包废弃了哪些包
--conflicts :
    list capabilities conflicting with package
    列出哪些包和该包冲突了
--changelog :
    list package changlog
    列出包的changelog
--location :
    show a location where the package could be downloaded from.
    显示包的下载地址
-s, --source :
    show package source RPM name.
    显示包的source  rpm包名
--groupmember  PACKAGE :
    list the repodata groups  (yumgroups.xml)  belongs  to (if any)
--nvr :
    use  name-version-release output format (rpm query default)
以name-version-release 形式输出包名
--nevra :
    use  name-epoch:version-release.architecture  output format (default)
    以 name-epoch:version-release.architecture 形式输出包名
--envra :
    use epoch:name-version-release.architecture output format (easier to parse than nevra)
    以 epoch:name-version-release.architecture 形式输出包名
--qf=FORMAT, --queryformat=FORMAT:
    specify custom output format for queries
    以某一特定形式输出

PACKAGE SELECTION OPTIONS:
-a :
query all availabel packages
-f, --file FILE :
query package owning FILE.
–whatobsoletes CAPABILITY:
query all packages that obsolete CAPABLITY
–whatconflicts CAPABILITY
query all packages that confict with CAPABILITY (冲突)
–whatprovides CAPABILITY
query all packages that provied CAPABILITY
–whatrequires CAPABILITY :
query all packages that require CAPABILITY
–alldeps:
when used with –whatrequires, use both automatic and manual dependencies for the query
–archlist=ARCH1 [,ARCH2…]
特定架构的包
–pkgnarrow=WHAT
limit what packages are considered for the query .Valid values for WHAT are: installed, available, recent, updates, extras, all and repository (default).
–show-dupes
query all versions of package. By default only newest packages are considered.

GROUP QUERY OPTIONS;
-i, --info:
show general information about group
-l, --list:
list packages belonging to (required by) group

--grouppkgs=WHAT:
    Specify what type of packages are queried from groups. Valid values for WHAT are all, mandatory, default, optional

--requires:
    list groups required by group

GROUP SELECTION OPTIONS:
-a : query all available groups
-g: query groups instead of packages
例子:

  1. 列出所有包名中 有perl 的包
    repoquery ‘perl

  2. 列出所有依赖openssl 的包
    repoquery --whatrequires --alldeps openssl

  3. List all package names and the repository they come from, nicely formatted:
    repoquery -a --qf “%-20{repoid} %{name}”

  4. List name and summary of all available updates (if any), nicely formatted:
    repoquery -a --pkgnarrow=updates --qf “%{name}:\n%{summary}\n”

  5. List optional packages in base group:
    repoquery -g --grouppkgs=optional -l base

  6. List build requirements from ’anaconda’ source rpm:
    repoquery --requires anaconda.src

  7. List packages which BuildRequire gail-devel
    repoquery --archlist=src --whatrequires gail- devel

九、reposync: 同步远程yum仓库,使用yum来获取软件包到本地目录
格式:
reposync [options]
options:
-h, --help
-c CONFIG, --config=CONFIG:
config file to use (defaults to /etc/yum.conf)
-a ARCH, --arch=ARCH :
act as if running the specified arch (default: current arch, note: does not override $releasever)
–source:
also download .src.rpm files
-r REPOID, --repoid=REPOID
specify repo ids to query , can be specified multiple times (default is all enabled)
-t, --tempcache
Use a temp dir for storing/accessing yum-cache.
-p DESTDIR, --download_path=DESTDIR
path to download packages to : defaults to current directory
-g, --gpgcheck
remove packages that fail GPG signature checking after downloading .
-u, --urls :
just list urls of what would be downloaded, don’t download.
-n, --newest-only:
Download only newest packages per-repo
-q, --quiet
output as little information as possible .
例子:
1.Sync all packages from the ’updates’ repo to the current directory:
reposync --repoid=updates
2.Sync only the newest packages from the ’updates’ repo to the current directory:
reposync -n --repoid=updates
3. Sync packages from the ’updates’ and ’extras’ repos to the current directory:
reposync --repoid=updates --repoid=extras
4.Sync all packages from the ’updates’ repo to the repos directory:
reposync -p repos --repoid=updates

  1. repotrack: 跟踪包及其依赖,并将该包及其依赖下载
    -r REPOID, --repoid=REPOID : 查询指定的repo id ,可以被指定多次
    -a ARCH, --arch=ARCH 修改包的arch
    -t, --tempcache :用一个临时的目录存储yum-cache
    -p DESTDIR , --download_path=DESTDIR :包的下载到的地址
    -u, --urls : 列出下载包的url,但是并不下载
    -n, --newest :下载并将原来的包换成最新的包
    -q, --quiet : 尽可能少的输出

  2. yum-builddep :安装某个包的依赖

    yum-builddep [options] package1 [package2] [package…]
    options:
    -t, --tolerant :允许有错误
    -C:
    -c [config file ] config file location
    -R [minutes] 命令行等待最长时间
    -d [debug level] debugging output level
    –showduplicates : 显示重复
    -e [error level] : error output level
    -q, --quiet quite operation
    -v, --verbose : 详细的操作
    -y : answer yes for all questions
    –version : show yum version and exit
    –installroot-[path] : set install root
    –enablerepo=[repo]
    enable one or more repositories (wildcards allowed)
    –disablerepo=[repo]
    disabel one or more repositories (wildcards allowed)
    -x [package], --exclude=[package]
    exclude package(s)by name or glob
    –disableexcludes=[repo]
    disable exclude from main, for a repo or for everything
    –obsoletes :
    enable obsoletes processing during updates
    –noplugins :
    disable plugins by name
    –nogpgcheck :
    disable gpg signature checking
    –disableplugin=[plugin]
    disable plugins by name
    –enableplugin=[plugin]
    enable plugins by name
    –skip-broken :
    skip packages with depsolving problems
    –color=COLOR
    control whether color is used
    例子:
    下载并安装kernel 需要的所有的RPM包
    yum-builddep kernel

  3. yum-complete-transaction : 发现不完整包或者因yum中止而导致的包不完整,把其补充完整
    格式:
    yum-complete-transaction [options]
    CENERAL OPTIONS:
    –cleanup-only :
    do not complete the transaction just clean up
    清除不完全的包

-t , --tolerant   :
        be tolerant of errors
-C     :  run entirely from cache , don‘t update cache
-c [config file ]  :
        config file location
-R [minutes]:
        maximum command wait time
-d [debug level]:
        debugging output level
--showduplicates   :
  1. yumdownloader : 从rpm仓库中下载rpm源码包
    格式:
    yumdownloader [options] package1 [package2…]
    GENERAL OPTIONS :
    -h, --help
    –destdir DIR
    specify a destination directory for the download. Defaults to the current directory
    指定下载程序rpm包存放目录
    –urls :
    Instead of downloading RPMS, list the URLs that would be downloaded .
    列出要下载包的url
--resolve:
    when dowloading RPMs, resolve dependencies and also download the required packages.
    下载rpm 包时解决依赖问题,并下载相关的包
--source :
    下载源码包

例子:

  1. 下载kernel RPM 包到 /var/tmp
    yumdownloader --destdir /var/tmp kernel
  2. 列出 kernel 和 kernel-smp RPM 包的url
    yumdownloader --urls kernel kernel-smp

————————————————

                        版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/xiaoxiao_22/article/details/7044583

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

太极淘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值