1.历史背景
(1)起初GNU/Linux系统中只有.tar.gz。用户必须自己编译他们想使用的每一个程序
(2)在Debian出现后,人们认为有必要在系统中添加一种机制用来管理安装在计算机上的软件包
(3)人们将这套系统称为dpkg,至此著名的package首次在GNU/Linux上出现
(4)不久之后红帽子(Redhat )也开始着手建立自己的包管理系统rpm
2.软件包管理系统概念
(1)软件包管理系统是在计算机中自动安装、配制、卸载和升级软件包的工具组合
(2)在各种系统软件和应用软件的安装管理中均有广泛应用
(3)在Linux发行版中,几乎每一个发行版都有自己的软件包管理系统
(4)使用软件包管理系统将大大简化在Linux发行版中安装软件的过程
3.软件包管理系统作用
(1)提供在操作系统中安装,升级,卸载需要的软件的方法
(2)提供对系统中所有软件状态信息的查询
4.Linux不同发行版本中用到的软件包管理系统总结
(1)DPKG(Debian Package)软件包管理器
<1>应用于基于DEB软件包的Linux发行版本(使用于Debian、Ubuntu)
<2>DEB是Debian软件包格式,文件扩展名为.deb
<3>Debian包是Unixar的标准归档,将包文件信息以及包内容,经过gzip和tar打包而成
<4>处理这些包的经典程序是DPKG
(2)DPKG软件包管理器的升级APT
<1>APT的全称为 Advanced Packaging Tools,更友好的包管理软件
<2>最早被设计成DPKG的前端软件,现在通过apt-rpm也支持rpm管理
<3>APT的主要包管理工具为APT-GET
<4>处理这些包的经典程序是dpkg,经常是通过apt来运作
(3)RPM(Redhat Package Manager)软件包管理器
<1>RPM,最早由Red Hat公司制定实施
<2>后被GNU开源操作系统接受并成为很多Linux系统 (RHEL) 的既定软件标准
<3>与RPM进行竞争的是基于Debian操作系统(UBUNTU)的DEB软件包管理工具-DPKG
(4)RPM软件包管理器的升级YUM
<1>YUM基于RPM包管理工具,被设计成RPM的前端软件
<2>能够从指定的源空间(服务器,本地目录等)自动下载目标RPM包并且安装
<3>自动处理依赖性关系并进行下载、安装,无须繁琐地手动下载、安装每一个需要的依赖包
<4>YUM 的另一个功能是进行系统中所有软件的升级
<5>作为RPM的前端软件使用于Red Hat Enterprise Linux
(5)RPM软件包管理器的的其余前端软件
<1>前端dnf(使用于Fedora)
<2>前端ZYpp(使用于openSUSE)
<3>前端urpmi(使用于Mandriva Linux、Mageia)等
6.APT、YUM等前端软件出现的原因
(1)由于开源的多态性,Linux 操作系统中的软件之间的依赖性关系处理一直令用户感到头疼
(2)软件之间包的依赖关系复杂
(3)为保证软件的正常使用,必须找到所有依赖包以及子依赖包并且安装很难实现
(4)过多的依赖关系大大降低了 Linux 软件安装的用户友好性
(5)针对此类问题,使用了更高级的包管理策略去解决 - YUM/APT