侧边栏壁纸
Linux入门自学网博主等级

每日学一条Linux命令,终成Linux大神

  • 累计撰写 725 篇文章
  • 累计创建 143 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Linux yum命令教程:高效包管理技巧详解(附案例详解和注意事项)

Linux yum命令介绍

yum(Yellowdog Updater Modified)是在Fedora和RedHat以及SUSE中基于RPM的软件包管理器。它能够从指定的服务器自动下载RPM包并且安装,可以处理依赖性关系,并且一次安装所有依赖的软件包,无需繁琐地一次次下载安装。

Linux yum命令适用的Linux版本

yum命令主要在基于RedHat的Linux发行版中使用,包括RedHat Enterprise Linux (RHEL)、CentOS 和 Fedora等。随着新的包管理器如dnf的出现,一些发行版可能会逐步放弃yum,但大多数基于RedHat的发行版仍然支持yum

如果您在使用的发行版中发现bash: yum: command not found,您可能需要安装yum或者切换到该发行版推荐的包管理器。例如,Fedora 22及更高版本推荐使用dnf

以下是在不同Linux发行版中安装yum的命令:

# 基于dnf的发行版(如Fedora)
sudo dnf update && sudo dnf install yum

# 如果您的系统中没有预装yum,并且不支持dnf,请参考您的Linux发行版文档来获取安装yum的方法。

Linux yum命令的基本语法

语法格式如下:

yum [options] [command] [package ...]

Linux yum命令的常用选项或参数说明

选项/参数说明
install安装一个或多个软件包
update更新当前系统所有软件包
remove删除一个或多个软件包
list列出软件包信息
search搜索软件包
clean清除yum缓存
info显示一个或多个软件包的信息
provides查找提供某功能的软件包
check-update检查可用更新
deplist显示包依赖信息

Linux yum命令实例详解

实例1:安装软件包

通过yum安装软件包,例如安装vim编辑器:

[linux@bashcommandnotfound.cn ~]$ sudo yum install vim

这个命令会安装vim编辑器,并自动解决所有必要的依赖关系。

实例2:更新软件包

更新系统中所有已安装的软件包:

[linux@bashcommandnotfound.cn ~]$ sudo yum update

如果只想更新某个特定的软件包,可以指定软件包名,比如更新httpd

[linux@bashcommandnotfound.cn ~]$ sudo yum update httpd

实例3:删除软件包

使用yum删除一个已安装的软件包,例如删除httpd

[linux@bashcommandnotfound.cn ~]$ sudo yum remove httpd

实例4:列出所有可安装的软件包

列出所有可通过yum安装的软件包:

[linux@bashcommandnotfound.cn ~]$ yum list available

实例5:搜索软件包

搜索包含关键词的软件包,比如搜索与httpd相关的软件包:

[linux@bashcommandnotfound.cn ~]$ yum search httpd

实例6:清除yum缓存

清除缓存文件:

[linux@bashcommandnotfound.cn ~]$ sudo yum clean all

这将会清除所有缓存的包和头文件。

实例7:显示软件包信息

查看某个软件包的详细信息,例如httpd

[linux@bashcommandnotfound.cn ~]$ yum info httpd

这会显示httpd软件包的详细信息,包括版本、发布日期、大小和描述等。

实例8:查找提供某功能的软件包

如果你想找出提供特定文件或功能的软件包,可以使用provideswhatprovides

[linux@bashcommandnotfound.cn ~]$ yum provides ifconfig

这会搜索哪个软件包提供ifconfig命令。

实例9:检查可用更新

检查系统中所有软件包的更新情况:

[linux@bashcommandnotfound.cn ~]$ yum check-update

这个命令会列出所有有可用更新的软件包。

实例10:显示包依赖信息

查看软件包的依赖信息,这对于解决依赖问题非常有用:

[linux@bashcommandnotfound.cn ~]$ yum deplist vim

这将列出vim软件包的所有依赖。

实例11:列出所有已安装的软件包

若想查看系统中已安装的所有软件包:

[linux@bashcommandnotfound.cn ~]$ yum list installed

实例12:查看启用的仓库列表

要查看当前系统中启用的仓库:

[linux@bashcommandnotfound.cn ~]$ yum repolist enabled

实例13:安装本地RPM文件

通过yum安装本地的RPM文件同时解决其依赖:

[linux@bashcommandnotfound.cn ~]$ sudo yum localinstall /path/to/package.rpm

这个命令会安装本地的RPM文件,并且尝试解决所有依赖关系。

实例14:列出所有已安装的软件包及其来源仓库

列出所有已安装的包以及它们来自哪个仓库:

[linux@bashcommandnotfound.cn ~]$ yum list installed | grep @

实例15:安装一个软件组

安装一个预定义的软件包组:

[linux@bashcommandnotfound.cn ~]$ sudo yum groupinstall "Development Tools"

这个命令会安装开发工具组中的所有软件包。

实例16:列出所有可用的软件组

查看系统中所有可用的软件包组:

[linux@bashcommandnotfound.cn ~]$ yum grouplist

实例17:升级特定软件包

升级系统中的特定软件包到最新版本:

[linux@bashcommandnotfound.cn ~]$ sudo yum upgrade package_name

实例18:锁定软件包版本

防止软件包更新到更高版本:

[linux@bashcommandnotfound.cn ~]$ sudo yum install yum-plugin-versionlock
[linux@bashcommandnotfound.cn ~]$ sudo yum versionlock package_name

首先安装yum-plugin-versionlock插件,然后锁定特定软件包。

实例19:解除软件包版本锁定

解除对特定软件包版本的锁定:

[linux@bashcommandnotfound.cn ~]$ sudo yum versionlock delete package_name

实例20:下载但不安装软件包

下载软件包而不安装,用于后续离线安装:

[linux@bashcommandnotfound.cn ~]$ sudo yumdownloader package_name

这个命令需要yum-utils包,如果没有安装,使用sudo yum install yum-utils来安装它。

实例21:查找软件包安装文件的位置

如果需要知道软件包安装的文件位置:

[linux@bashcommandnotfound.cn ~]$ repoquery -l package_name

repoquery是一个yum-utils的工具,它允许查询仓库中的信息。

实例22:查看软件包更新历史

查看系统中软件包的更新历史:

[linux@bashcommandnotfound.cn ~]$ yum history

实例23:回滚更新

回滚到之前的一个更新点:

[linux@bashcommandnotfound.cn ~]$ sudo yum history undo last

last替换为你要撤销的更新编号。

实例24:查找那些包含特定文件的软件包

如果你想找出哪些已安装的软件包包含特定文件:

[linux@bashcommandnotfound.cn ~]$ yum whatprovides */filename

filename替换成你想查找的文件名。

注意事项

  • 在执行yum命令时,通常需要有root权限,因此在大多数命令前面需要添加sudo
  • 在使用yum命令之前,最好先执行yum makecache来生成缓存,这可以提高搜索和安装软件包的速度。
  • 在安装、更新或删除软件包时,确保没有其他软件包管理器正在运行,以避免数据库锁定问题。
  • 当遇到依赖问题时,yum会尝试自动解决这些问题,但是在某些情况下,手动干预可能是必要的。
  • 使用yum时,确保你的系统已经配置了正确的仓库(repository),这样yum才能找到并安装最新的软件包。
  • 在执行涉及大量软件包的操作之前,建议备份重要数据,以防止意外情况导致数据丢失。
0

评论区