rpm 

一、功能:添加/删除程序

1、RPM 的全称为Redhat Package Manager 

2.

-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:删除包


3、

-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)


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




二、应用

(1)安装

1.-ivh    rpm-ivh Linux-1.4-6.i368.rpm

      强制rpm-ivh  -replacepkgs  Linux-1.4-6.i368.rpm

2.-Fvh  

 

(2)卸载

1、-e  


(3)验证

  1. rpm -qa|grep  *


(4)定位

1、-qf:能查找该文件属于某个文件夹

(5)升级

1.-Uvh  

2.-Fvh   如果后面的软件包没有安装,这个程序不安装


(6)通过FTP在线安装

1、rpm -i ftp://ftp.pht.com/pub/linux/redhat/...-1.4-6.i368.rpm  

(7)查找损坏文件

1、若误删几个文件而影响系统性能

2、-Va


(8)校验

1、-K   表示检查软件包的完整性




--nodeps忽略包依赖使用时机:当发生软件属性相依问题而无法安装,但你执意安装时
危险性: 软件会有相依性的原因是因为彼此会使用到对方的机制或功能,如果强制安装而不考虑软件的属性相依, 则可能会造成该软件的无法正常使用!
--force忽略包和文件冲突使用时机:这个参数其实就是 --replacefiles 与 --replacepkgs 的综合体!
--replacefiles强制安装包,无论是否安装了使用时机: 如果在安装的过程当中出现了『某个文件已经被安装在你的系统上面』的资讯,又或许出现版本不合的信息 (confilcting files) 时,可以使用这个参数来直接覆盖文件。
危险性: 覆盖的动作是无法复原的!所以,你必须要很清楚的知道被覆盖的文件是真的可以被覆盖喔!否则会欲哭无泪!
--replacepkgs强制安装包,无论是否安装了使用时机: 重新安装某个已经安装过的软件!如果你要安装一堆 RPM 软件文件时,可以使用 rpm -ivh *.rpm ,但若某些软件已经安装过了, 此时系统会出现『某软件已安装』的资讯,导致无法继续安装。此时可使用这个选项来重复安装喔!
--test安装测试,并不实际使用时机: 想要测试一下该软件是否可以被安装到使用者的 Linux 环境当中,可找出是否有属性相依的问题。范例为:
rpm -ivh pkgname.i386.rpm --test
--justdb
使用时机: 由於 RPM 数据库破损或者是某些缘故产生错误时,可使用这个选项来升级软件在数据库内的相关资讯。
--nosignature
使用时机: 想要略过数码签章的检查时,可以使用这个选项
--prefix 新路径规定安装目录使用时机: 要将软件安装到其他非正规目录时。举例来说,你想要将某软件安装到 /usr/local 而非正规的 /bin, /etc 等目录, 就可以使用『 --prefix /usr/local 』来处理了。
--noscripts
使用时机:不想让该软件在安装过程中自行运行某些系统命令。
说明: RPM 的优点除了可以将文件放置到定位之外,还可以自动运行一些前置作业的命令,例如数据库的初始化。 如果你不想要让 RPM 帮你自动运行这一类型的命令,就加上他吧!




------------------------------------------转载-------------------------------------------




rpm命令的使用:
       1、安装rpm包:
                   -i   表示进行安装操作
                   -v  表示报告每一步操作的情况
                   -h  表示使用hash ”#”指示安装进度
                   --replacepkgs   系统中已经存在了软件包,那么如果再要强行安装时,可以使用这个参加来忽略错误
                   --nodeps   忽略检查软件之间的依赖关系
    例:
      rpm -i zsh-4.0.7-1.i386.rpm            #基本安装                    rpm -ivh 
zsh-4.0.7-1.i386.rpm        #安装时显示安装过程     

      rpm -ivh --noplacepkgs zsh-4.0.7-1.i386.rpm       #软件已被安装,强行再次安装
      rpm -ivh --nodeps mysql-4.1.7-4.RHEL4.1.i386.rpm  #解决相互领事问题

2、升级rpm包:
   -U   表示进行升级操作(软件的升级安装分为两步:一是卸载旧版本软件;二是安装新版本软件。 为了保留用户对原软件的配置,软件的配置文件在升级过程中会保留)
   -F   表示只升级系统中存在的软件 (这个参数可以先检查系统中是否已经有了旧的版本,如果有就执行升级操作,如果没有,就跳过这个rpm包,继续处理下一个rpm包。)

   例:
     rpm -Uvh 
zsh-4.0.7-1.i386.rpm   #要用zsh-4.0.7-1.i386.rpm升级旧版本的zsh软件
     rpm -Fvh *.rpm               #批量升级系统中的软件可以使用的命令
3、降级rpm包:
    --oldpackage   忽略错误信息,直接进行降级操作
    例:rpm -Uvh --oldpackage 
zsh-4.0.7-1.i386.rpm     #对zsh进行降级操作
4、卸载rpm包:
    -e   表示进行卸载操作
    --nodeps     表示忽略检查依赖关系
   例:rpm -e zsh  (注意这里的软件名是软件的名称,不包括软件的版本号)
      rpm -e --nodeps httpd   
