linux包管理yum

wek

# 历史

每一个linux发行版都有对应的软件包管理器,用于安装,更新,查看,搜索和删除软件包。由于个人管理的服务器版本是centos版, 本期演示centos8 平台的包管理器, 并对比rpm包管理。 在介绍yum包管理器之前,现简单说说rpm。这两者多少存在一些联系

# RPM

rpm 是基于Red Hat系统所设计的包管理工具, 目前基于红帽系统的发行版有. 允许用于在基于红帽的linux平台,安装,更新,查询,删除和验证软件包

  • RHEL(红帽企业版)
  • Centos
  • Fedroa
  • openSUSE(基于 suse Enterprise Linux)
  • Oracle Linux
  • Mageia

# 文件格式

RPM 文件的扩展名为 .rpm。RPM 包由一个存档文件组成,其中包含了一个特定包的库和依赖关系,这些库和依赖关系与系统上安装的其他包不冲突。

# 劣势

依赖解析和包更新(全系统更新/升级)方面,RPM 包管理器有一个突出的限制. 通常,通过rpm安装一组包时,rpm会告诉依赖列表,对于软件包所需的依赖,虽然rpm能够列出包所需要依赖,但是无法安装处理, 需要手动下载安装. 为解决linux安装包的时候依赖问题, 由此诞生了比较优秀的前端软件包管里工具,其中yum就是接下来需要介绍的。

# YUM

Yum 是一个 Linux 操作系统上的自由开源的命令行包管理程序,它使用 RPM 包管理器。Yum 是一个 RPM 的前端工具,可以自动解决软件包的依赖关系。它可以从发行版官方仓库和其他第三方仓库中安装 RPM 软件包。

Yum 允许你在系统中安装、更新、搜索和删除软件包。如果你想让你的系统保持更新,你可以通过 yum-cron 启用自动更新。 此外,如果你需要的话,它还允许你在 yum update 中排除一个或多个软件包。

yum已默认安装,不需要另外安装.

# RPM 、 YUM对照

编号 RPM YUM
1 红帽在 1997 年引入了 RPM Yellowdog UPdater(YUP)开发于 1999-2001 年,YUM 于 2003 年取代了原来的 YUP 工具
2 RPM 代表 RPM Package manager(原名 Red Hat package manager) YUM 代表 Yellowdog Updater Modified
3 RPM 文件的命名规则如下,httpd-2.4.6-92.el7.x86_64.rpm:httpd - 实际的包名;2.4.6 - 包发布版本号;92 - 包发布子版本号;el7 - Red Hat 版本;x86_64 - 硬件架构;rpm - 文件扩展名 后台使用 rpm 数据库
4 不解析依赖关系,你必须手动安装依赖 可以自动解析依赖关系并同时安装它们(任何包都会和它的依赖关系一起安装)
5 允许你同时安装多个版本的软件包 不允许,并显示该软件包已经安装
6 当使用 RPM 命令安装一个软件包时,你必须提供 .rpm 软件包的确切位置 你可以安装仓库中的任何软件包,而你只需要知道软件包的名称就可以了
7 RPM 不依赖于 YUM 它是一个前端工具,在后台使用 RPM 包管理器来管理包
8 RPM 在安装包的管理方面比较难 YUM 是最简单的管理 RPM 包的方法
9 RPM 不能让你将整个系统升级到最新的版本 YUM 可以让你将系统升级到最新的版本(例如 7.0 到 7.x 的小版本升级)
10 RPM 不能让你自动更新/升级安装在系统上的软件包 YUM 可以让你自动更新/升级系统上的更新
11 不使用在线仓库来执行任何操作 完全依赖在线仓库来完成所有的工作
12 RPM 是一种包格式,它也是一个底层的包管理器,只做基本的事情 这是一个上层的包管理器前端,它可以完成你所需要的一切工作

# YUM 常用命令

# 安装

options

  • package-name: 需要安装的包名
  • -y(可选): 命令行参数,忽略系统确认,直接安装.

yum install package-name

# 卸载

安全卸载包,包括包存在的依赖.

options

  • package-name: 需要安装的包名
  • -y(可选): 命令行参数,忽略系统确认,直接安装.

yum remove package-name

# 更新

假设您的MySQL软件包版本已过时,并且想要将其更新为最新的稳定版本, 并且会自动解决更新过后的依赖问题.

# 列出软件包

搜索可安装的包,为使搜索更加精确,建议加上 包的版本号

yum list packageName[version]

对于不确定包名,可以指定关键字搜索匹配的包名

# 搜索包

yum search packageName

# 获取包信息

假如安装包之前需要确定包信息 yum info packageName

# list 可用包

yum list | less

# list 已安装包

yum list installed | less

# 特定文件所属软件包

yum provides (path)file

eg: 查找 /etc/httpd/conf/httpd.conf的软件包的名称

yum provides /etc/httpd/conf/httpd.conf

# 检查可用更新

查找系统已安装包可更新包

yum check-update

# yum更新系统

使系统保持所有安全性和二进制程序包更新的最新信息,请运行以下命令。它将为您的系统安装所有最新的补丁程序和安全更新。

yum update

# 列出所有可用的软件包组

在Linux中,许多软件包捆绑到特定的组。您可以安装将安装属于该组的所有相关软件包的特定组,而不是使用yum安装单个软件包

yum grouplist

# 安装组软件包

安装特定的软件包组,我们使用option作为groupinstall yum groupinstall group-packageName

# 更新组软件包

更新任何现有的已安装组软件包 yum groupupdate groupName

# 删除组包

从系统中删除或删除任何现有的已安装组 yum groupremove groupname

# 列出启用的Yum存储库

列出系统中所有已启用的Yum存储库 yum repolist

# 列出所有已启用和已禁用的Yum存储库

yum repolist all

# 从特定存储库安装软件包

要从启用或禁用的特定存储库中安装特定的软件包,必须在yum命令中使用–enablerepo选项 yum enablerepo=repostoryName install packgeName

# yum CLI

Yum实用程序提供了一个定制外壳程序,您可以在其中执行多个命令。 yum shell

# 清除缓存

默认情况下, yum将所有启用了存储库的软件包数据保存在每个子目录的/ var / cache / yum /中,以从启用的存储库中清除所有缓存的文件,您需要定期运行以下命令以清理所有缓存并确保没有多余的空间正在使用。我们不想提供以下命令的输出,因为我们希望保持高速缓存的数据不变。

yum clean all

# 查看yum历史

要查看yum命令的所有过去事务,只需使用以下命令。 yum history