zoukankan      html  css  js  c++  java
  • RPM包管理命令rpm

    RPM包管理器是由Red Hat推出的应用软件管理器(过去的RPM就是Red Hat Package Manager的缩写)。RPM包管理器是Linux系统中最早的软件包管理软件之一,也是目前最流行的软件包管理器,许多发行版都使用RPM作为默认的软件包管理软件。

    一、RPM包管理器简介

    【软件依赖性】

    与Windows系统中的软件不同,Linux系统中的软件将不同的功能模块单独写入到不同的软件包中,最后将多个相互依存的软件包结合起来形成一个应用程序。虽然这在Windows中也经常使用,但Linux系统中的软件模块划分得更小、功能更单一。因此在安装功能性软件时,通常需要安装许多与其具有依赖关系的软件包,这就是Linux系统中的软件依赖性。

    【RPM包管理器】

    在早期的系统中,安装应用程序是一件非常麻烦的事情,需要编译许多软件包才能完成应用程序的安装。为了解决这个问题,Red Hat公司开发了一个包管理器,早期的包管理器名为Red Hat Package Manager。

    虽然名中带有Red Hat,但这是一个基于GPL协议的开源软件。Red Hat公司鼓励广大的Linux系统发行商了解和使用RPM包管理器。由于Red Hat的积极推广,现在许多Linux发行版都使用RPM作为默认的包管理器。现在RPM的含义是RPM Package Manager,有RPM社区负责维护。

    【RPM软件包名称格式】

    RPM软件包名称都有一个固定的格式,以文件服务程序Samba的客户端软件包为例,格式为samba-client-3.0.33-3.7.el5.i386.rpm。这个软件包名称中各部分的含义如下:

    samba-client:最前面的为软件包名称。

    3.0.33-3.7:3.0.33表示软件包的主要版本号,紧跟在后面的3.7表示软件发布的次要版本号。

    el5:表示适用于Red Hat Enterprise Linux 5系统。fc6表示适用于Fedora Core Linux 6系统。

    i386:表示硬件平台。有些软件包的硬件平台为noarch,表示该软件包没有硬件平台的限制。

    .rpm:表示这是一个RPM软件包。有些软件包最后是src.rpm,表示软件包内含有源代码。

    二、rpm命令基本格式

    【命令格式】

    rpm [option…]

    【常用选项】

    q:使用查询模式。

    a:查询所有软件包。

    i:显示详细信息。如果指定了软件包,则安装软件包。

    l:显示软件包的文件列表。

    p:查询指定的软件包。

    f:查询指定文件所属软件包。

    v:显示命令执行过程。

    h:安装软件包时显示进度信息。

    e:卸载指定的软件包。

    U:升级软件包。

    force:长格式选项,强制操作,忽略操作过程中的冲突。

    nodeps:长格式选项,忽略操作过程中的软件依赖性,强制操作。

    oldpackages:忽略冲突,强制升级软件包。

    在上面的选项中,显示详细信息选项i对应的长格式为info;而安装软件包时,其对应的长格式为install。这两个长格式对应的短格式选项都是i,使用时需注意区别。

    三、使用rpm命令查询软件包

    1、查询已安装的软件

    (1)例如要查询系统中是否装有一个名为samba-client的软件包:

    [root@localhost ~]# rpm -q samba-client

    提示:使用选项q加软件包名的方式查询时,必须使用软件包全名,否则将无法查询到任何结果。

    (2)有时可能会忘记某个软件包的具体名称,此时可以使用选项a显示系统中已经安装的所有软件包:

    [root@localhost ~]# rpm -qa

    (3)为了能够使用模糊查询,可以在查询全部软件包的同时,配合使用grep命令模糊查询。例如查询当前系统中软件名称包含ssh的软件包:

    [root@localhost ~]# rpm -qa | grep ssh
    openssh-clients-4.3p2-24.el5
    openssh-4.3p2-24.el5
    openssh-server-4.3p2-24.el5
    openssh-askpass-4.3p2-24.el5

    (4)许多时候需要查看软件包的详细信息。这是可以配合使用选项i,显示指定软件包的详细信息。例如查看软件包chkconfig的详细信息:

    [root@localhost ~]# rpm -qi chkconfig
    Name        : chkconfig                    Relocations: (not relocatable)
    Version     : 1.3.30.1                          Vendor: Red Hat, Inc.
    Release     : 1                             Build Date: Sat 02 Dec 2006 03:29:31 AM CST
    Install Date: Tue 12 Nov 2013 11:52:00 PM CST      Build Host: hs20-bc2-2.build.redhat.com
    ...

    2、查询软件包中的文件

    查询软件包中的文件主要使用选项l和f。

    (1)查看软件包chkconfig中包含的详细文件列表:

    [root@localhost ~]# rpm -ql chkconfig
    /etc/alternatives
    /etc/init.d
    /etc/rc.d/init.d
    /etc/rc.d/rc0.d
    /etc/rc.d/rc1.d
    ...

    (2)查看软件包的安装文件中的文件列表,这时可以使用选项p指定输入的参数为一个软件包文件:

    [root@localhost ~]# rpm -qpl samba-client-3.0.33-3.7.el5.i386.rpm

    (3)也可以使用选项p和i查看软件包的概况:

    [root@localhost ~]# rpm -qpi samba-client-3.0.33-3.7.el5.i386.rpm

    (4)有时也可能需要反向查询一个文件对应的软件包,这种情况可能是无意中删除了一个文件,需要知道应该重新安装的软件包的名称。这是可以使用选项f指定要查询的文件。例如:

    [root@localhost ~]# rpm -qf /bin/ls
    coreutils-5.97-12.1.el5

    此时就可以重新安装命令输出的软件包,恢复删除的文件。

    四、使用rpm命令安装软件包

    注意:安装下载的软件包时,应该注意软件包对应的版本和硬件平台,否则可能出现无法安装或安装后无法正常使用的情况。

    【获取软件包】

    获取软件包有两种方法:(1)RHEL5.3的光盘(或光盘镜像)中自带的软件包,通常位于光盘根目录的Server子目录中。(2)从互联网下载软件包。

    如果手边没有现成的安装光盘,也不知道软件的官方网站,可以尝试在Repoforge.org的软件仓库中查找。

    Repoforge.org软件包仓库:http://pkgs.repoforge.org/    它是一个专业提供软件包、源码的下载站点。

    (1)最常用的安装选择组合:

    [root@localhost ~]# rpm -ivh gcc-4.1.2-44.el5.i386.rpm

    (2)许多安装包会遇到依赖性问题,即在安装应用程序之前,应该先安装能让应用程序正常工作的前提软件包。

    如果遇到软件包存在依赖性问题,应该先安装软件所依赖的前提软件包,或在同一条命令中同时安装前提软件包(只需将多个rpm包以空格分开都放在rpm –ivh 后面即可)。

    (3)有时管理员肯能需要忽略软件包的依赖性,强制安装软件包,此时可以使用选项nodeps,这个选项适合于依赖性错误的情况,例如有些软件包可能会依赖其自身或间接依赖其自身。

      有时误删除一个文件,需要重新安装时,rpm命令会提示文件冲突,此时可以使用选项force忽略软件包、文件冲突,强制安装软件包。

    五、使用rpm命令卸载软件包

    [root@localhost ~]# rpm -e samba-client

    六、使用rpm命令升级软件包

    (1)使用选项U升级软件包(假设原来系统中安装了比bzip2-libs-1.0.3-3版本低的bzip2-libs版本,现在可以使用bzip2-libs-1.0.3-3.i386.rpm软件包升级原来的低版本为bzip2-libs-1.0.3-3版本):

    [root@localhost Server]# rpm -Uvh  bzip2-libs-1.0.3-3.i386.rpm

    (2)由于系统中安装有低版本的软件,因此在安装过程中可能会出现冲突,导致升级失败,此时可以使用选项oldpackage强制升级:

    [root@localhost Server]# rpm -Uvh --oldpackage bzip2-libs-1.0.3-3.i386.rpm
  • 相关阅读:
    Linux 启动过程详解
    ASM实例原始磁盘搜索路径
    RMAN命令总结
    使用DUPLICATE 方式创建ORACLE 11G DG备库环境
    Dataguard中日志传输服务
    Material design之Material Theme
    创建一个Material Design应用过程
    android Material design是什么
    Android 最新L版本,都更新什么东西了
    AndroidHttpClient和HttpEntity详解
  • 原文地址:https://www.cnblogs.com/nufangrensheng/p/3474090.html
Copyright © 2011-2022 走看看