首页 > 代码库 > RPM包管理
RPM包管理
RPM包管理
什么是RPM
RPM全名是“RedHat package manage”,简称RPM。RPM是以一种数据库记录的方式来将你所需要的软件安装到你的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目录下,然后移动到该目录下:
执行:#rpm -i tree-1.5.3.2-2.e16.x86_64.rpm
下面执行tree命令验证是否安装成功:
RPM包卸载:
# rpm -e tree
查看效果:
校验:检查包安装之后生成的文件是否发生了改变; | |
rpm {-V | --verify} [select-options] [veryfy-options] | |
常用用法 | rpm -V PACKAGE_NAME |
显示结果 | 解释 |
5 | 文件内容发生改变 |
D | 主设备号和次设备号不匹配 |
L | 符号链接路径不匹配 |
U | 属主发生改变 |
G | 属组发生改变 |
T | 最近一次修改时间发生改变 |
P | 功能不同 |
包来源合法性及完整性验证:
rpm --import PUBKEY...
rpm {-K |--checksig } [--nosignature][--nodigest] PACKAGE_FILE...
--nosignature : 不检查来源合法性
--nodigest : 不检查完整性
公共数据库:/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 (生成缓存) | 生成缓存 | |
需要安装程序包时会自动到: http://172.16.0.1/cobbler/ks_mirror/CentOS-6.6-x86_64/路径搜索RPM包;
安装:
yum install PACKAGE_name ...
如果要安装指定的版本的程序(默认安装最新版本):
yum install PACKAGE_version
重装指定程序包:
yumreinstall PACKAGE_NAME
升级:
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
查询 | |
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包管理