Linux系统之程序包管理器

在早期我们使用源代码的方式来安装软件时,都需要先把源程序代码编译成可执行的二进制安装程序,然后进行安装。这就意味着每次安装软件都需要经过预处理-->编译-->汇编-->链接-->生成安装文件--> 安装,这个复杂而艰辛的过程。为简化安装步骤,便于广大用户的安装部署程序,程序提供商就在特定的系统上面编译好相关程序的安装文件并进行打包,提供给大家下载,我们只需要根据自己的系统去下载相应的安装包进行安装即可,其类似 Windows 的安装方式,由程序开发者直接在已知的系统上面编译好,再将该程序直接给用户来安装,如此而已。但是,程序包该怎么管理呢,这就是我们程序包管理器的事啦!

什么是程序包管理器
    用于管理Linux 下软件包的软件,其主要功能为:将编译好的程序打包成一个文件或有限的几个文件,可用于实现安装、卸载、升级、查询等功能。
程序包管理器的两大主流
      dpkg: 最早是由 Debian Linux 社群所开发出来的, 只要是衍生亍 Debian 的其他 Linux distributions 大多使用 dpkg 这个机制来管理软件的, 包括B2D, Ubuntu 等等,其前端工具有apt-get。
        RPM: 最早是由 Red Hat 这家公司开发出来的,后来实在太好用,因此很多distributions 就使用其来作为软件安装的管理方式。包括 Fedora, CentOS, SUSE 等等,其前端工具有yum。

程序包的组成格式与存放路径:
    1、二进制程序
        主要存放的路径:/bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin, /usr/local/APP/{bin,sbin}
        注意:有些特殊的应用程序放置于libexec目录中;有些第三方应用默认安装于/opt目录。
    2、库文件(开发库、运行库)
      主要存放的路径:/lib64, /usr/lib64, /usr/local/lib64, /usr/local/APP/lib
    3、配置文件
      主要存放的路径:/etc, /usr/local/APP/etc或conf目录
    4、帮助文件
      主要存放的路径:/usr/share/man, /usr/local/share/man, /usr/local/APP/man

RPM程序包管理器使用详解
RPM包的命名格式:

Linux系统之程序包管理器-RPM


    但对于一个程序来说,其可能具有很多功能,其中有些是常用功能,有些是特殊功能,有些是二次开发相关的功能,如果把所有的功能打包在一块,无疑程序包会增大很多,对一些普通用户无需使用的功能都需一并下载安装,无形间就造成了资源的浪费,特此在对程序包的打包就衍生出了分包机制,一般把程序分包成主包与子包。例如一个bash程序有20个功能:常用功能有10个,特殊A:4个,特殊B:3个,二次开发相关功能:3个,那么包的命名方式如下:
                核心包,主包:命名与源程序一致
                    bash-4.2.3-3.centos7.x86_64.rpm
                子包:
                    bash-a-4.2.3-3.centos7.x86_64.rpm
                    bash-b-4.2.3-3.centos7.x86_64.rpm
                    bash-devel-4.2.3-3.centos7.x86_64.rpm


  RPM-安装程序包:
          命令格式: rpm [option] /path/to/package_file...
            常用选项说明:
                              -i:安装程序;
                              -v:显示安装执行过程;
                            -vv:详细显示安装执行过程;
                            -vvv:更详细的显示安装执行过程;
                            -h:用#来标记安装进度
                              常用组合选项:-ivh
                              --test: 仅作测试,没有真正执行安装
                              --nodeps:忽略依赖关系,强制安装,能安装上,但有可能无法运行
                              --replacepkgs:重新安装,如果原有配置文件作了修改,很有可能不执行替换,而是将应该安装生成的配置文件重命名为 .rpmnew
[root@CentOS6 Packages]# rpm -ivh zsh-4.3.10-7.el6.i686.rpm --test
Preparing...                ########################################### [100%]
[root@CentOS6 Packages]# rpm -ivh zsh-4.3.10-7.el6.i686.rpm 
Preparing...                ########################################### [100%]
  1:zsh                    ########################################### [100%]

[注意]:该命令后面接的是RPM包文件,可以用空格做分割同时安装多个程序,如电脑可以上网的话,也可以直接指定网络上的RPM包,进行安装。

RPM-卸载程序包:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/16346.html