zoukankan      html  css  js  c++  java
  • N天学习一个linux命令之rpm

    用途

    RPM是Redhat Package Manager三个单词首字母缩写,是类redhat linux系统的包管理器,用它可以安装包(二进制/源码),升级包,删除包,查询包信息等功能。RPM软件包包含了程序文件列表以及跟包相关的元信息,通过使用包的元信息来对包进行管理。

    用法

    查询

    rpm {-q|--query} [select-options] [query-options]
    

    验证

    rpm {-V|--verify} [select-options] [verify-options]
    
    rpm --import PUBKEY ...
    
    rpm {-K|--checksig} [--nosignature] [--nodigest]
        PACKAGE_FILE ...
    

    安装

    rpm {-i|--install} [install-options] PACKAGE_FILE ...
    

    更新

    rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...
    
    rpm {-F|--freshen} [install-options] PACKAGE_FILE ...
    

    删除

    rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts]
    [--notriggers] [--test] PACKAGE_NAME ...
    

    其它

    rpm {--initdb|--rebuilddb}
    
    rpm {--addsign|--resign} PACKAGE_FILE ...
    
    rpm {--querytags|--showrc}
    
    rpm {--setperms|--setugids} PACKAGE_NAME ...
    

    选项备注

    选择选项(select-options)

    [PACKAGE_NAME] [-a,--all] [-f,--file FILE]
    [-g,--group GROUP] {-p,--package PACKAGE_FILE]
    [--fileid ID] [--hdrid SHA1] [--pkgid MD5] [--tid TID]
    [--querybynumber HDRNUM] [--triggeredby PACKAGE_NAME]
    [--whatprovides CAPABILITY] [--whatrequires CAPABILITY]
    

    查询选项(query-options)

    [--changelog] [-c,--configfiles] [-d,--docfiles] [--dump]
    [--filesbypkg] [-i,--info] [--last] [-l,--list]
    [--provides] [--qf,--queryformat QUERYFMT]
    [-R,--requires] [--obsoletes] [--scripts] [-s,--state]
    [--triggers,--triggerscripts]
    

    验证选项(verify-options)

    [--nodeps] [--nofiles] [--noscripts]
    [--nodigest] [--nosignature]
    [--nolinkto] [--nofiledigest] [--nosize] [--nouser]
    [--nogroup] [--nomtime] [--nomode] [--nordev]
    [--nocaps]
    

    安装选项(install-options)

    [--aid] [--allfiles] [--badreloc] [--excludepath OLDPATH]
    [--excludedocs] [--force] [-h,--hash]
    [--ignoresize] [--ignorearch] [--ignoreos]
    [--includedocs] [--justdb] [--nodeps]
    [--nodigest] [--nosignature] [--nosuggest]
    [--noorder] [--noscripts] [--notriggers]
    [--oldpackage] [--percent] [--prefix NEWPATH]
    [--relocate OLDPATH=NEWPATH]
    [--replacefiles] [--replacepkgs]
    [--test]
    

    常用参数

    通用类

    -?, --help
    输出帮助信息

    --version
    输出程序版本

    --quiet
    尽可能少输出信息,错误信息会输出

    -v
    输出进度信息

    -vv
    输出调试信息

    安装和更新类

    --badreloc
    和--relocate参数配合使用,允许对所有文件设置安装目录

    --excludepath OLDPATH
    不安装文件路径以OLDPATH开头的文件

    --excludedocs
    不安装帮助文档(一般都需要安装帮助文档,否则使用man查不到命令使用信息)

    --force
    强制安装(Same as using --replacepkgs, --replacefiles, and --oldpackage.)

    --nodeps
    不检查依赖

    --oldpackage
    允许更新到老版本

    --prefix NEWPATH
    设置安装目录(只针对允许更改的rpm包,可以通过查看包信息了解)

    --relocate OLDPATH=NEWPATH
    设置安装目录(只针对允许更改的rpm包,可以通过查看包信息了解)

    --replacefiles
    强制安装,即使会替换其它包的文件

    --replacepkgs
    强制安装,即使包已经安装过了

    --test
    仅调试(不安装包),检查是否有冲突

    卸载类

    --allmatches
    删除匹配的所有包。没有设置这个参数,默认匹配多个的情况下会提示错误

    --nodeps
    删除之前不检查依赖关系

    --test
    不删除,仅用于测试,和-vv一起使用可以看到更详细的信息

    包选择类

    -a, --all
    查询所有的安装包

    -f, --file FILE
    查询FILE所属的安装包

    -g, --group GROUP
    查询属于GROUP分组的安装包

    -p, --package PACKAGE_FILE
    对包(未安装)PACKAGE_FILE进行查询,包所在路径可以是本地路径,也可以是http地址,也可以是ftp地址

    包查询类

    --changelog
    显示包更改日志

    -c, --configfiles
    仅列出配置文件,相当于-c -l

    -d, --docfiles
    仅列出文档文件,相当于-d -l

    --dump
    文件列表带详细文件信息,相当于 --dump -l

    --filesbypkg
    显示每个被选中包的所有文件

    -i, --info
    显示包信息

    --last
    按照包安装时间降序排列

    -l, --list
    显示包文件列表

    --provides
    显示包提供的功能

    -R, --requires
    显示包依赖的功能或者库

    --obsoletes
    显示淘汰的包列表

    --scripts
    显示包脚本列表

    -s, --state
    显示包状态信息,状态列表:normal, not installed, or replaced

    --triggers, --triggerscripts
    显示触发脚本列表

    验证类

    --nodeps
    不验证包依赖

    --nodigest
    不验证包或者头摘要

    --nofiles
    不验证包文件的任何属性

    --noscripts
    不执行验证脚本文件

    --nosignature
    不验证包或者头签名

    其它类

    --initdb
    创建rpm数据库(如果已经存在不会覆盖)

    --rebuilddb
    重建rpm数据库

    rpm --showrc
    显示配置文件设置

    --setperms
    设置包中文件列表权限

    --setugids
    设置包中文件列表所有者

    --ftpproxy HOST
    使用的ftp代理

    --ftpport PORT
    使用的ftp端口

    --httpproxy HOST
    使用的http代理

    --httpport PORT
    使用的http端口

    实践

    通用类

    1. 初始化数据库
    rpm --initdb
    
    1. 重建数据库
    rpm --rebuilddb
    

    查询类

    1. 查询所有已安装的包
    [root@vm ~]# rpm -qa
    setools-libs-python-3.3.7-4.el6.x86_64
    setup-2.8.14-23.el6.noarch
    libcgroup-0.40.rc1-24.el6_9.x86_64
    basesystem-10.0-4.el6.noarch
    policycoreutils-python-2.0.83-30.1.el6_8.x86_64
    kernel-firmware-2.6.32-696.el6.noarch
    mailx-12.4-8.el6_6.x86_64
    lynx-2.8.6-27.el6.x86_64
    ...
    
    1. 判断curl包是否已安装
    [root@vm ~]# rpm -q curl
    curl-7.19.7-52.el6.x86_64
    
    [root@vm ~]# rpm -qa | grep curl
    python-pycurl-7.19.0-9.el6.x86_64
    libcurl-7.19.7-52.el6.x86_64
    curl-7.19.7-52.el6.x86_64
    
    1. 查询已安装包Python包信息
    [root@vm ~]# rpm -qi python
    Name        : python                       Relocations: (not relocatable)
    Version     : 2.6.6                             Vendor: CentOS
    Release     : 66.el6_8                      Build Date: Thu 18 Aug 2016 11:29:19 PM CST
    Install Date: Mon 11 Dec 2017 11:38:32 AM CST      Build Host: worker1.bsys.centos.org
    Group       : Development/Languages         Source RPM: python-2.6.6-66.el6_8.src.rpm
    Size        : 79603                            License: Python
    Signature   : RSA/SHA1, Fri 19 Aug 2016 01:21:25 AM CST, Key ID 0946fca2c105b9de
    Packager    : CentOS BuildSystem <http://bugs.centos.org>
    URL         : http://www.python.org/
    Summary     : An interpreted, interactive, object-oriented programming language
    Description :
    Python is an interpreted, interactive, object-oriented programming
    language often compared to Tcl, Perl, Scheme or Java. Python includes
    modules, classes, exceptions, very high level dynamic data types and
    dynamic typing. Python supports interfaces to many system calls and
    libraries, as well as to various windowing systems (X11, Motif, Tk,
    Mac and MFC).
    
    1. 查询已安装包python文件列表
    [root@vm ~]# rpm -ql python
    /usr/bin/pydoc
    /usr/bin/python
    /usr/bin/python2
    /usr/bin/python2.6
    /usr/share/doc/python-2.6.6
    /usr/share/doc/python-2.6.6/LICENSE
    /usr/share/doc/python-2.6.6/README
    /usr/share/man/man1/python.1.gz
    
    1. 查询未安装包lynx-2.8.6-27.el6.x86_64.rpm包信息和待安装的文件列表
    [root@vm ~]# rpm -qpil lynx-2.8.6-27.el6.x86_64.rpm 
    Name        : lynx                         Relocations: (not relocatable)
    Version     : 2.8.6                             Vendor: CentOS
    Release     : 27.el6                        Build Date: Wed 25 Aug 2010 11:18:41 PM CST
    Install Date: (not installed)               Build Host: c6b3.bsys.dev.centos.org
    Group       : Applications/Internet         Source RPM: lynx-2.8.6-27.el6.src.rpm
    Size        : 4934856                          License: GPLv2
    Signature   : RSA/8, Sun 03 Jul 2011 12:43:46 PM CST, Key ID 0946fca2c105b9de
    Packager    : CentOS BuildSystem <http://bugs.centos.org>
    URL         : http://lynx.isc.org/
    Summary     : A text-based Web browser
    Description :
    Lynx is a text-based Web browser. Lynx does not display any images,
    but it does support frames, tables, and most other HTML tags. One
    advantage Lynx has over graphical browsers is speed; Lynx starts and
    exits quickly and swiftly displays web pages.
    /etc/lynx-site.cfg
    /etc/lynx.cfg
    /etc/lynx.lss
    /usr/bin/lynx
    /usr/share/doc/lynx-2.8.6
    /usr/share/doc/lynx-2.8.6/INSTALLATION
    /usr/share/doc/lynx-2.8.6/README
    ...
    

    安装,更新,卸载类

    1. 卸载lynx包
    [root@vm ~]# rpm -ev lynx
    
    1. 安装lynx包
    [root@vm ~]# rpm -ivh lynx-2.8.6-27.el6.x86_64.rpm 
    Preparing...                ########################################### [100%]
       1:lynx                   ########################################### [100%]
    
    1. 更新lynx包
    [root@vm ~]# rpm -Uvh lynx-2.8.6-27.el6.x86_64.rpm 
    Preparing...                ########################################### [100%]
        package lynx-2.8.6-27.el6.x86_64 is already installed
    

    参考资料

    【1】man rpm
    【2】Linux rpm 命令参数使用详解[介绍和应用]
    http://www.cnblogs.com/xiaochaohuashengmi/archive/2011/10/08/2203153.html
    【3】rpm 官方文档
    http://rpm.org/documentation.html

  • 相关阅读:
    map迭代器
    线段树——校门外的树
    并查集——C
    并查集
    数论—— LCM
    【动态规划】合唱队形
    线段树——D
    线段树——E
    逆元,exgcd,欧拉定理,费马小定理
    待学知识点
  • 原文地址:https://www.cnblogs.com/wadeyu/p/8583832.html
Copyright © 2011-2022 走看看