Linux软件包管理器yum

218 阅读4分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第26天,点击查看活动详情

一、Linux软件包管理器yum

💦 什么是软件包

  • 在 Linux 下安装软件,一个通常的办法是下载到程序的源代码,进行编译,得到可执行程序
  • 但是这样太麻烦了,于是有些人把一些常用的软件编译好,做成软件包(可以理解成 windows 上的安装程序)放在服务器上,通过包管理器可以很方便的获取到这个编译好的软件包,直接进行安装
  • 软件包和软件包管理器,就好比 ”APP" 和 “应用商店” 这样的关系
  • yum(Yellow dog Updater, Modified)是 Linux 下非常常用的一种包管理器,主要应用在 Fedora、RedHat、Centos 等发行版上,yum 除了查找、安装、卸载,还可以解决依赖关系,后面再说

💦 如何安装软件

通过 yum 我们可以通过一条很简单的命令安装 lrzsz

sudo yum install -y lrzsz

-y 表示有关于这次安装的问题不用请求我的同意,出现 “complete" 字样,说明安装完成。

⚠ 注意

  • 安装软件时由于需要向系统目录中写入内容,一般需要 sudo 或者切换到 root 帐户下才能完成
  • yum 安装软件只能一个装完了再装另一个,正在 yum 安装一个软件的过程中,如果再尝试 yum 安装另一个软件,yum 会报错
  • 如果 yum 报错,请自行百度

💦 如何卸载软件

仍然是一条命令:

sudo yum remove -y lrzsz

-y 表示有关于这次卸载的问题不用请求我的同意,出现 “complete" 字样,说明卸载完成。

💦 关于rzsz

这个工具用于 windows 机器和远端的 Linux 机器通过 xshell 传输文件,安装完毕之后输入 rz 命令后可以通过拖拽的方式将文件上传。 在这里插入图片描述

💦 注意事项

  1. 关于 yum 的所有操作必须保证主机(虚拟机)网络畅通,可以通过 ping 指令验证(当然云服务器的话就可忽略了)

ping www.baidu.com

  1. yum 不能同时跑一台机器

💦 查看软件包

通过 yum list 命令可以罗列出当前一共有哪些软件包,由于包的数目可能非常多,我们可以使用 grep 命令筛选到我们关注的包。

yum list | grep lrzsz

结果如下: 在这里插入图片描述 说明:

  • lrzsz.x86_64:软件包的名称和适合的版本
  • 0.12.20-36.el7:el7 表示操作系统发行版本 —— Centos7、RedHat7
  • @base:通常指的是这个软件的提供者是谁; epel 指的是它的发布发属于扩展源,对于源,稍后会说明

我们可以筛选出 sl 命令,它就属于扩展源: 在这里插入图片描述 这里安装 sl 命令后运行 sl 命令就可以看到小火车了: 请添加图片描述 Centos 7 好玩的命令:用于练手

yum 源 ❓

在这里要提一句,有很多同学玩的是虚拟机,有可能默认带的 yum 源是不满足需求的(国外的或老版本的),这时就需要手动的去更新 yum 源,yum 要安装软件,那么它是怎么知道要去哪个地方找呢 ???

这里 yum 源是在 etc 路径下: 在这里插入图片描述 yum.conf 是 yum 的主配置,这个文件尽量不要变换: 在这里插入图片描述 可以看到这里的 yum 源,而我们需要改的是 CentOS-Base.repo: 在这里插入图片描述 此时我们 vim CentOS-Base.repo,这里已经配置过了 —— 阿里云的服务 在这里插入图片描述 其中可以看到很多链接,说人话就是有了这个配置后,当你 yum 时,它会根据你的配置去找,这里我们也可以去复制链接去浏览器试试(注意这里有些链接可能失效了): 在这里插入图片描述 说了这么多,我们就来配置一下(这里可以直接百度 Centos 7 更新 yum 源):

  1. 备份

cd /etc/yum.repos.d/ mkdir repo_bak mv *.repo repo_bak/

  1. 下载新的 CentOS-Base.repo 到 /etc/yum.repos.d/

wget mirrors.aliyun.com/repo/Centos…

  1. yum chean all 清除缓存,运行 yum makecache 生成新的缓存

yum clean all yum makecache

  1. 安装 EPEL(Extra Packages for Enterprise Linux) 扩展源

yum install -y epel-release

  1. 再次运行 yum clean all 清除缓存,运行 yum makecache 生成新的缓存,查看启用的 yum 源和所有的 yum 源

yum repolist enabled yum repolist all

  1. 更新 yum

yum -y update

扩展源 ❓

CentOS-Epel.repo 就是扩展源,它一般默认是没有的,像 Base 这种 yum 源对软件的要求就是稳定、可靠、来源明确,但是这样软件更新的速度就比较慢,所以有很多软件都已经开发出来了,这些软件就放在 Epel 中,这里 Base 就像应用商城,Epel 就像浏览器。