当前位置: 首页 > 工具软件 > color-utils > 使用案例 >

yum-utils

祝宾白
2023-12-01
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


2. package-cleanup: 清除重复包、孤儿包、及明显的包依赖问题
   GENERAL OPTIONS:  
    -c  <config file >:
        使用-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 <file>:
          指定RSS生成的文件名,默认是repo-rss.xml
    -l <link> :
         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



10. 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 : 尽可能少的输出

11.  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



    
      
12.  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   :
            
            


13.  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
     
    

     






 类似资料: