Linux软件管理之RPM

首先我们来看一下一个软件的开发到正常运行的流程

wKiom1PLf3mBWEyfAAEYl3Uqe0M931.jpg

由于源代码中含有很多个程序片段,每个片段可能实现的功能不尽相同,而这些片段的编译是有一定的次序要求的也就是说他们很可能相互依赖。所以这给普通用户造成一种麻烦就是:想要编译此程序就必须看懂此代码并能知道各个片段的依赖关系;也许你会说直接把这些片段直接写在一段程序中不就可以了,但是这样会给程序员开发测试造成很大的困难。所以autoconfig闪亮登场它可以生成编译环境检查及编译功能配置脚本,即为configure。而automake会解决各片段的依赖关系生成Makefile.ini 至此源代码包制作完毕。

wKioL1PLgNSDbIlQAAGnaz8rg1c309.jpg

用户在拿到源代码包后利用可执行程序configure结合Makefile.ini生成自己定制的makefile文件make命令根据此文件进行编译 最后makeinstall安装程序至此程序安装成功。


什么是RPM ??

   RPMReadhat Package Manager的缩写,后来由于此软件的管理方式成为了工业标准所以更名为 RPM is Package Manager

  rpm包的命名格式:name-version-relase.arch.rpm

  RPM命令的格式及常用选项:

  rpm     [option]   /path/to/package_file 

      -i: 表示安装

  -v:显示详情

  -h:显示安装进度

          --test: 仅作测试,有真正执行安装

例子:rpm -ivh  httpd-2.2.15-29.el6.centos.x86_64.rpm

wKiom1PLf_CRSU9ZAAGWm6U3cts227.jpg

如果依赖于其它包:

1、解决依赖关系

2、忽略依赖关系 能安装上,但有可能无法运行;--nodeps

重新安装:--replacepkgs

 

 

卸载程序包:-e: erase

例如:rpm  -evh  httpd

wKiom1PLgCTzHTDOAADmqZ5Xg6g691.jpg

升级程序包:

 -U:表示升级若此包没有安装则安装

         -F:表示只升级已有的包

         --force: 强制升级

 

查询操作:

 -q  查询某包是否安装

 

         -qa 查询所有已经安装的包

wKiom1PLgFKxeB43AABWBD2HMEU022.jpg

        -qi 查询包的描述信息

wKioL1PLgY6jPhK-AAQqw0D-Su8287.jpg

     -ql 查询某包安装生成了哪些文件

wKiom1PLgJaAV2TPAAIX9dg0PlU021.jpg

    

   -qc 查询某包安装生成了哪些配置文件

wKioL1PLgdrAjSaHAACu6s3mY5M899.jpg


  

   -qd 查询某包安装生成了哪些帮助文件

wKioL1PLggKToYQtAALaA1WlLU0888.jpg



  -q --scripts 查询程序包的相关脚本

wKiom1PLgSvCq98sAAG6zcVOIBs092.jpg



    -qf /path/to/some_file 查询某文件是由哪个包安装生成的

wKioL1PLgoSDrRbRAABhD4e-anU615.jpg


 

     --import /path/to/key_file 在当前系统上导入包的制作者的公钥

数据库重建:

        数据库目录:/var/lib/rpm

            rpm --initdb:初始化如果事先没有库,会新建一个;如果有,则不新建;

            rpm --rebuilddb: 直接重建,覆盖原有的数据库

 


你可能感兴趣的:(linux,rpm,软件管理)