Linux程序包管理
RPM软件包管理器是由Redhat公司提出的,英文原意为Redhat Package Manager。是用来管理linux下软件包的工具。现在包括OpenLinux、S.u.S.E.以及Turbo Linux等Linux的分发版本都有采用,成了公认的业界标准,也为了迎合开源人士的幽默特点所以RPM英文本意改成了RPM is Package Manager。RPM可是实现软件包的安装、卸载、升级、查询和验证等功能。
RPM包安装
命令格式:rpm{-i|--install} [install-options] PACKAGE_FILE
通常使用rpm �Civh 加软件包路径安装软件包 vh表示安装过程中输出安装信息。
支持的安装选项:
--replacepkgs:重新安装
--nodeps:忽略包的依赖关系
--test:测试安装,不真正执行安装过程
--perfix:制定包的安装路径
RPM包升级
命令格式:rpm{-U|--upgrade} [install-options] PACKAGE_FILE
rpm {-F|--freshen} [install-options]PACKAGE_FILE
通常使用rpm �CUvh(如果有相应包的旧版本则升级否则直接安装新版本)或用rpm �CFvh(如果有相应包的旧版本则升级否则不安装新版本)升级软件包。
支持的选项:
--oldpackage:降级安装
--force:忽略冲突强制执行安装
注意:不要对内核包执行升级操作,Linux支持多版本内核并存。因此,对新版本内核可直接安装。此外升级时被修改过的配置文件不会被覆盖,而是把新版本的文件重命名后加.rpmnew后缀保留。
RPM包卸载
命令格式:rpm {-e|--erase}PACKAGE_NAME
支持的选项:
--nodeps:卸载时忽略依赖关系
--test:卸载测试,不真正执行卸载过程
注意:如果软件包的配置文件安装后被改动过,卸载时,此文件将不会删除,而是被重命名(原文件名加.rpmsave后缀)并保留。
RPM包查询
rpm {-q|--query}PACKAGE_NAME 检查软件包是否已安装
支持的选项:
-qa:列出已经安装的所有软件包
-qi:查询包的简要说明信息
-ql:查询某包安装后生成的所有文件的列表
-qc:查看某包所有生成的配置文件
-qd:查询某包安装后的帮助文件
-q --changelog:查询某包制作时随版本变化的changelog列表
-q -- provides:查询某包提供的capabilities
-q --requires:查询某包所依赖的capabilities
-q --scripts:查询某包安装卸载时的脚本
RPM包验证
检查包安装之后生成的文件是否发生了改变
rpm{-V|--verify} [select-options] [verify-options]
常用用法:rpm -VPACKAGE_NAME
包来源合法性及完整性验证:
rpm --importPUBKEY ... 导入公钥(前提是工作目录下要有此公钥文件)
rpm{-K|--checksig} [--nosignature] [--nodigest] PACKAGE_FILE ...
--nosignature: 不检查来源合法性
--nodigest: 不检查完整性
由于程序包存在依赖关系,在用RPM命令安装程序包的时候如果此包所依赖的软件包没有安装还要下载安装它所以来的包,这样就会很麻烦。Yum是可以自动处理依赖性关系的前端包管理器,可以一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
Yum客户端的配置:
配置文件:/etc/yum.repos.d/*.repo /etc/yum.repos.d目录下创建以.repo结尾的文件定义软件仓库。
[DVD]
name=DVD
baseurl=file:///media/cdrom
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
[DVD]字段:REPO_ID ID不能重复
Name字段:repo description 可以添加一些描述信息
Baseurl字段:定义软件仓库的地址可以是FTP、HTTP地址或本地文件系统目录等
enabled字段:表示是否启用本仓库 0为禁用 1为启用
gpgcheck字段:表示是否校验软件包的完整性和来源可靠性 0为不校验 1为校验
gpgkey字段:校验软件包用的文件路径
yum相关命令
命令格式:yum[options] [command] [package ...]
yum repolist 列出所有可用仓库
yum list {all|installed|available} 列出所有程序包或安装过的活可用程序包
yum list 后也可加globing元字符模糊匹配列出匹配的安装包
例如:列出前几个字符是bash的包 yum list bash*
yum grouplist 列出所有包组
yum clean {all|packages} 清除yum缓存
yum makecache建立缓存,会把仓库的元数据同步到本地
yum install PACKAGE_NAME ... 安装某个软件包
yum reinstall PACKAGE_NAME ... 重装某个软件包
yum erase|remove PACKAGE_NAME 卸载指定数据包,依赖于此程序包的其他程序包也会被卸载
yum {groupinstall|groupremove|groupupdate|grouplist|groupinfo} ”GROUP_NAME“ 对包组的安装、卸载、升级、查询、显示相关信息
对包组的操作也可用yum{install|gremove|update|list|info} @“GROUP_NAME”实现包组的安装、卸载、升级、查询、显示相关等信息(同普通包一样的选项只是在包组前加@符号)
注意:以上操作收到Is this ok[y|N]:提示时表示安装或升级已经准备好是否执行操作,键入y然后回车可以继续执行,如果不想继续可以键入n放弃本次操作。如果不行收到此提示可以在输入命令时添加-y选项表示默认同意继续执行。
例如 yuminstall �Cy tree