首页 > 代码库 > Linux程序包管理之RPM、YUM
Linux程序包管理之RPM、YUM
RPM
简介
RPM:redhat package manager, RPM is Package Manager;是红帽公司研发的一种包管理器
其功能主要有安装、卸载、查询、升级和校验;由此,下面对其功能做详细介绍:
1.1 发行号;
在介绍其功能之前,先看一下其发行号的
eg:bash-4.3.2-1.x86_64.rpm
name(包名)-Major(主版本号).Minor(次版本号).Release(发行号)-release.arch(适用硬件平台).rpm
注意:-release,rpm包自己的发行号,与源代码的发行号无关;仅用于标识对rpm自身的修订
1.2安装;
rpm {-i|--install} [install-options] PACKAGE_FILE ...
rpm -ivh [install-options] PACKAGE_FILE
i:install
v:安装过程详细程度,想再详细,则-vv,-vvv,...
h:hash,显示安装包进度条,#显示
[install-options]:
--replacepkgs:重新安装
--nodeps: 忽略依赖关系
--test: 测试安装,而不执行真正的安装过程;
1.3卸载
rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts] [--notriggers] [--test] PACKAGE_NAME ...
rpm -e PACKAGE_NAME ...
--nodeps: 忽略依赖关系
-test: 卸载测试
注意:如果包的配置文件安装后曾被改动过,卸载时,此文件将不会删除,而是被重命名(原文件加.rpmsave后缀)并保留;
1.4升级
用较高版本程序包替换安装原有较老的程序包的过程
rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...
如果有较旧版本程序包,则升级安装;否则,则执行安装操作;
rpm {-F|--freshen} [install-options] PACKAGE_FILE ...
如果有较旧版本程序包,则升级安装;否则,中止;
rpm -Uvh [install-options] PACKAGE_FILE ...
rpm -Fvh
[install-options]
--oldpackage:降级安装;
--force: 忽略冲突,强制执行过程;
注意:不要对内核包执行升级操作;linux支持多版本内核并存,因此,对新版本内核可直接安装;如果原程序包的配置文件安装后曾被改动,升级时,新版本的文件并不会直接覆盖老版本的文件,而是把新版本的文件重命(加后缀.rpmnew)名后保留;
1.5查询
检查某包是否已经安装,或检查安装的所有包
rpm {-q|--query} [select-options] [query-options]
[select-options]:
1、查询某包是否安装:
rpm -q PACKAGE_NAME ...
2、查询已安装的所有包:
rpm -qa
3、查询某文件是由哪个包安装生成:
rpm -qf /path/to/somefile
4、查询尚未安装包的相关信息:
rpm -qpl PACKAGE_FILE
rpm -qpi PACKAGE_FILE
1.6校验
目的:检查包安装之后生成的文件是否发生了改变
rpm {-V|--verify} [select-options] [verify-options]
常用用法:rpm -V PACKAGE_NAME
S file Size differs 文件大小改变
M Mode differs (includes permissions and file type) 模式改变(包括许可和文件类型)
5 digest (formerly MD5 sum) differs MD5校验和不一致
D Device major/minor number mismatch 主次设备号不匹配
L readLink(2) path mismatch readLink(2)路径不匹配
U User ownership differs 属主不一样
G Group ownership differs 属组不一样
T mTime differs 修改时间不一样
P caPabilities differ 包提供功能改变
1.7包来源合法性及完整性验正:
rpm --import PUBKEY ...
rpm {-K|--checksig} [--nosignature] [--nodigest] PACKAGE_FILE ...
--nosignature: 不检查来源合法性
--nodigest: 不检查完整性
1.8公共数据库:/var/lib/rpm
重建数据库
rpm {--initdb|--rebuilddb}
初始化:--initdb
如果事先不存在数据,则会新之;否则,不执行任何操作
重新构建:--rebuilddb
无论当前是否已经存在数据库,都会直接重建并覆盖现有数据库;
YUM
Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
其主要功能简介:
2.1安装:
yum install PACKAGE_NAME ... (不指定版本号则通常为yum仓库里面最新版本)
yum install PACKAGE-VERSION (如果要安装指定的版本的程序)
yum reinstall PACKAGE_NAME ...(重装指定的程序包)
2.2升级:
yum update PACKAGE_NAME (更新到最新版本)
yum update PACKAGE-VERSION ( 升级到指定版本)
yum downgrade PACKAGE_NAME (降级)
yum check-update (检查可用升级)
2.3 卸载:
yum erase|remove PACKAGE_NAME (删除卸载程序包)
注意:依赖于指定程序包的其它包,会被一并卸载;
2.4查询:
yum list (列出所有包文件,可搭配grep查询软件包,如yum list | grep kernel)
yum repolist (列出所有可用yum仓库)
yum info PACKAGE_NAME (显示包详细信息,即使没有安装)
yum search KEYWORD ( 根据关键字模糊查询包名或包的sumary信息包含此KEYWORD的相关列表;)
yum provides|whatprovides /path/to/somefile
2.5包组管理:
yum grouplist (显示所有包组)
yum groupinfo "GROUP_NAME" (显示指定包组的相关信息)
yum groupinstall "GROUP_NAME" (安装包组-method1)
yum install @GROUP_NAME (安装包组-method2)
yum groupremove "GROUP_NAME" (卸载包组-method1)
yum remove @"GROUP_NAME" (卸载包组-method2)
yum groupupdate "GROUP_NAME" (升级包组)
2.6yum安装本地rpm包文件:
yum localinstall /path/to/rpm_package_file ... (适用CentOS7之前版本,如:CentOS6)
yum install /path/to/rpm_package_file ... (适用CentOS 7)
2.7其他yum选项:
--enablerepo= (启用指定的yum仓库)
--disablerepo= (禁用某yum仓库)
注意:优先级高于/etc/yum.repos.d/*.repo配置文件中定义的属性;
-y: 自动回答为yes (常用于想自动安装程序包)
--nogpgcheck (忽略程序包校验)
更多信息请参考:https://access.redhat.com/search/browse/solutions#?&portal_language=zh_CN,en&portal_component=yum
本文出自 “正则表达式用法” 博客,请务必保留此出处http://burgess8909.blog.51cto.com/9607271/1587168
Linux程序包管理之RPM、YUM