首页 > 代码库 > RPM包管理

RPM包管理

RPM包管理

什么是RPM

       RPM全名是“RedHat package manage”,简称RPMRPM是以一种数据库记录的方式来将你所需要的软件安装到你的linux系统的一套管理机制。

      RPM的优点:

1.     RPM包内含已经编译过的程序与设置文件等数据,可以让用户免除重新编译的困扰;

2.     RPM在被安装之前,会先检查系统的硬盘容量,操作系统版本等,可避免文件被错误安装;

3.     RM文件本身提供软件版本信息,依赖属性软件名称,软件用途说明,软件所含文件等信息,便于了解软件;

4.     RPM管理的方式使用数据库记录RPM文件参数的相关参数,便于升级,删除,查询与验证。

             

RPM包常用选项

rpm常用查询选项参数

用途

rpm -qa

查询所有安装的rpm软件包 

rpm -q PACKAGE_NAME

查询某rpm软件包是否安装 

rpm -qi PACKAGE_NAME

查询某rpm软件包详细信息 

rpm -ql PACKAGE_NAME

查询某rpm软件包中的文件 

rpm -qf PACKAGE_NAME

查询文件所属的rpm软件包 

rpm -ql PACKAGE_NAME

查询某包安装后生成的所有文件列表

rpm -qc PACKAGE_NAME

查询某包安装后生成的所有配置文件的列表

rpm -qd PACKAGE_NAME

查询某包安装后生成的所有帮助文件的列表

prm -q --changelog  PACKAGE_NAME

查询rpm包制作时随版本编号的changelog列表信息

rpm -q --provides  PACKAGE_NAME

查询某包提供的capabilities

rpm -q --requires  PACKAGE_NAME

查询某包所依赖的capabilities

rpm -q --scripts

查询某包安装卸载时的脚本

rpm -e file...

移除已安装的程序包:

 

 

RPM默认安装路径为:/var/lib/rpm

RPM安装:

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

       如安装tree包如下:

1.     光盘安装

选择含有包的光盘如我挂载至/mydate目录下,然后移动到该目录下:

                wKioL1SC77yTSK2xAAAzVpy_iTQ385.jpg

执行:#rpm  -i tree-1.5.3.2-2.e16.x86_64.rpm

wKiom1SC7y3yp48kAAEk8dTMTTU986.jpg

下面执行tree命令验证是否安装成功:

wKioL1SC78Cgd3d4AAFrL1Ug8Us122.jpg

RPM包卸载:

   # rpm -e tree

   查看效果

wKiom1SC7zCiDRLMAACLaBXK8us062.jpg

wKioL1SC78KRi4XAAACQZsXhWrM072.jpg

 

校验:检查包安装之后生成的文件是否发生了改变;

rpm {-V | --verify} [select-options]  [veryfy-options]

常用用法

rpm -V  PACKAGE_NAME

显示结果

解释

5

文件内容发生改变

D

主设备号和次设备号不匹配

L

符号链接路径不匹配

U

属主发生改变

G

属组发生改变

T

最近一次修改时间发生改变

P

功能不同

包来源合法性及完整性验证:

       rpm --import PUBKEY...

wKiom1SC7zTA2FOeAAFF_E-SO2k327.jpg

       rpm {-K |--checksig } [--nosignature][--nodigest] PACKAGE_FILE...

              --nosignature : 不检查来源合法性

              --nodigest 不检查完整性

wKioL1SC78bAv3s1AACV2i_MHjg992.jpg

公共数据库:/var/lib/rpm

              若损坏,重建数据库:

                     rpm {--initdb |--rebuilddb}

                     初始化: --initdb

                            如果事先不存在数据,则会新建;否则,不执行任何操作

                     重新构建: --rebuilddb

                            无论当前是否已经存在数据库,都会直接重建并覆盖现有数据库;

 

yum客户端:

              配置文件:指向仓库的位置,以及各种配置信息;每个yum客户端可以有多个可用的yum仓库;

有两部分组成:

                     主配置文件:/etc/yum.conf

                                          /etc/yum.repos.d/*.repo

仓库定义:   仓库配置路径: /etc/yum.repos.d/

name=

REPO description(描述信息)

baseurl=

能够通过网络或本地访问到的位置,

enabled={1|0}

是否启用此仓库 (默认开启)

gpgcheck={1|0}

是否检测完整性和来源合法性

yum仓库相关的命令

yum repolist

列出所有可用仓库

yum list {all |  installed | available} (所有| 已安装 |可用的)

列出所有程序包

yum grouplist

列出所有包组

缓存管理

yum clean {all |  packages}

清理缓存

yum makecache (生成缓存)

生成缓存




 

wKiom1SC7zfwxC0qAACrx7K19nA056.jpg

需要安装程序包时会自动到: http://172.16.0.1/cobbler/ks_mirror/CentOS-6.6-x86_64/路径搜索RPM;

wKioL1SC78rQGXFkAAH2De6I9ks948.jpg

              安装:

                     yum install  PACKAGE_name ...

                     如果要安装指定的版本的程序(默认安装最新版本):

                                   yum install PACKAGE_version 

wKiom1SC70KyOncfAASpaaIDmDE595.jpg

 

                            重装指定程序包:

                                   yumreinstall PACKAGE_NAME

wKiom1SC70jhP-HEAAPSYGXv8pQ812.jpg

                     升级:

                            yumupdate PACKAGE_NAME

                            如果有多个版本的升级包可用,且仅期望升级到指定版本;

                                   yumupdate PACKAGE_VERSION

                            降级:yum downgrade PACKAGE_NAME

                            检查可用升级:yum check-update

                     卸载:

                            yumerase|remove PACKAGE_NAME

                            依赖于指定程序包的其他包,会被一并卸载;

                     例如删除      amanda.x86_64程序包

                     #yum remove amanda.x86_64

wKioL1SC797RNwj2AAN4KHkOQWs464.jpg

 

查询

yum list

显示所有RPM

yum info  PACKAGE_NAME

显示指定的RPM包信息

yum search  KEYWORD

根据关键字模糊查询包名或包的sumary信息包含此KEYWORD的相关列表;

 

包组管理:


yum group list

显示所有包组:

yum groupinfo  "GROUP_NAME"

显示某包组的相关信息:

yum groupinstall  "GROUP_NAME"

安装包组:

yum install  @"GROUP_NAME"

安装包组:方法二

yum groupremove  "GROUP_NAME"

卸载包组:

yum remove  @"GROUP_NAME"

卸载包组:方法二

yum groupupdate  "GROUP_NAME"

升级包组:

yum update  @"GROUP_NAME"

升级包组:方法二

 


RPM包管理