Linux包管理扫盲帖

  "Linux包管理扫盲帖"

Posted by     "华恒" on Thursday, January 14, 2016

TOC

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

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

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

发行版本 Lower-Level High-Level
Debian系 dpkg apt-get/aptitude
CentOS rpm yum
openSUSE rpm zypper

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

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系列包管理工具的入门扫盲介绍,大部分内容参考了这篇文章,目的是为了提供一个快速参考手册。