TranslateProject/translated/tech/LFCS/Part 9 - LFCS--Linux Package Management with Yum RPM Apt Dpkg Aptitude and Zypper.md
Flowsnow 5e57554104 Signed-off-by: Flowsnow <snowlight437@gmail.com>
[已翻译]Part 9 - LFCS: Linux Package Management with Yum, RPM, Apt, Dpkg, Aptitude and Zypper
2015-12-05 16:07:43 +08:00

12 KiB
Raw Blame History

Flowsnow translating... LFCS系列第九讲: 使用Yum RPM Apt Dpkg Aptitude Zypper进行Linux包管理

去年八月, Linux基金会宣布了一个全新的LFCSLinux Foundation Certified SysadminLinux基金会认证系统管理员认证计划这对广大系统管理员来说是一个很好的机会管理员们可以通过绩效考试来表明自己可以成功支持Linux系统的整体运营。 当需要的时候一个Linux基金会认证的系统管理员有足够的专业知识来确保系统高效运行提供第一手的故障诊断和监视并且为工程师团队在问题升级时提供智能决策。

Linux Package Management

Linux基金会认证系统管理员 第九讲

请观看下面关于Linux基金会认证计划的演示。

youtube 视频

本文是本系列十套教程中的第九讲今天在这篇文章中我们会引导你学习Linux包管理这也是LFCS认证考试所需要的。

包管理

简单的说,包管理是系统中安装和维护软件的一种方法,其中维护也包含更新和卸载。

在Linux早期程序只以源代码的方式发行还带有所需的用户使用手册和必备的配置文件甚至更多。现如今大多数发行商使用默认的预装程序或者被称为包的程序集合。用户使用这些预装程序或者包来安装该发行版本。然而Linux最伟大的一点是我们仍然能够获得程序的源代码用来学习、改进和编译。

包管理系统是如何工作的

如果某一个包需要一定的资源,如共享库,或者需要另一个包,据说就会存在依赖性问题。所有现在的包管理系统提供了一些解决依赖性的方法,以确保当安装一个包时,相关的依赖包也安装好了

打包系统

几乎所有安装在现代Linux系统上的软件都会在互联网上找到。它要么能够通过中央库中央库能包含几千个包每个包都已经构建、测试并且维护好了发行商得到要么能够直接得到可以下载和手动安装的源代码。

由于不同的发行版使用不同的打包系统Debian的*.deb文件/ CentOS的*.rpm文件/ openSUSE的专门为openSUSE构建的*.rpm文件因此为一个发行版本开发的包会与其他发行版本不兼容。然而大多数发行版本都可能是LFCS认证的三个发行版本之一。

高级和低级打包工具

为了有效地进行包管理的任务,你需要知道,你将有两种类型的实用工具:低级工具(能在后端实际安装,升级,卸载包文件),以及高级工具(负责确保能很好的执行依赖性解决和元数据检索的任务,元数据也称为关于数据的数据)。

注:表格

发行版 低级工具 高级工具
 Debian版及其衍生版  dpkg  apt-get / aptitude
 CentOS版  rpm  yum
 openSUSE版  rpm  zypper

让我们来看下低级工具和高级工具的描述。

dpkg的是基于Debian系统中的一个低级包管理器。它可以安装删除提供有关资料并建立*.deb包但它不能自动下载并安装它们相应的依赖包。

apt-get是Debian和衍生版的高级包管理器并提供命令行方式从多个来源检索和安装软件包其中包括解决依赖性。和dpkg不同的是apt-get不是直接基于.deb文件工作而是基于包的正确名称。

Aptitude是基于Debian的系统的另一个高级包管理器它可用于快速简便的执行管理任务安装升级和删除软件包还可以自动处理解决依赖性。与atp-get和额外的包管理器相比它提供了相同的功能例如提供对包的几个版本的访问。

rpm是Linux标准基础LSB兼容发布版使用的一种包管理器用来对包进行低级处理。就像dpkgrpm可以查询安装检验升级和卸载软件包并能被基于Fedora的系统频繁地使用比如RHEL和CentOS。

相对于基于RPM的系统yum增加了系统自动更新的功能和带依赖性管理的包管理功能。作为一个高级工具和apt-get或者aptitude相似yum基于库工作。

低级工具的常见用法

你用低级工具处理最常见的任务如下。