5、查询rpm包
    -q   表示进行查询操作
    -i     表示显示软件包的概要信息
    -l     表示显示软件包中的文件列表
    -a   表示查询所有已安装的rpm包
    -f     表示根据文件进行相关的查询
    例:
      rpm -q gzip  查询系统中是否已经安装了gzip这个软件包
      rpm -qi gzip   查询gzip包的概要信息
      rpm -ql gzip   查询gzip这个rpm包里都有那些文件,以及列出这些软件
      rpm -qa | grep "zip"    查询系统中所有的安装包中是否包含有zip这个软件包
      rpm -qf /etc/ntp.conf      查询/etc/ntp.conf这个文件属于那个rpm包
6、校验rpm包
     -K   表示检查软件包的完整性
     --nosignature      表示不验证软件包的签名

   例:
     rpm -K --nosignature zsh-4.0.7-1.i386.rpm  校验
zsh-4.0.7-1.i386.rpm文件包,但不校验签名

Update 2006.12.20

安装srpm软件包:
   扩展名为.src.rpm的软件包,是源程序rpm包(srpm),这种形式的软件包其实就是包含了软件的源代码,安装时需要进行编译才能完成安装。但它与 直接使用源代码发布的软件包最大的区别在于,安装src.rpm时,系统会根据当前的体系结构和操作系统的类型来产生相应的二进制rpm安装包,然后再安 装生成的rpm软件包,既保留源代码发布的软件包能适宜与多种硬件和操作系统平台的优点,又能继承rpm安装包的方便性。
  安装方法:
      1、生成二进制rpm安装包
        rpmbuild --rebuild 文件名
        --rebuild   表示将srpm软件包编译并在/usr/src/RedHat/RPMS/I386目录下生成二进制rpm安装包
       例:rpmbuild --rebuild dvd + rw -tools-5.21.4.10.8-6.src.rpm
     2、安装rpm安装包
         进入到/usr/src/RedHat/RPMS/I386目录下,可以发现rpmbuild已经生成了rpm安装包,直接使用rpm命令就可以安装,命令如下:
         rpm -ivh dvd + rw -tools-5.21.4.10.8-6.src.rpm

安装源代码发布软件包:
  使用源代码安装软件,能按照用户的需要选择用户制定的安装方式进行安装,而不是仅仅依靠那些在安装包中的预置的参数选择进行安装,为用户安装软件带来了很大的灵活性。同时,目前还有许多软件仍然只使用源代码发布,所以掌握源代码发布软件包的安装方法就相当的重要。
   安装步骤:
       1、解包解压缩
       2、配置、编译、和安装软件
   具体步骤:
       1、解包解压缩:
          tar包:tar xvf filename.tar     #这种安装包直接使用命令tar打包而成

          tar.gz包:tar zxvf filename.tar.gz  #这种安装包使用tar命令打包加上gzip命令压缩而成,需要保证系统中安装了gzip软件
          tar.Z包:tar Zxvf filename.tar.Z  #这种安装包使用tar命令打包加上compress命令压缩而成,需要保证系统安装了ncompress软件
          tar.bz2包:tar jxvf filename.tar.bz2    #这种安装包使用tar命令打包加上bzip2命令压缩而成,需要保证系统中安装了bzip2软件
        2、配置、编译、安装软件
           在配置、编译、安装之前,进入到软件包解压后的目录,阅读软件的相关说明文件,如Readme或者Install,了解安装的需求,配置参数以及注意事项等。
         配置:  . /configure   如果要安装到指定的目录,可以用“
--prefix”参数 /configure --prefix = /usr/local/freeradius其实源程序目录中的configure命令是一个可执行脚本,,首先会检查当前系统是否有符合软件编译安装的相关环境(如是否有GNU C/C++编译器等),然后根据它从系统中读出各种所需的属性在当前目录生成Makefile文件供编译安装使用。
       编译:Make是Unix和Linux系统下最常用的二进制程序和函数编译工具。Make通过读取当前目录下文件Makefile的内容来自动完成编译工作。 Makefile文件需要按照某种语法进行编写,文件中需要说明如何编译各个源文件并连接生成可执行文件,并要求定义源文件之间的依赖关系,一般是由 configure脚本来生成。对于一些小软件,也可能不需要运行configure脚本,软件已经自带了Makefile文件。

         安装:make install
         清理临时文件:make clean

卸载源代码发布软件:
        源代码发布软件会将文件分散安装在系统的多个目录中,往往很难删除。有些软件包的源代码在编译安装后可以在源程序目录中运行“
make uminstall”命令来进行卸载,如果不提供此功能,那么就得手动卸载。所以在安装软件时,如果能使用configure脚本的“--prefix” 参数来指定安装目录名时,卸载软件可直接使用“rm -rf”f直接删除就成。不过,最好参考软件的卸载部分的帮助信息。