首页 > 技术文章 > 包管理介绍(DPKG,APT,RPM,YUM,DNF)

fjw3214 2018-08-02 17:58 原文

linux操作系统下载软件的方式与Windows有很大不同。软件通常都是存放在存储库中,并通过包的形式进行分发。处理包的工作被称为包管理。
比较常见的包管理工具有DPKG,APT,RPM,YUM,DNF等。熟悉Linux包管理操作可以让你更方便的使用linux系统。

首先说一下debian一系的。
debian 及其衍生版,如 Ubuntu的包格式是 .deb。在本地系统中可以使用 DPKG程序来安装单个的 deb 文件,还可以通过一些命令直接从软件仓库中下载。但是需要手工解决软件包的依赖关系。很多时候安装一个软件需要安装1个或者多个其他软件,手动解决时,很复杂。APT个是一个 dpkg 包管理系统的前端工具,它是一个非常受欢迎的、自由而强大的,有用的命令行包管理器系统。不需要自己解决安装包之间的依赖关系,比dpkg更方便。在基于 Debian 的 Linux 发行版中,有各种工具可以与 APT 进行交互,以方便用户安装、删除和管理的软件包。apt-get 便是其中一款广受欢迎的命令行工具,然而在Ubuntu16发布后又引入了新的命令行工具apt(和上面的APT包管理系统不一样)apt可以看作是apt-get的加强版,是apt-get,apt-cache,apt-config三种的集合,除此之外apt还具有其他的优点如显示进度条等。

dpkg常用的命令有

dpkg -i package.deb     #安装包
dpkg -r package         #删除包
dpkg -l package         #显示该包的版本
dpkg -l                 #列出当前已安装的

apt常用的命令有

apt install     package          #安装包      
apt remove      package          #卸载安装包
apt autoremove                   #检测并清除无用的安装包
apt update&upgrade    package    #更新所有安装包

另外就是Red Hat一系的,CentOS、Fedora 和其它 Red Hat 家族成员使用 rpm文件。rpm软件包形式的管理虽然方便但仍需要自己解决依赖关系。YUM是rpm的前端程序,主要目的是设计用来自动解决rpm的依赖关系, yum仓库用来存放所有的现有的.rpm包,当使用yum安装一个rpm包时,需要依赖关系,会自动在仓库中查找依赖软件并安装。仓库可以是本地的,也可以是HTTP、FTP、nfs形式使用的集中地、统一的网络仓库。

常用的rpm命令有

rpm -ivh    package.rpm      #安装软件包
rpm -Uvh    package.rpm      #升级软件包
rpm -e      package.rpm      #卸载软件包
rpm -qpi    package.rpm      #查询软件包的信息

常用的YUM命令

yum info        package     #查看软件包信息
yum install     package     #安装软件
yum remove      package     #卸载软件
yum check-update            #检查是否有可更新的软件包

在Fedora中又开始采用一种新的DNF包管理,是新一代的yum,欲以代替yum。DNF包管理器克服了YUM包管理器的一些瓶颈,提升了包括用户体验,内存占用,依赖分析,运行速度等多方面的内容。DNF使用 RPM, libsolv 和 hawkey 库进行包管理操作。在Fedora22中代替了yum。 DNF 并未默认安装在 RHEL 或 CentOS 7系统中,.要想安装 DNF ,您必须先安装并启用 epel-release 依赖。
在系统中执行以下命令:

yum install epel-release

yum install dnf

常用的DNF命令:

dnf info            package     #查看软件包信息
dnf install         package     #安装软件
dnf remove/erase    package     #卸载软件
dnf check-update                #检查是否有可更新的软件包
dnf autoremove                  #删除无用的软件包
dnf history                     #显示输入历史


推荐阅读