详解RedHat系的Linux系统中rpm与yum命令的使用

我想请教一下,详解RedHat系的Linux系统中rpm与yum命令的使用
最新回答
灼灼

2024-06-27 04:41:25

rpm

rpm是一个功能十分强大的软件包管理系统,它使得在Linux下安装、升级和删除软件包的工作变得容易,并且具有查询、验证软件包的功能。与图形化工具相比,使用命令行可以获得更大的灵活性。以下的例子都以example-1.2.3-1.i386.rpm代表对象软件包的名称

参数与选项

一、安装选项

命令格式:

rpm -i ( or --install) options file1.rpm ... fileN.rpm

参数:

file1.rpm ... fileN.rpm 将要安装的RPM包的文件名

详细选项:

-h (or --hash) 安装时输出hash记号 (``#'')

--test 只对安装进行测试,并不实际安装。

--percent 以百分比的形式输出安装的进度。

--excludedocs 不安装软件包中的文档文件

--includedocs 安装文档

--replacepkgs 强制重新安装已经安装的软件包

--replacefiles 替换属于其它软件包的文件

--force 忽略软件包及文件的冲突

--noscripts 不运行预安装和后安装脚本

--prefix 将软件包安装到由 指定的路径下

--ignorearch 不校验软件包的结构

--ignoreos 不检查软件包运行的操作系统

--nodeps 不检查依赖性关系

--ftpproxy 用 作为 FTP代理

--ftpport 指定FTP的端口号为

通用选项

-v 显示附加信息

-vv 显示调试信息

--root 让RPM将指定的路径做为根目录,这样预安装程序和后安

装程序都会安装到这个目录下

--rcfile 设置rpmrc文件为

--dbpath 设置RPM 资料库存所在的路径为

二、删除选项

命令格式:

rpm -e ( or --erase) options pkg1 ... pkgN

参数

pkg1 ... pkgN :要删除的软件包

详细选项

--test 只执行删除的测试

--noscripts 不运行预安装和后安装脚本程序

--nodeps 不检查依赖性

通用选项

-vv 显示调试信息

--root 让RPM将指定的路径做为根目录,这样预安装程序和后安装

程序都会安装到这个目录下

--rcfile 设置rpmrc文件为

--dbpath 设置RPM 资料库存所在的路径为

三、升级选项

命令格式

rpm -U ( or --upgrade) options file1.rpm ... fileN.rpm

参数

file1.rpm ... fileN.rpm 软件包的名字

详细选项

-h (or --hash) 安装时输出hash记号 (``#'')

--oldpackage 允许升级到一个老版本

--test 只进行升级测试

--excludedocs 不安装软件包中的文档文件

--includedocs 安装文档

--replacepkgs 强制重新安装已经安装的软件包

--replacefiles 替换属于其它软件包的文件

--force 忽略软件包及文件的冲突

--percent 以百分比的形式输出安装的进度。

--noscripts 不运行预安装和后安装脚本

--prefix 将软件包安装到由 指定的路径下

--ignorearch 不校验软件包的结构

--ignoreos 不检查软件包运行的操作系统

--nodeps 不检查依赖性关系

--ftpproxy 用 作为 FTP代理

--ftpport 指定FTP的端口号为

通用选项

-v 显示附加信息

-vv 显示调试信息

--root 让RPM将指定的路径做为根目录,这样预安装程序和后安装程序都会安装到这个目录下

--rcfile 设置rpmrc文件为

--dbpath 设置RPM 资料库存所在的路径为

四、查询

命令格式:

rpm -q ( or --query) options

参数:

pkg1 ... pkgN :查询已安装的软件包

详细选项

-p (or ``-'') 查询软件包的文件

-f 查询属于哪个软件包

-a 查询所有安装的软件包

--whatprovides 查询提供了 功能的软件包

-g 查询属于 组的软件包

--whatrequires 查询所有需要 功能的软件包

信息选项

显示软件包的全部标识

-i 显示软件包的概要信息

-l 显示软件包中的文件列表

-c 显示配置文件列表

-d 显示文档文件列表

-s 显示软件包中文件列表并显示每个文件的状态

--scripts 显示安装、卸载、校验脚本

--queryformat (or --qf) 以用户指定的方式显示查询信息

--dump 显示每个文件的所有已校验信息

--provides 显示软件包提供的功能

--requires (or -R) 显示软件包所需的功能

通用选项

-v 显示附加信息

-vv 显示调试信息

--root 让RPM将指定的路径做为根目录,这样预安装程序和后安装程序都会安装到这个目录下

--rcfile 设置rpmrc文件为

--dbpath 设置RPM 资料库存所在的路径为

五、校验已安装的软件包

命令格式:

rpm -V ( or --verify, or -y) options

参数

pkg1 ... pkgN 将要校验的软件包名

软件包选项

-p Verify against package file

-f 校验所属的软件包

-a Verify 校验所有的软件包

-g 校验所有属于组 的软件包

详细选项

--noscripts 不运行校验脚本

--nodeps 不校验依赖性

--nofiles 不校验文件属性

通用选项

-v 显示附加信息

-vv 显示调试信息

--root 让RPM将指定的路径做为根目录,这样预安装程序和后安装程序都会安装到这个目录下

--rcfile 设置rpmrc文件为

--dbpath 设置RPM 资料库存所在的路径为

六、校验软件包中的文件

语法:

rpm -K ( or --checksig) options file1.rpm ... fileN.rpm

参数:

file1.rpm ... fileN.rpm 软件包的文件名

Checksig--详细选项

--nopgp 不校验GPG签名

通用选项

-v 显示附加信息

-vv 显示调试信息

--rcfile 设置rpmrc文件为

七、其它RPM选项

--rebuilddb 重建RPM资料库

--initdb 创建一个新的RPM资料库

--quiet 尽可能的减少输出

--help 显示帮助文件

--version 显示RPM的当前版本

八、例子

代码如下:

[root@localhost ~]# rpm -ivh ipchains-1.3.6-1.i386.rpm     #安装包,并显示详细进度

[root@localhost ~]# rpm -i ftp://ftp.xxx.xxx            #在线安装

[root@localhost ~]# rpm -Va    #校验所有的rpm包,查找丢失的文件

[root@localhost ~]# rpm -qf /usr/bin/who               #查找一个文件属于哪个rpm包

[root@localhost ~]# rpm -qpi mon-0.37j-1.i386.rpm     #列出一个rpm包的描述信息

[root@localhost ~]# rpm -qpl mon-0.37j-1.i386.rpm            #列出一个rpm包的文件信息

[root@localhost ~]# rpm -Uvh ipchains-1.3.6-1.i386.rpm            #升级包

[root@localhost ~]# rpm -q  httpd               #查看httpd的安装包

[root@localhost ~]# rpm -e  httpd               #移除安装包

[root@localhost ~]# rpm -qi httpd             #得到httpd安装包的信息

Name : httpd Relocations: (not relocatable)

Version : 2.2.3 Vendor: CentOS

Release : 45.el5.centos.1 Build Date: 2011年05月04日 星期三 18时54分56秒

Install Date: 2011年06月29日 星期三 08时05分34秒 Build Host: builder10.centos.org

Group : System Environment/Daemons Source RPM: httpd-2.2.3-45.el5.centos.1.src.rpm

Size : 3281960 License: Apache Software License

Signature : DSA/SHA1, 2011年05月04日 星期三 20时31分28秒, Key ID a8a447dce8562897

URL :

http://httpd.apache.org/

Summary : Apache HTTP 服务器

Description :

The Apache HTTP Server is a powerful, efficient, and extensible

web server.

代码如下:

[root@localhost ~]# rpm -ql httpd            #列出httpd中有哪些文件

[root@localhost ~]# rpm -qa                  #列出所有已安装的包

yum

yum 命令:用于添加/删除/更新RPM包,自动解决包的依赖问题以及系统更新升级

参数

-e 静默执行

-t 忽略错误

-R[分钟] 设置等待时间

-y 自动应答yes

--skip-broken 忽略依赖问题

--nogpgcheck 忽略GPG验证

check-update 检查可更新的包

clearn 清除全部

clean packages 清除临时包文件(/var/cache/yum 下文件)

clearn headers 清除rpm头文件

clean oldheaders 清除旧的rpm头文件

deplist 列出包的依赖

list 可安装和可更新的RPM包

list installed 已安装的包

list extras 已安装且不在资源库的包

info 可安装和可更新的RPM包 信息

info installed 已安装包的信息(-qa 参数相似)

install[RPM包] 安装包

localinstall 安装本地的 RPM包

update[RPM包] 更新包

upgrade 升级系统

search[关键词] 搜索包

provides[关键词] 搜索特定包文件名

reinstall[RPM包] 重新安装包

repolist 显示资源库的配置

resolvedep 指定依赖

remove[RPM包] 卸载包

例:

1,安装

代码如下:

[root@localhost ~]# yum install php53        #安装php5.3

[root@localhost ~]# yum groupinstall "MySQL Server"    #安装mysql数据库组

2,更新和升级

代码如下:

[root@localhost ~]# yum update              #全部更新

[root@localhost ~]# yum update  php53       #更新php

[root@localhost ~]# yum check-update        #检查可更新的程序

[root@localhost ~]# yum upgrade php53       #升级php53

[root@localhost ~]# yum groupupdate "MySQL Server"    #升级mysql服务组

3,查找和显示

代码如下:

[root@localhost ~]# yum info php53          #查看php53的安装信息

[root@localhost ~]# yum list                #列出所有可安装的程序包

[root@localhost ~]# yum list php53         #列出所有php53的程序包

[root@localhost ~]# yum groupinfo "MySQL Server"    #查看mysql服务组的,相关安装包

[root@localhost ~]# yum deplist php53      #查看php53依赖情况

4,删除

代码如下:

[root@localhost ~]# yum remove php53          #删除php53

[root@localhost ~]# yum groupremove "MySQL Server"    #删除mysql服务组

5,清除缓存

代码如下:

[root@localhost ~]# yum clean packages            #清除缓存目录下的软件包

[root@localhost ~]# yum clean headers             #清除缓存目录下的 headers

[root@localhost ~]# yum clean oldheaders          #清除缓存目录下旧的 headers

[root@localhost ~]# yum clean, yum clean all      #清除所有