rmp 程 序 包 管 理 介 绍-20160819

rmp 程 序 包 管 理 介 绍

§·学习大纲

※包管理器

rmp常用命令介绍

*安装

*升级:

*卸载:

*查询:

*校验:

*数据库:

rmp使用实例介绍

※包管理器

◎二进制应用程序的组成部分:

二进制文件、库文件、配置文件、帮助文件

◎程序包管理器:

debian:deb文件, dpkg包管理器

redhat: rpm文件, rpm包管理器

rpm: Redhat Package  Manager

RPM P ackage  Manager

rmp常用命令介绍

*安装

◎安装符合FHS标准,程序员把文件放在什么地方都有文件路径存放路径

CentOS系统上使用rpm命令管理程序包:安装、卸载、升级、查询、校验、数据库维护

安装:

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

-v  :  verbose

-vv :

-h  : #显示程序包管理执行进度

  rpm  -ivh  PACKAGE_FILE …[常用的安装命令

rpm   -iinstallv(详细信息)h(显示进度条)  ]安装:

 

*升级:

◎升级:

rpm  {-U|–upgrade}  [install-options]  PACKAGE_FILE…

rpm  {-F|–freshen}  [install-options]  PACKAGE_FILE…

upgrade[有旧版本就升级,没有就安装软件]:安装有旧版程序包,则“升级”

如果不存在旧版程序包,则“安装”

freshen[有旧版本就升级,没有就不安装软件]:安装有旧版程序包,则“升级”

如果不存在旧版程序包,则不执行升级操作

rpm  -Uvh  PACKAGE_FILE …

rpm   -Fvh  PACKAGE_FILE …

–oldpackage:降级[降级

rpm -ivh  –oldpackage  旧版本包名]

–force: 强行升级

*卸载:

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

*查询:

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

[select-options]

-a: 所有包

-f: 查看指定的文件由哪个程序包安装生成

-p  rpmfile:针对尚未安装的程序包文件做查询操作;

–whatprovides CAPABILITY:查询指定的CAPABILITY由哪个包所提供

–whatrequires CAPABILITY:查询指定的CAPABILITY被哪个包所依赖

