Linux软件包管理与Yum,RPM,Apt,Dpkg,Aptitude和Zypper - 第9部分

本文是10篇教程长篇系列的第9部分,今天在本文中,我们将指导您了解Linux软件包管理,这是LFCS所需的

去年八月,Linux基金会宣布LFCS认证(Linux基金会认证系统管理员 ),一个Shiny的机会,为系统管理员到处展示,通过基于绩效的考试,他们能够在Linux系统的整体运营支撑成功的。 Linux基础认证Sysadmin具有专业知识,可确保有效的系统支持,第一级故障排除和监控,包括在需要时向工程支持团队提交问题升级。

Linux软件包管理


Linux基础认证Sysadmin - 第9部分

观看以下有关Linux基础认证计划的视频。

本文是10篇教程长篇系列的第9篇,今天在本文中,我们将指导您了解LFCS认证考试所需的Linux软件包管理。

软件包管理

简而言之,包管理是一种在系统上安装和维护(其中包括更新和可能删除)软件的方法。

在Linux的早期,程序只作为源代码,必需的手册页,必要的配置文件等分发。 现在,大多数Linux分销商默认使用预先构建的程序或称为包的程序集,这些程序被提供给准备在该分发上安装的用户。 然而,Linux的奇迹之一仍然是获得要研究,改进和编译的程序的源代码的可能性。

包管理系统如何工作

如果某个包需要某个资源,例如共享库或另一个包,则说它有依赖性。 所有现代软件包管理系统提供了一些依赖关系解析方法,以确保在安装软件包时,所有依赖关系都安装。

包装系统

几乎所有安装在现代Linux系统上的软件都可以在Internet上找到。 它可以由分发供应商通过中央存储库(其可以包含数千个包,每个包已经被专门构建,测试和维护用于分发)提供,或者可以在可以手动下载和安装的源代码中提供。

由于不同的分布族使用不同的包装系统(Debian的:* .deb文件 / CentOS的:* .rpm的 / openSUSE的:* .rpm的专门建造openSUSE的),意为一个分发包将不会与其它发行版兼容。 然而,大多数分配可能属于LFCS认证所涵盖的三个分销系列之一。

高级和低级封装工具

为了有效地执行程序包管理的任务,你需要知道,你将有两种类型的实用程序: 低级别的工具(它处理后端的实际安装,升级和删除包文件),并高级工具(这是负责确保依赖解析和元数据搜索的任务- “数据有关数据” -执行)。

分配 低电平工具 高级工具
Debian和衍生物 dpkg apt-get / aptitude
CentOS rpm yum
openSUSE rpm zypper

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

dpkg的是用于基于Debian系统的低级包管理器。 它可以安装,删除,提供有关和构建* .deb软件包的信息,但它不能自动下载和安装其相应的依赖项。

更多阅读15的dpkg命令示例

apt-get是为Debian和衍生品的高级别包管理器,并提供了一个简单的方法来检索和安装软件包,其中包括解决依赖关系,从使用命令行多个来源。 与dpkg不同,apt-get不能直接使用* .deb文件,而是使用包专有名称。

更多阅读25 apt-get命令的例子

Aptitude是基于Debian的系统其他高级包管理器,并且可以在一个快速简便的方法可以用来执行管理任务(安装,升级和删除软件包,还可以自动处理依赖性分辨率)。 它提供与apt-get和其他功能相同的功能,例如提供对包的多个版本的访问。

RPM是Linux标准基础(LSB)软件包的低层次处理兼容发行版中使用的软件包管理系统。 就像dpkg一样,它可以查询,安装,验证,升级和删除包,并且更频繁地被基于Fedora的发行版使用,例如RHEL和CentOS。

更多阅读20 rpm命令的例子

Yum增加了自动更新和包管理,依赖管理基于RPM的系统的功能。 作为一个高级工具,如apt-get或aptitude,yum使用存储库。

更多阅读20 yum的命令实例

低级工具的常见用法

您将使用低级工具执行的最频繁的任务如下:

