RPM是RedHat Package Manager(RedHat软件包管理工具)类似Windows里面的“添加/删除程序”

1 rpm 执行安装包
二进制包(Binary)以及源代码包(Source)两种。二进制包可以直接安装在计算机中,而源代码包将会由RPM自动编译、安装。源代码包经常以src.rpm作为后缀名。


yum = Yellow dog Updater, Modified
主要功能是更方便的添加/删除/更新RPM包,能自动解决包的倚赖性问题,能便于管理大量系统的更新问题。它还有可以同时配置多个资源库(Repository),简洁的配置文件(/etc/yum.conf),自动解决增加或删除rpm包时遇到的倚赖性问题,使用方便,保持与RPM数据库的一致性这些特点。


2 RPM包管理的用途;

1、可以安装、删除、升级和管理软件;当然也支持在线安装和升级软件;
2、通过RPM包管理能知道软件包包含哪些文件,也能知道系统中的某个文件属于哪个软件包;
3、可以在查询系统中的软件包是否安装以及其版本;
4、作为开发者可以把自己的程序打包为RPM 包发布;
5、软件包签名GPG和MD5的导入、验证和签名发布
6、依赖性的检查,查看是否有软件包由于不兼容而扰乱了系统;


2 RPM 的使用权限;
RPM软件的安装、删除、更新只有root权限才能使用;对于查询功能任何用户都可以操作;如果普通用户拥有安装目录的权限,也可以进行安装;


3 rpm 的一点简单用法;
我们除了软件包管理器以外,还能通过rpm 命令来安装;是不是所有的软件包都能通过rpm 命令来安装呢?不是的,文件以.rpm 后缀结尾的才行;有时我们在一些网站上找到file.rpm ,都要用 rpm 来安装;


4 常用命令组合

-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包]--query--package--install package信息
rpm -qpf Linux-1.4-6.i368.rpm #[查看rpm包]--file
rpm -qpR file.rpm       #[查看包]依赖关系

rpm -ivh file.rpm  #[安装新的rpm]--install--verbose--hash
rpm -ivh

rpm -Uvh file.rpm    #[升级一个rpm]--upgrade
rpm -e file.rpm      #[删除一个rpm包]--erase


5 RPM源代码包装安装

.src.rpm结尾的文件,这些文件是由软件的源代码包装而成的,用户要安装这类RPM软件包,必须使用命令:


  rpm --recompile vim-4.6-4.src.rpm   #这个命令会把源代码解包并编译、安装它,如果用户使用命令:
  rpm --rebuild vim-4.6-4.src.rpm  #在安装完成后,还会把编译生成的可执行文件重新包装成i386.rpm的RPM软件包。



6 RPM的查询功能


a 命令格式

rpm {-q|--query} [select-options] [query-options]

RPM的查询功能是极为强大,是极为重要的功能之一。


例:[root@localhost beinan]# rpm -q httpd

此命令表示的是,是不是系统安装了httpd;如果已安装会有信息输出;如果没有安装,会输出httpd 没有安装的信息;

查看系统中所有已经安装的包,要加 -a 参数 ;



b 查询一个已经安装的文件属于哪个软件包;

 语法 rpm -qf 文件名   注:文件名所在的绝对路径要指出

例:

[root@localhost RPMS]# rpm -qf /usr/lib/libacl.la
libacl-devel-2.2.23-8



c 查询已安装软件包都安装到何处;

 

语法:rpm -ql 软件名 或 rpm rpmquery -ql 软件名

例:

[root@localhost RPMS]# rpm -ql lynx
[root@localhost RPMS]# rpmquery -ql lynx



d 查询一个已安装软件包的信息

语法格式: rpm -qi 软件名

例:

[root@localhost RPMS]# rpm -qi lynx


e 查看一下已安装软件的配置文件;

语法格式 :rpm -qc 软件名

举例:

[root@localhost RPMS]# rpm -qc lynx


f  查看一个已经安装软件的文档安装位置:

语法格式: rpm -qd 软件名

例:

[root@localhost RPMS]# rpm -qd lynx


g  查看一下已安装软件所依赖的软件包及文件;

语法格式: rpm -qR 软件名

例:

[root@localhost beinan]# rpm -qR rpm-python



7 与对未安装的软件包查看

a 查看一个软件包的用途、版本等信息;

语法: rpm -qpi file.rpm

例:

[root@localhost RPMS]# rpm -qpi lynx-2.8.5-23.i386.rpm


b 查看一件软件包所包含的文件;

语法: rpm -qpl file.rpm

例:

[root@localhost RPMS]# rpm -qpl lynx-2.8.5-23.i386.rpm


c 查看软件包的文档所在的位置;

语法: rpm -qpd file.rpm

例:

[root@localhost RPMS]# rpm -qpd lynx-2.8.5-23.i386.rpm


d查看一个软件包的配置文件;

语法: rpm -qpc file.rpm

例:

[root@localhost RPMS]# rpm -qpc lynx-2.8.5-23.i386.rpm