热搜词
发表于 2009-2-5 09:48:11 | 显示全部楼层 |阅读模式
RPM包的安装用rpm -i来完成,通过
  • 执行依靠关系检查
  • 冲突检测
  • 执行pre-install脚本(如果存在)
  • 处理配置文件
  • 将包中文件释放到正确目录
  • 执行post-install脚本(如果存在)
  • 在rpm数据库中记录所做的事
来完成安装。

      我们知道,在一些RPM包的安装过程中,有时候会牵扯到依赖关系,也就是说,一些包的正确安装依赖于另一些包里的某些文件,只有另一些包已经安装之后,这个包才能够正确安装。这就是安装时依赖关系的检测。

      而冲突检测是这样一些情况:安装过程中,rpm试图检测系统中是否已经存在相同的包,或者试图用一个过时的包来覆盖现有的包。或者是现在要安装的包会覆盖掉系统中已有的一些属于其他包的文件。

      应该说,rpm区别于其它包管理工具的一个最显著的特点就是rpm在安装时对程序的配置文件的处理。因为配置文件是为在不同的系统环境下定义程序运行时的一些特性和行为而存在的,因此不能简单的一概而论之而不管环境的不同。使用rpm,可以在包的安装过程中,分析所在的现状来对配置文件做相应的处理。

      RPM包可以借助网络来安装,如果远端的一个ftp服务器上存在RPM包,我们可以通过以下命令来获取包并安装。
      rpm -i ftp://ftp.othersite.com/path/my-1.0-1.rpm
这样的例子来安装。rpm的安装参数很多,下面一一介绍。完整的安装指令如下:
      rpm -i (或者--install) options file1.rpm ......fileN.rpm

参数说明:
file1.rpm ...fileN.rpm
要安装的rpm包名,也支持通配符。

安装特有的选项(options)
-h(或者--hash)
有时候,安装的包很大,与其傻等着盯着屏幕看,不如让rpm打印出一些'#'号来表示程序还在执行。
--test
只进行安装测试,并不实际安装。
--percent
安装过程中在屏幕上显示进度。
--excludedocs
不安装包中所含要放到/usr/doc下的那一部分。很多RPM包里都含有一些使用文档来说明程序怎么用,如果不愿装这些你已明白的小儿科,可以用这个选项。
--includedocs
安装包中所含要放到/usr/doc下的那一部分(缺省选项)。
--replacepkgs
用此包的新的拷贝来覆盖原有已安装的包。可能你以前的包已经损坏,用它覆盖注意不错。
--replacefiles
覆盖其它已安装包所带的同名文件,即使不是同一个RPM包。
--force
忽略文件或包的冲突,强行安装。相当于同时使用--replacepkgs和--replacefiles。
--noscripts
不执行包中的pre和post-install脚本。
--prefix <path>
重新安置包到<path>目录下。有一些RPM包提供一种灵活的安装方式,让你能够把包安装在自己定义的目录下面(如果这些包是能够重新定位(relocatable)的)。判断RPM是否存在这些功能,可以用这个命令:rpm -qp --queryformat "%{defaultprefix\}\n" <packagefile>,如果包不可以重新定位,则会在屏幕上显示"none"。否则可以重新定位。
--ignorearch
不校验包的体系结构。当一个包被创建时,RPM将产生包的体系结构或硬件产生列表记录下来,这是为了不同体系之间的兼容性考虑的。在某些特殊情况下,RPM会错误判断系统体系结构,此时可以用这个选项。
--ignoreos
不检测操作系统。和上面一样,包被创建时,会记录所用的操作系统。包在安装时,在/etc/rpmrc文件里有选项指明操作系统的兼容性(上面的选项一样),在某些特殊情况下,RPM会出现错误,此时可以用这个选项。
--nodeps
不检查包的依靠关系,即使此包安装需要其他包的支持,也管不了那么多了。这个选项有时十分好用,明明自己系统中已经存在某个库,但是安装时就是说没有,不让安装,这个时候用此命令往往管用。
--ftpproxy <host>
使用<host>作为FTP代理服务器
--ftpport <port>
使用<port>作为FTP端口


通用选项(options)
-v
显示详细信息
-vv
显示调试信息(比-v还要详细的信息)
--root <path>
让rpm把<path>作为根目录来执行包的安装,选择这一项后,会影响许多方面,向pre-install和post-install脚本将<path>目录作为执行根目录,并且rpm数据库(由--dbpath指定)也会改变。一般此选项只是在初次安装系统,或由恢复盘(rescure disk)启动系统中时使用。
--rcfile <file>
选择<file>作为 'rpmrc'文件
--dbpath <path>
在<path>下寻找rpm数据库文件。一般的,在一个已经安装了RPM包的系统中,存在一些RPM数据库文件来记录已经安装了包的一些信息,缺省目录在"/var/lib/rpm/'下。

1.一些安装用法:
  #   rpm -ihv mypackage-1.00-1.rpm
  #   rpm -ihv --nodeps mypackage-1.00-1.rpm
  #   rpm -ivv --prefix /home/myroot mypackage-1.00-1.rpm

  2.升级一个包   
  #   rpm   -Uvh   
   
  3.移走一个包   
  #   rpm   -e   
   
  4.安装参数   
  --force   即使覆盖属于其它包的文件也强迫安装   
  --nodeps   如果该RPM包的安装依赖其它包,即使其它包没装,也强迫安装。   
   
  5.查询一个包是否被安装   
  #   rpm   -q   <   rpm   package   name>   
   
  6.得到被安装的包的信息   
  #   rpm   -qi   <   rpm   package   name>   
   
  7.列出该包中有哪些文件   
  #   rpm   -ql   <   rpm   package   name>   
   
  8.列出服务器上的一个文件属于哪一个RPM包   
  #rpm   -qf   
   
  9.可综合好几个参数一起用   
  #   rpm   -qil   <   rpm   package   name>   
   
  10.列出所有被安装的rpm   package   
  #   rpm   -qa   
   
  11.列出一个未被安装进系统的RPM包文件中包含有哪些文件?   
  #   rpm   -qilp   <   rpm   package   name>

[ 本帖最后由 灰儿 于 2009-2-5 09:54 编辑 ]
全部评论0
回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|小黑屋|管理员之家 ( 苏ICP备2023053177号-2 )

GMT+8, 2024-11-1 08:07 , Processed in 0.171502 second(s), 22 queries .

Powered by Discuz! X3.5

Cpoyright © 2001-2024 Discuz! Team