EN中文

Linux包管理扫盲帖

Linux的包管理系统五花八门,本文主要是对主流的Linux包管理系统之间的关系进行了梳理

  • Ryan
  • 阅读 2 分钟
/images/posts/linux-package-management.png

简单来说,Linux 包管理系统(package management) 指的是在Linux系统上安装删除或者更新软件的一种工具。不同Linux发行版本的应用软件打包格式各不相同, 譬如:Debian系列的Linux安装包格式为: *.deb; CentOS的为: *.rpm; openSUSE也是: *.rpm。 由于不同Linux发行版本安装包格式的差异性,也导致了不同Linix发行版之间包管理工具不尽相同。

关于各种Linux发行版本之间的关系可以参照这里

包管理系统也有Lower-Level跟High-Level之分,请看下面的表格:

发行版本Lower-LevelHigh-Level
Debian系dpkgapt-get/aptitude
CentOSrpmyum
openSUSErpmzypper

我们来看看它们之间具体的区别:

dpkg

dpkg是基于Debian的Linux系统的底层包管理工具,它可以安装,删除,打包deb 格式的软件包,也可以用于查询deb软件包的详细信息。但是dpkg不能自动下载安装一个软件所需要的相关三方依赖包。用法如下:

安装一个deb包:

# dpkg -i flashpluginnonfree_2.8.2+squeeze1_i386.deb

查看本机器安装的deb包:

# dpkg -l

更多的用法可以参考:这篇文章

apt-get

apt-get 是基于Debian的Linux系统的高层包管理工具,提供了非常方便的软件包自动查找,安装,删除等一系列功能。apt-get可以自动下载安装一个软件包需要的三方依赖包。但是apt-get跟dpkg有一个不同的地方在于,apt-get不能直接用于安装deb包; 对于apt-get,只要输入包的名字,apt-get就会自动的去中心仓库查找下载并安装相应的软件包。用法如下:

安装apache:

# apt-get install apache2

更多用法可以参考:这篇文章

aptitude

aptitude 提供跟apt-get类似的功能,但aptitude比apt-get更直观,aptitude提供了图形界面,用户可以非常方便地进行相关包管理操作。

rpm

rpm是Linux Standard Base(LSB)兼容的Linux系统(譬如说RHEL和CentOS)的底层包管理工具,总体来说功能跟dpkg类似。用法如下:

安装pidpin:

# rpm -ivh pidgin-2.7.9-5.el6.2.i686.rpm

更多用法可以参考:这篇文章

yum

yum在rpm的基础上提供高层包管理功能,功能与apt-get类似。用法如下:

安装firefox:

# yum install firefox

更多用法可以参考:这篇文章

综上所述,本文只是对Linux系列包管理工具的入门扫盲介绍,大部分内容参考了这篇文章,目的是为了提供一个快速参考手册。

Written by : Ryan

Writing about distributed systems, AI engineering, and production internals.

Recommended for You

deb包安装目录详解

deb包安装目录详解

对于Linux初学者来说,往往比较关心的一个问题是Linux系统里安装的软件,其文件究竟是放在哪个目录的?本文将对该问题进行简单的介绍

sed快速入门

sed快速入门

sed与awk堪称文本流处理神器,本文提供了sed命令的快速入门参考