日期:2014-05-16 浏览次数:20696 次
?Linux rpm 命令参数使用详解
0. RPM简介
?? RPM是RedHat Package Manager(RedHat软件包管理工具),类似Windows
?? 里面的“添加/删除程序”。rpm 执行的安装包分二进制包(Binary)以及
?? 源代码包(Source)两种。二进制包可以直接安装在计算机中,而源代码
?? 包将会由RPM自动编译、安装。源代码包经常以src.rpm作为后缀名。
???
?? RPM 是 Red Hat Package Manager 的缩写,本意是Red Hat 软件包管理,
?? 顾名思义是Red Hat 贡献出来的软件包管理;在Fedora 、Redhat、Mandriva、
?? SuSE、YellowDog等主流发行版本,以及在这些版本基础上二次开发出来的发
?? 行版采用;RPM包里面都包含什么?里面包含可执行的二进制程序,这个程序
?? 和Windows的软件包中的.exe文件类似是可执行的;RPM包中还包括程序运行
?? 时所需要的文件,这也和Windows的软件包类似,Windows的程序的运行,除
?? 了.exe文件以外,也有其它的文件;一个RPM 包中的应用程序,有时除了自
?? 身所带的附加文件保证其正常以外,还需要其它特定版本文件,这就是软件
?? 包的依赖关系;依赖关系并不是Linux特有的, Windows操作系统中也是同样
?? 存在的;比如我们在Windows系统中运行3D游戏,在安装的时候,他可能会提
?? 示,要安装Direct 9 ;Linux和Windows原理是差不多的。
?
1. 常用命令组合:
?? -ivh:安装显示安装进度--install--verbose--hash
?? -Uvh:升级软件包--Update;
?? -qpl:列出RPM软件包内的文件信息[Query Package list];
?? -qpi:列出RPM软件包的描述信息[Query Package install package(s)];
?? -qf:查找指定文件属于哪个RPM软件包[Query File];
?? -Va:校验所有的RPM软件包,查找丢失的文件[View Lost];
?? -e:删除包
?? 示例:
?? rpm -q samba //查询程序是否安装
?? rpm -ivh? /media/cdrom/RedHat/RPMS/samba-3.0.10-1.4E.i386.rpm?
?? //按路径安装并显示进度
?? rpm -ivh --relocate /=/opt/gaim gaim-1.3.0-1.fc4.i386.rpm????
?? //指定安装目录
?? rpm -ivh --test gaim-1.3.0-1.fc4.i386.rpm ?
?? //用来检查依赖关系;并不是真正的安装;
?? rpm -Uvh --oldpackage gaim-1.3.0-1.fc4.i386.rpm?
?? //新版本降级为旧版本
?? rpm -qa | grep httpd #[搜索指定rpm包是否安装]--all搜索*httpd*
?? rpm -ql httpd #[搜索rpm包]--list所有文件安装目录
?? rpm -qpi Linux-1.4-6.i368.rpm
?? rpm -qpf Linux-1.4-6.i368.rpm #[查看rpm包]--file?
?? rpm -qpR file.rpm #[查看包]依赖关系
?? rpm2cpio file.rpm |cpio -div?? #[抽出文件]
?? rpm -Uvh file.rpm??? #[升级一个rpm]--upgrade
?? rpm -e file.rpm????? #[删除一个rpm包]--erase
2. 常用参数:
?? Install/Upgrade/Erase options:
?? -i, --install????????????????? install package(s)
?? -v, --verbose????????????????? provide more detailed output
?? -h, --hash???????????????????? print hash marks as package?
????????????????????????????????? installs (good with -v)
?? -e, --erase??????????????????? erase (uninstall) package
?? -U, --upgrade=<packagefile>+?? upgrade package(s)
?? - replacepkge????????????????? 无论软件包是否已被安装,都强行安
????????????????????????????????? 装软件包
?? --test???????????????????????? 安装测试,并不实际安装
?? --nodeps?????????????????????? 忽略软件包的依赖关系强行安装
?? --force??????????????????????? 忽略软件包及文件的冲突
?
?? Query options (with -q or --query):
?? -a, --all????????????????????? query/verify all packages
?? -p, --package????????????????? query/verify a package file
?? -l, --list???????????????????? list files in package
?? -d, --docfiles???????????????? list all documentation files
?? -f, --file???????????????????? query/verify package(s) owning file
3. RPM源代码包装安装
?? .src.rpm结尾的文件,这些文件是由软件的源代码包装而成的,用户要安
?? 装这类RPM软件包,必须使用命令:
?? rpm --recompile vim-4.6-4.src.rpm???
?? #这个命令会把源代码解包并编译、安装它,如果用户使用命令:
?? rpm --rebuild vim-4.6-4.src.rpm
?? #在安装完成后,还会把编译生成的可执行文件重新包装成i386.rpm的RPM
?? 软件包。?
4. RPM 的使用权限
?? RPM软件的安装、删除、更新只有root权限才能使用;对于查询功能任何用
?? 户都可以操作;如果普通用户拥有安装目录的权限,也可以进行安装.
5. rpm 的一点简单用法;
?? 除了软件包管理器以外,还能通过rpm 命令来安装;是不是所有的软件包都
?? 能通过rpm 命令来安装呢?不是的,文件以.rpm 后缀结尾的才行;有时在
?? 一些网站上找到file.rpm ,都要用 rpm 来安装.
?? 初始化rpm 数据库;
?? 通过rpm 命令查询一个rpm 包是否安装了,也是要通过rpm 数据库来完成的;
?? 所以要经常用下面的两个命令来初始化rpm 数据库;
?? [root@localhost kevin]# rpm --initdb
?? [root@localhost kevin]# rpm --rebuilddb //这个要花好长时间;
?? 说明:这两个参数是极为有用,有时rpm 系统出了问题,不能安装和查询,
?? 大多是这里出了问题;
6. RPM软件包管理的查询功能:
?? 命令格式:
?? rpm {-q|--query} [select-options] [query-options]
?? RPM的查询功能是极为强大,是极为重要的功能之一;举几个常用的例子,
?? 更为详细的具体的,请参考#man rpm
? (1)查询系统已安装的软件;
?? 语法:rpm -q 软件名
?? [root@localho