rpm程序包管理

一,linux下安装程序的方法

     程序由源代码编译而来,在linux下我们可以通过编译源代码的方式来安装软件。但这种方法对操作人员的要求相对较高,并且在编译的过程中会产生各种运行此程序所必须的文件,这些文件被放置在系统中不同的目录下,不便于管理。因此linux发行版的发行商,通常会把源程序编译后,以特定的组织形式提供给用户,并且提供相应的程序包管理工具来管理此类程序包。rpm就是这样一类程序包管理器。

rpm最早适用于redhat系列的linux发行版,而现在它已经以其优秀的特性被LSB(linux标准委员会)定为linux上程序包管理器的行业标准。

二,rpm包简介

    一般来讲,程序由二进制文件,库文件,配置文件,帮助文件等,四部分组成,按照LSB指定的FHS规格规定,这些文件需要被放置在不同的路径下(当然这不是必须的,不在规定路径下放置,程序未必不能运行),使用rpm程序包管理器管理程序,会在/var/lib/rpm生成数据库文件,记录安装程序的详细信息,以方便后期的卸载,升级,查询等工作。

     使用rpm安装软件,首先得有对应平台下的rpm程序包。程序包的命名方式一般是这样的:appname-VERSION-RELEASE.ARCH.rpm,例如zsh-4.3.10-9.el6.x86_64.rpm,有给出版本平台相关信息,使用rpm程序包的时候一定要选择对应的程序包哦。

三,rpm的使用方法

    作为程序包管理器,其功能主要包括:安装,卸载,升级,查询,校验等五方面的内容下面我们来简单介绍下他们的用法。

    1,安装

     语法:rpm {-i|--install} [install-options] PACKAGE_FILE1...

     安装一个程序包最简单的命令可以表示为rpm -i package.rpm。当然rpm还提供了更多的选项来给我们使用,常用的安装选项有:

     -v:显示安装过程,-vv则表示显示更详细的安装过程。

     -h:以#号来的形式来显示安装进度,每个#号表示5%的进度。

     --test:不执行真正的安装过程,而仅报告依赖关系及冲突信息等。

     --nodeps:表示忽略依赖关系,当所安装程序依赖的软件包不存在时仍然继续安装。这样可能会导致程序虽然安装成功,但不能成功运行的情况。

    --force:强制安装软件包。

        --relocate:把允许修改安装路径的程序包的安装路径定位到新路径下。很多程序包是不允许修改安装路径的哦。

   2,卸载

    语法:rpm {-e|--erase} [--allmatches] [--nodeps] [--test] PACKAGE_NAME ...

    卸载软件包只需要指定安装过的rpm包的报名即可。个人觉得卸载常用的选项主要有两个:

    --nodeps:忽略依赖关系,即当正在卸载的软件被其它软件依赖时,忽略依赖关系,继续执行卸载行为。

        --test:测试卸载,不执行真正的卸载过程。

   3,升级

    跟升级相关的选项有两个-F和-U,这两个选项有所不同。

         rpm{-F|--freshen} [install-options] PACKAGE_FILE ...表示如果要升级的程序不存在old的版本,则不执行安装过程,存在old版,则执行升级安装的过程。

        rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...表示如果要升级的安装包已经安装过,就升级,没有安装过,就继续执行安装过程。

    使用-F还是-U要根据我们的需要来选择哦。

   4,查询

    个人觉得挺重要的一个功能。

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

   rpm -q PACKAGE_NAME:显示已经安装过的程序包的信息。

wKioL1Uub7GDWPZKAACaBOgtHRs263.jpg

rpm -qa:显示该系统上已经安装过的所有程序包。当然我们可以同过管道命令执行其它的操作哦。

rpm -qf FILE_NAME:查询某文件由哪个包安装生成。

wKiom1Uub5aCgBQuAAC-JWMoys4495.jpg

    rpm -qi PACKAGE_NAME:查询已安装过的某包的简要说明信息,PACKAGE_NAME指的是appname-VERSION-RELEASE.ARCH.rpm中的appname,而不能是安装包文件的文件名。

wKioL1Uucw_x1BkoAALoDKxDpRo616.jpg

    rpm -ql PACKAGE_NAME:查询某包生成的文件列表

    wKioL1Uuc5OQROOPAABgD7ekmGw769.jpg

    rpm -qc PACKAGE_NAME:查询某包安装完成后生成的所有配置文件。

   rpm -qd PACKAGE_NAME:查询某包安装完成后生成的所有帮助文件。

    rpm -q --changelog :查看某包制作时随版本变化的changelog信息,了解该程序包的前世今生,很有用的哦。

   rpm -q --provides PACKAGE_NAME:查询某包提供的capabilities。

   rpm -q --requires PACKAGE_NAME:查询某包所依赖的capabilities。

   5,校验

    常见用法:rpm -V PACKAGE_NAME,查询程序包安装完成后,是否被修改过,包括配置文件。


你可能感兴趣的:(配置文件,详细信息,管理程序)