rpm2cpio 包文件|cpioitv预览包内文件[

查看rpm的包内的文件。

rpm2cpio 包文件|cpio id *.conf”释放包内文件[rpm单个的文件解压出来]

[query-options]

–changelog:查询rpm包的changelog[更新日志]

-c: 查询程序的配置文件

-d: 查询程序的文档

-i: information

-l: 查看指定的程序包安装后生成的所有文件;

–scripts:程序包自带的脚本片断

-R: 查询指定的程序包所依赖的CAPABILITY

–provides: 列出指定程序包所提供的CAPABILITY

◎查询用法:

-qi  PACKAGE, -qfFILE, -qc PACKAGE, -qlPACKAGE, -qdPACKAGE

-qpi  PACKAGE_FILE, -qplPACKAGE_FILE, …

-qa :查询所有的安装包

*校验:

rpm {-V|–verify} [select-options] [verify-options][rpm -V tree 查看文件包哪些属性被修改过。

可以修改帮助文件内容,测试用一用。

查询所有包的校验

rpm -Va

S  file Size differs

M  Mode differs (includes permissions and file type)

5  digest (formerly MD5 sum) differs

D  Device major/minor number mismatch

L  readLink(2) path mismatch

U  User ownership differs

G  Group ownership differs

T  mTimediffers

P  capabilities differ

◎包来源合法性验正及完整性验正:

完整性验正:SHA256

来源合法性验正:RSA

◎公钥加密:

对称加密:加密、解密使用同一密钥;

非对称加密:密钥是成对儿的

public key: 公钥,公开所有人

secret key: 私钥, 不能公开

◎导入所需要公钥:

rpm  -K | checksigrpmfile检查包的完整性和签名

rpm  –import  /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7[R

oot@Centos7 /]# rpm -qa | grep  gpg

gpg-pubkey-f4a80eb5-53a7ff4b

删除  gpg-pubkey-f4a80eb5-53a7ff4b即可删除公钥

CentOS 7发行版光盘提供:RPM-GPG-KEY-CentOS-7

rpm  -qa  gpg-pubkey*

*数据库:

◎数据库重建:

/var/lib/rpm

rpm  {–initdb | –rebuilddb}

initdb: 初始化

如果事先不存在数据库,则新建之

否则,不执行任何操作

rebuilddb:重建

无论当前存在与否,直接重新创建数据库

rmp使用实例介绍

安装tree命令最新版,下载后校验数据包的完整性,安装前测试安装,看看需要安装后有哪些文件,该程序包依赖哪些软件包?(主要在于熟悉软件包的命令)

解:

1.我们在系统软件光盘中查找 tree。

[root@Centos7 Packages]# ls | grep "^tree"
tree-1.6.0-10.el7.x86_64.rpm
[root@Centos7 Packages]# pwd
/run/media/root/CentOS 7 x86_64/Packages
[root@Centos7 Packages]#

 

2.需要校验文件包,我们需要导入公钥。

[root@Centos7 Packages]# rpm -K tree-1.6.0-10.el7.x86_64.rpm #检测包的完整性
tree-1.6.0-10.el7.x86_64.rpm: RSA sha1 ((MD5) PGP) md5 NOT OK (MISSING KEYS: (MD5) PGP#f4a80eb5) 
[root@Centos7 Packages]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #导入公钥
[root@Centos7 Packages]# rpm -K tree-1.6.0-10.el7.x86_64.rpm 
tree-1.6.0-10.el7.x86_64.rpm: rsa sha1 (md5) pgp md5 OK
[root@Centos7 Packages]#

 

[root@Centos7 Packages]# rpm -qi gpg-pubkey-f4a80eb5-53a7ff4b  #查看公钥信息
Name        : gpg-pubkey
Version     : f4a80eb5
Release     : 53a7ff4b
Architecture: (none)
Install Date: Fri 19 Aug 2016 05:05:56 PM CST
Group       : Public Keys
Size        : 0
License     : pubkey
Signature   : (none)
Source RPM  : (none)
Build Date  : Mon 23 Jun 2014 06:19:55 PM CST
Build Host  : localhost
Relocations : (not relocatable)
Packager    : CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>
Summary     : gpg(CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>)
Description :
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: rpm-4.11.3 (NSS-3)
 
mQINBFOn/0sBEADLDyZ+DQHkcTHDQSE0a0B2iYAEXwpPvs67cJ4tmhe/iMOyVMh9
Yw/vBIF8scm6T/vPN5fopsKiW9UsAhGKg0epC6y5ed+NAUHTEa6pSOdo7CyFDwtn
4HF61Esyb4gzPT6QiSr0zvdTtgYBRZjAEPFVu3Dio0oZ5UQZ7fzdZfeixMQ8VMTQ
4y4x5vik9B+cqmGiq9AW71ixlDYVWasgR093fXiD9NLT4DTtK+KLGYNjJ8eMRqfZ
Ws7g7C+9aEGHfsGZ/SxLOumx/GfiTloal0dnq8TC7XQ/JuNdB9qjoXzRF+faDUsj
WuvNSQEqUXW1dzJjBvroEvgTdfCJfRpIgOrc256qvDMp1SxchMFltPlo5mbSMKu1
x1p4UkAzx543meMlRXOgx2/hnBm6H6L0FsSyDS6P224yF+30eeODD4Ju4BCyQ0jO
IpUxmUnApo/m0eRelI6TRl7jK6aGqSYUNhFBuFxSPKgKYBpFhVzRM63Jsvib82rY
438q3sIOUdxZY6pvMOWRkdUVoz7WBExTdx5NtGX4kdW5QtcQHM+2kht6sBnJsvcB
JYcYIwAUeA5vdRfwLKuZn6SgAUKdgeOtuf+cPR3/E68LZr784SlokiHLtQkfk98j
NXm6fJjXwJvwiM2IiFyg8aUwEEDX5U+QOCA0wYrgUQ/h8iathvBJKSc9jQARAQAB
tEJDZW50T1MtNyBLZXkgKENlbnRPUyA3IE9mZmljaWFsIFNpZ25pbmcgS2V5KSA8
c2VjdXJpdHlAY2VudG9zLm9yZz6JAjUEEwECAB8FAlOn/0sCGwMGCwkIBwMCBBUC
CAMDFgIBAh4BAheAAAoJECTGqKf0qA61TN0P/2730Th8cM+d1pEON7n0F1YiyxqG
QzwpC2Fhr2UIsXpi/lWTXIG6AlRvrajjFhw9HktYjlF4oMG032SnI0XPdmrN29lL
F+ee1ANdyvtkw4mMu2yQweVxU7Ku4oATPBvWRv+6pCQPTOMe5xPG0ZPjPGNiJ0xw
4Ns+f5Q6Gqm927oHXpylUQEmuHKsCp3dK/kZaxJOXsmq6syY1gbrLj2Anq0iWWP4
Tq8WMktUrTcc+zQ2pFR7ovEihK0Rvhmk6/N4+4JwAGijfhejxwNX8T6PCuYs5Jiv
hQvsI9FdIIlTP4XhFZ4N9ndnEwA4AH7tNBsmB3HEbLqUSmu2Rr8hGiT2Plc4Y9AO
aliW1kOMsZFYrX39krfRk2n2NXvieQJ/lw318gSGR67uckkz2ZekbCEpj/0mnHWD
3R6V7m95R6UYqjcw++Q5CtZ2tzmxomZTf42IGIKBbSVmIS75WY+cBULUx3PcZYHD
ZqAbB0Dl4MbdEH61kOI8EbN/TLl1i077r+9LXR1mOnlC3GLD03+XfY8eEBQf7137
YSMiW5r/5xwQk7xEcKlbZdmUJp3ZDTQBXT06vavvp3jlkqqH9QOE8ViZZ6aKQLqv
pL+4bs52jzuGwTMT7gOR5MzD+vT0fVS7Xm8MjOxvZgbHsAgzyFGlI1ggUQmU7lu3
uPNL0eRx4S1G4Jn5
=OGYX
-----END PGP PUBLIC KEY BLOCK-----

 

3.测试模式安装tree,查询

 

[root@Centos7 Packages]# rpm -ivh tree-1.6.0-10.el7.x86_64.rpm  --test #测试安装
Preparing...                          ################################# [100%]
package tree-1.6.0-10.el7.x86_64 is already installed
[root@Centos7 Packages]# rpm -qa | grep tree-1.6.0-10.el7.x86_64.rpm 
[root@Centos7 Packages]#

 

[root@Centos7 Packages]# rpm -qpi tree-1.6.0-10.el7.x86_64.rpm  #查询未安装的包文件信息
Name        : tree
Version     : 1.6.0
Release     : 10.el7
Architecture: x86_64
Install Date: (not installed)
Group       : Applications/File
Size        : 89505
License     : GPLv2+
Signature   : RSA/SHA256, Fri 04 Jul 2014 01:36:46 PM CST, Key ID 24c6a8a7f4a80eb5
Source RPM  : tree-1.6.0-10.el7.src.rpm
Build Date  : Tue 10 Jun 2014 03:28:53 AM CST
Build Host  : worker1.bsys.centos.org
Relocations : (not relocatable)
Packager    : CentOS BuildSystem <http://bugs.centos.org>
Vendor      : CentOS
URL         : http://mama.indstate.edu/users/ice/tree/
Summary     : File system tree viewer
Description :
The tree utility recursively displays the contents of directories in a
tree-like format.  Tree is basically a UNIX port of the DOS tree
utility.

[root@Centos7 Packages]# rpm -qpl tree-1.6.0-10.el7.x86_64.rpm  #查询安装后生成的文件
/usr/bin/tree
/usr/share/doc/tree-1.6.0
/usr/share/doc/tree-1.6.0/LICENSE
/usr/share/doc/tree-1.6.0/README
/usr/share/man/man1/tree.1.gz

[root@Centos7 Packages]# rpm -qpR tree-1.6.0-10.el7.x86_64.rpm  #查询包安装需要的库文件
libc.so.6()(64bit)
libc.so.6(GLIBC_2.14)(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6(GLIBC_2.3)(64bit)
libc.so.6(GLIBC_2.3.4)(64bit)
libc.so.6(GLIBC_2.4)(64bit)
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rtld(GNU_HASH)
rpmlib(PayloadIsXz) <= 5.2-1

 

 

4.rpm程序包安装。

3步没有实际的安装程序包,只是对文件包做检测,查询程序包的信息,查询生成的文件,查询需要的依赖库文件等等。

#安装rpm程序包[root@Centos7 Packages]# rpm -qa | grep tree [root@Centos7 Packages]# rpm -ivh tree-1.6.0-10.el7.x86_64.rpm  #安装程序包Preparing...                          ################################# [100%]Updating / installing...   1:tree-1.6.0-10.el7                ################################# [100%][root@Centos7 Packages]# rpm -qa | grep treetree-1.6.0-10.el7.x86_64

 

小结:

以上是rpm包常用的安装命令,由于rpm命令无法解决包与包之间的依赖关系,需要手工解决。手工卸载软件时,当你卸载的软件有其它软件依赖时,无法正常的卸载,但是可以忽略依赖关系,但是不建议。例如你卸载bash时是无法正常卸载的,卸载的时候带 –-nodeps 参数可以卸载,但是系统重启后无法启动,切记不要-nodeps卸载软件。 

原创文章,作者:linux_root,如若转载,请注明出处:http://www.178linux.com/37718

(0)
上一篇 2016-08-21 20:47
下一篇 2016-08-21 20:47

相关推荐

  • 第一周随记。

    始 .仲夏之末  ———随记心情 去年仲夏我在郑州富士康过着自己不喜欢的日子,做着自己不情愿做的事情。 有可能回到学校的日子才是我最想要的吧。 五月的骄阳也是那么炙热,缓缓升起,就像想穿进我们宿舍普及到每个人身上,然宿舍有空调岂会怕你这点小小余辉。 总感觉脑子里始终有一种什么意念在召唤着我,原来该上课了…

    Linux干货 2017-07-15
  • exit和退出码

    用途说明 exit命令用于退出当前shell,在shell脚本中可以终止当前脚本执行。   常用参数 格式:exitn 退出。设置退出码为n。(Causethe shell to exit with a status of n.)   格式:exit 退出。退出码不变,即为最后一个命令的退出码。(Ifn is omitted, the e…

    Linux干货 2016-01-14
  • 优云APM最佳实践: 诊断平安城市视频网性能问题

    前言: 平安城市已经是一个关系你我他的民生工程,但由于本身系统的复杂性,给运维工作带来了极大的挑战。如何保障摄像头在线率?如何在系统中找到视频系统故障的问题所在?在我们某一次项目经历中,优云APM在发现问题,定位故障等方面,起了很大作用,帮助我们顺利的定位到了系统的故障所在。 平安城市是一个特大型、综合性非常强的管理系统,不仅需要满足治安管理、城市管理、交通…

    Linux干货 2016-08-05
  • 马哥教育网络班21期+第2周课程练习

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 目录及文件命令 pwd:打印当前工作路径(绝对路径),并且有相应的环境变量PWD表示。 cd:切换目录 ~用户家目录 ..当前目录的父目录 .当前目录 -上次所在的目录。 ls:查看目录下内容,常用选项 -a 列出目录下所有文件和目录;-d 只显示目录本身属性信息;-h 文件大小单…

    Linux干货 2016-07-17
  • 有关shell脚本

    SHELL脚本 在Linux运维工作中有着大量的重复性质的工作,比如同时给很多台的服务器备份,查看多台的内存情况,等等。这样的情况下总不能一个一个服务器自己去看,那样耗时,费力,还容易出错。所以编写程序来做这些事情就成了必要的工作。而SHELL就是完成这项工作的。   脚本第一行的开头写上#!/bin/bash 这是属于格式性质的,作用在于加上执行…

    2017-08-12
  • Linux GRUB legacy

    Linux GRUB Linux GRUB Linux GRUB 单用户模式(密码破解) 救援模式 实例 GRUB菜单 GRUB命令行接口 GRUB简介 GRUB 菜单组成 GRUB配置文件 GRUB安装及修复 GRUB单用户及救援模式 GRUB简介 了解grub之前,需要理解linux的启动流程,如果之前有对linux启动流程不了解的可以看:http://…

    Linux干货 2016-04-25