1. 从已编译(.deb或.rpm的文件安装一个包

这种安装方法的缺点是没有提供解决依赖性的方案。当你在发行版本库中无法获得某个包并且又不能通过高级工具下载安装时,你很可能会从一个已编译文件安装该包。因为低级工具不需要解决依赖性问题,所以当安装一个没有解决依赖性的包时会出现出错并且退出。

# dpkg -i file.deb 		[Debian版和衍生版]
# rpm -i file.rpm 		[CentOS版 / openSUSE版]

注意 不要试图在CentOS中安装一个为openSUSE构建的.rpm文件反之亦然

2. 从已编译文件中更新一个包

同样,当中央库中没有某安装包时,你只能手动升级该包。

# dpkg -i file.deb 		[Debian版和衍生版]
# rpm -U file.rpm 		[CentOS版 / openSUSE版]

3. 列举安装的包

当你第一次接触一个已经在工作中的系统时,很可能你会想知道安装了哪些包。

# dpkg -l 		[Debian版和衍生版]
# rpm -qa 		[CentOS版 / openSUSE版]

如果你想知道一个特定的包安装在哪儿, 你可以使用管道命令从以上命令的输出中去搜索,这在这个系列的操作Linux文件 第一讲 中有介绍。假定我们需要验证mysql-common这个包是否安装在Ubuntu系统中。

# dpkg -l | grep mysql-common

Check Installed Packages in Linux

检查安装的包

另外一种方式来判断一个包是否已安装。

# dpkg --status package_name 		[Debian版和衍生版]
# rpm -q package_name 			[CentOS版 / openSUSE版]

例如让我们找出sysdig包是否安装在我们的系统。

# rpm -qa | grep sysdig

Check sysdig Package

检查sysdig包

4. 查询一个文件是由那个包安装的

# dpkg --search file_name
# rpm -qf file_name

例如pw_dict.hwm文件是由那个包安装的

# rpm -qf /usr/share/cracklib/pw_dict.hwm

Query File in Linux

Linux中查询文件

高级工具的常见用法

你用高级工具处理最常见的任务如下。

1. 搜索包

aptitude更新将会更新可用的软件包列表并且aptitude搜索会根据包名进行实际性的搜索。

# aptitude update && aptitude search package_name

在搜索所有选项中yum不仅可以通过包名还可以通过包的描述搜索程序包。

# yum search package_name
# yum search all package_name
# yum whatprovides “*/package_name”

假定我们需要一个名为sysdig的包要知道的是我们需要先安装然后才能运行。

# yum whatprovides “*/sysdig”

Check Package Description in Linux

检查包描述

whatprovides告诉yum搜索一个含有能够匹配上述正则表达式的文件的包。

# zypper refresh && zypper search package_name		[在openSUSE上]

2. 从仓库安装一个包

当安装一个包时,在包管理器解决了所有依赖性问题后,可能会提醒你确认安装。需要注意的是运行更新或刷新(根据所使用的软件包管理器)不是绝对必要,但是考虑到安全性和依赖性的原因,保持安装的软件包是最新的是一个好的系统管理员的做法。

# aptitude update && aptitude install package_name 		[Debian版和衍生版]
# yum update && yum install package_name 			[CentOS版]
# zypper refresh && zypper install package_name 		[openSUSE版]

3. 卸载包

按选项卸载将会卸载软件包,但把配置文件保留完好,然而清除包从系统中完全删去该程序。

aptitude remove / purge package_name

yum erase package_name

---注意要卸载的openSUSE包前面的减号 ---

# zypper remove -package_name

在默认情况下,大部分(如果不是全部)的包管理器会提示你,在你实际卸载之前你是否确定要继续卸载。所以,请仔细阅读屏幕上的信息,以避免陷入不必要的麻烦!

4. 显示包的信息

下面的命令将会显示birthday这个包的信息。

# aptitude show birthday
# yum info birthday
# zypper info birthday

Check Package Information in Linux

检查包信息

总结

作为一个系统管理员包管理器是你不能回避的东西。你应该立即准备使用本文中介绍的这些工具。希望你在准备LFCS考试和日常工作中会觉得这些工具好用。欢迎在下面留下您的意见或问题我们将尽可能快的回复你。


via http://www.tecmint.com/linux-package-management/

作者:Gabriel Cánepa 译者:Flowsnow 校对:校对者ID

本文由 LCTT 原创翻译,Linux中国 荣誉推出