1.从编译的(* .deb或* .rpm)文件安装软件包

这种安装方法的缺点是没有提供依赖性解析。 当这样的包在发行版的存储库中不可用,因此无法通过高级工具下载和安装时,您最有可能选择从编译文件安装包。 由于低级工具不执行依赖性解析,如果我们尝试安装具有未满足依赖性的包,它们将退出并显示错误。

# dpkg -i file.deb 		[Debian and derivative]
# rpm -i file.rpm 		[CentOS / openSUSE]

注意 :不要试图在CentOS安装一个* .rpm的文件,该文件是专为openSUSE的,反之亦然!

2.从编译文件升级包

同样,只有当安装的软件包在中央存储库中不可用时,才会手动升级它。

# dpkg -i file.deb 		[Debian and derivative]
# rpm -U file.rpm 		[CentOS / openSUSE]
3.列出已安装的软件包

当你第一次接触已经工作的系统时,你很可能想知道安装了什么软件包。

# dpkg -l 		[Debian and derivative]
# rpm -qa 		[CentOS / openSUSE]

如果你想知道是否已安装指定的包,你可以管上面的命令的输出到grep,如解释了操作文件在Linux中-第1部分本系列。 假设我们需要验证是否安装了Ubuntu系统上包的mysql-常见

# dpkg -l | grep mysql-common
在Linux中检查已安装的软件包

检查已安装的软件包

确定是否安装软件包的另一种方法。

# dpkg --status package_name 		[Debian and derivative]
# rpm -q package_name 			[CentOS / openSUSE]

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

# rpm -qa | grep sysdig
检查sysdig包

检查sysdig包

4.找出哪个包安装了一个文件
# dpkg --search file_name
# rpm -qf file_name

例如,该软件包安装pw_dict.hwm?

# rpm -qf /usr/share/cracklib/pw_dict.hwm
Linux中的查询文件

Linux中的查询文件

高级工具的常见用法

您将使用高级工具执行的最频繁的任务如下。

1.搜索包裹

性向更新将更新可用的软件包列表,和资质搜索将执行的程序包的实际搜索。

# aptitude update && aptitude search package_name 

在搜索所有选项, Yum将搜索程序包不仅在包名,而且在包的描述。

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

我们认为,我们需要他的名字是sysdig的文件。 要知道包,我们将不得不安装,让我们运行。

# yum whatprovides “*/sysdig”
在Linux中检查软件包描述

检查包描述

whatprovides告诉yum来搜索包将提供上述正则表达式匹配的文件。

# zypper refresh && zypper search package_name		[On openSUSE]
2.从存储库安装软件包

在安装软件包时,可能会在软件包管理器解析所有依赖关系后提示您确认安装。 请注意,运行更新或刷新(根据正在使用的包管理器)不是绝对必要的,但是保持安装的包是最新的是一个良好的系统管理员做法的安全和依赖的原因。

# aptitude update && aptitude install package_name 		[Debian and derivatives]
# yum update && yum install package_name 			[CentOS]
# zypper refresh && zypper install package_name 		[openSUSE]
3.删除软件包

该选项删除将卸载软件包,但保留配置文件完好无损,而清洗会从系统清除程序的每一个痕迹。
#aptitude remove / purge package_name
#yum erase package_name

---Notice the minus sign in front of the package that will be uninstalled, openSUSE ---
# zypper remove -package_name 

大多数(如果不是全部)软件包管理器会在默认情况下提示您,如果您确实要在实际执行卸载之前继续卸载。 所以仔细阅读屏幕上的消息,以避免遇到不必要的麻烦!

4.显示有关包的信息

以下命令将显示生日包的信息。

# aptitude show birthday 
# yum info birthday
# zypper info birthday
在Linux中检查软件包信息

检查包信息

概要

软件包管理是你不能作为系统管理员在地毯下扫描的东西。 您应该随时准备好使用本文中描述的工具。 希望你觉得它在你的LFCS考试和日常工作的准备非常有用。 请随时留下您的意见或问题。 我们将很乐意尽快回复您。