【Linux】软件包管理器 yum

简介: 【Linux】软件包管理器 yum

前言

  • 对于之前学习的内容如果大家理解为让大家知道【linux】基本知识并且会使用它,那么接下来的学习的知识便是让各位小伙伴在纯【linux】环境下进行程序的开发,为了达到这一目的我们就需要使用工具的辅助。因此,接下来给大家讲述的便是【linux】下的常用工具了!!!


(一)浅聊软件包

在正式讲解第一个工具之前,我先给大家具体的普及一下软件包的概念,不知道各位小伙伴是否真正的理解它呢?

那么什么是软件包呢?接下来给出答案:

  • 在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序.
  • 但是这样太麻烦了, 于是有些人把一些常用的软件提前编译好, 做成软件包(可以理解成windows上的安 装程序)放在一个服务器上, 通过包管理器可以很方便的获取到这个编译好的软件包, 直接进行安装.
  • 软件包和软件包管理器, 通俗一点举个例子就好比日常生活中的 "App" 和 "应用商店" 这样的关系,这么说大家可能就清楚了。

好了,有了上面的内容做铺垫,接下来我们就开始对【yum】进行深入学习。第一步,我先给出其具体的概念,即什么是【yum】呢?让大家先初步对其有个认识。


1、什么是yum

  • YUM,全称Yellow dog Updater, Modifier,是一个自由、开源的命令行软件包管理工具。是Linux下非常常用的一种包管理器. 主要应用在Fedora, RedHat, Centos等发行版上.
  • 基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
  • yum 提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。

(二)背景介绍

通过结合上述讲到的【yum】的概念,接下来我们以日常生活中下载软件的场景为例带大家深入去探究!!!

1、下载的原理(你真的懂下载吗)

首先,先问大家一个小问题,那就是在日常生活中,对于手机来说不管是安卓的还是iPhone的,当我们准备到手机中的应用商店下载软件时,手机商店中的软件是在你的本地呢?还是在你的远端的呢?

  • 我相信大家都应该知道的这个答案,对于要下的软件来说,其实并没有真正在你的手机上,是在远端下载的,通过应用市场从服务器当中下载到我们手机的。

其次,当你在手机上下软件时,这个软件此时在远端的服务器上。这时,问题就来了,远端的服务器有数百万个服务器甚至更多,那么当你下软件时你访问的是哪台服务器呢?

  • 对于我们普通用户来说,我们需要管那么多吗?知不知道对我们来说有影响吗?我们只需要打开应用市场,找到我们需要的软件,在点击下载即可,此时上面下载工作就全权交给了手机的应用市场来解决。

  • 举个例子,当我们想在手机上下载【csdn】时,我们通过打开自己上的应用商店 ,通过查询搜索,找到相应的软件之后,点击下载,此时应用商店代理完成从远端的服务器上把软件下载到我们的手机上的任务。因此,当我们点击下载之后,就看得见下载进度了。

因此,类比之下,在我们的【linux】下也有所谓的“应用商店”帮助我们去完成这个任务。

2、软件诞生的原因

对于我们来说,身处在这个信息化高度发达的时代下,每天各种的逛哔站呀还是信息通讯呀已经是家常便饭了。那么为什么有人要给我们提供如此海量的【APP】呢?这些人出于什么目的呢?

  • 答案很简单,就是想让我们把它的软件用起来,这样它的公司才能才能赚到钱呀!背后全是利益的驱动。
  • 之前,互联网公司有句话叫做——羊毛出在猪身上,叫狗买单!!不知道大家有没有用【APP】用的好好的,突然给你弹一个广告出来这种情况。什么意思呢?意思就是这些互联网公司搭个平台,通过我们去使用去观看,此时我们的注意力就在这个【APP】上,有了活跃的人数就会吸引广告商来投递广告,一旦有广告了,那么广告商就会支付费用,通过这种方式来赚钱。

就像这样:


 

那有小伙伴就就为好奇了:那对于我们的【Linux】而言,是否有广告呢?

  • 答案是当然没有,各位有在【Linux】看到除了代码之外的其他东西吗?因为【Linux】是纯命令行的操作系统,界面都没有,别人是无法向你推广告的

3、开源生态

那讲到这,各位小伙伴是否就好奇了。你刚才说的【APP】都是归根结底还是为了企业能够赚钱,那么【linux】是否也是这样的呢?

  • 我们从第一篇的博客中就说到,【Linux】是一款免费的,开源的操作系统,它提供开源社区来供一些开发者之间互相交流学习!!!

正是基于开源,且大部分来说都是免费的特点。因此,【linux】得到了大多数企业的青睐,大多数的公司都是使用的【linux】,因此虽然它的运行需要用到服务器,而服务器使用久了就需要去维护,维护那一定是需要成本和工费,大家就会好奇谁会去对其进行处理呢?

  • 其实,对于这种情况,刚才我已经说了,市面上的大多数公司都是使用的这一款操作系统,因此最不愿意看到这样的场景的首先就是这是公司。我还记得之前罗永浩好像就把卖产品的一部分钱都捐给了为维护开源的这种做了奉献。

4、软件分类

在【linux】下软件主要分为两类,那么是哪两类呢?

主要分为【系统软件】和【扩展软件】

  • 官方软件:这类软件就是平时常见,能叫得上名字的【推荐使用】
  • 扩展软件:而对于这类软件来说,其实它并不属于官方软件。例如接下来我们要学习的【sl】就是一个典型的扩展软件。

接下来就是对于软件的选择的小技巧了:

首先问大家一个小问题那就是大家是否都喜欢最新版本的软件呢?

  • 对于我而言,现在正在使用的是【linux】系统是CentOS7,而在如今这个快速发展的大时代中,已经出现了许多比它更新款的软件了,那是不是就一定要用它呢?

接下来我就来回答这个问题:

  • 首先,大家都喜欢选择最新款的,无非就是最新款软件肯定是在旧版本的基础上进行了升级换代的,相对来说肯定会比旧版的好用。但是你能说得准虽然它解决了旧版本存在的问题,难道新版本就不会有新的问题吗。像一些新的操作系统虽然解决了一些其他问题,但一定会面临着一些新的问题
  • 而对于旧版本的软件来说,毕竟已经使用了那么久,对于许多的问题已经得到了相对的解决,要是这时突然换上新版本,那么对于那些无法预知的“坑”,万一踩种了,那么造成的损失轻则还好,严重的话造成的后果可能是无法承担的

(三)yum使用

1、如何查看软件包

首先当我们想安装应用软件那就要先进入到【应用商店】中,接下来我们先来看看我们的【Linux】中的有哪些yum

  • 我们需要执行以下指令去查看当前【linux】下的yum
yum list | grep sl

接下来我们通过指令一起去看看:

大家看着一脸问号呢?别急,接下来我给大家稍微解释一下,让大家认识认识:

①对于最左侧的就是操作系统下的软件名称了,这个应该可以理解把!主要包括有以下信息:

  • 主版本号;次版本号;源程序发行号-软件包的发行号;主机平台.cpu架构.

紧接着最后好多后缀都会有“x86_64” ,什么意思呢?

  • 主要代码64位系统的安装包, “i686” 后缀表示32位系统安装包. 选择包时要和系统匹配.

②其次中间部分就是它所发行的版本

③最右侧部分的@后面的名称就是这个【yum】的**发行商**了,就像手机上的应用商店


2、安装与卸载

首先介绍yum 语法:

yum [options] [command] [package ...]
  • options:可选,选项包括-h(帮助),-y(当安装过程提示选择全部为 "yes"),-q(不显示安装的过程)等等。
  • command:要进行的操作。
  • package:安装的包名。

接下来,我们去安装一个试试手:

安装好了,我想删除怎么删除呢?很简单,看以下实例:

对于上述安装的做法,会弹出我们手动输入【-y】进行确定的场景,那么是否有办法不需要我们手动的去输入,而是系统直接完成呢?当然是有的,具体如下:

yum -y install sl.x86_64

当我们去测试这个软件的时候,我们就会发现一个有趣的事情,因为它看起来就像火车一样。

注意事项

  • 安装软件时由于需要向系统目录中写入内容, 所以一般需要 【sudo 】或者切到 【root 】账户下才能完成.
  • yum安装软件只能一个装完了再装另一个. 正在yum安装一个软件的过程中, 如果再尝试用yum安装另外一个软件, yum会报错.

3、yum基本指令

接下来带大家认识【yum】下的常用命令有哪些。

1. 列出所有可更新的软件清单命令:

yum check-update

2. 更新所有软件命令:

yum update

3. 仅安装指定的软件命令:

yum install <package_name>

4. 仅更新指定的软件命令:

yum update <package_name>

5. 列出所有可安裝的软件清单命令:

yum list

6. 删除软件包命令:

yum remove <package_name>

7. 查找软件包命令:

yum search <keyword>

8. 清除缓存命令:

yum clean packages: 清除缓存目录下的软件包
yum clean headers: 清除缓存目录下的 headers
yum clean oldheaders: 清除缓存目录下旧的 headers
  yum clean, yum clean all 
= yum clean packages; 
= yum clean oldheaders :清除缓存目录下的软件包及旧的 headers

(四)yum源

在上述的学习中,我们已经知道了如何去进行软件的安装与卸载,这就够了吗?答案是当然不够,对于一位出色的学习者来说,我们不仅要知其然更要知其所以然,只有真正的掌握其原理以及使用,我们才能说得上能够掌握它!!!

刚开始的时候,我已经给大家提过在我们上机上下载软件的原理,对于手机的应用商店来说,它怎么知道要去哪里下载呢?

  • 因此这些应用商店必须要知道各个软件的下载地址吧!对于这个下载的地址,一般都是内置下载的地址(配置文件)

因此那对于【Linux】中的yum,它是如何知道自己要去下载的软件在哪里的呢?

  • 基于上述情况这就要谈到【yum】自己的配置文件,也是我接下来要讲的——yum源

那什么是【yum】呢?

  • 包含各种rpm软件包的repository(软件仓库),这个软件仓库我们习惯称之为yum源或者是yum仓库,这个源可以是本地的也可以是网络的。

接下来的问题就是【yum源】在哪里呢?如何查看自己本机所配置的所有yum源呢?这就需要用到以下指令了:

ls -l /etc/yum.repos.d/ //查看配置的【yum】源

接下来我们一起去看看:

解析:

大家可能对上述的最右侧列举出来的东西一脸疑惑,什么意思呢?接下来给大家介绍一下:

  • CentOS-Base.repo【基础yum源】
  • CentOS-Epel.repo 【扩展yum源】

a)CentOS-Base.repo

接下来,我们就可以去对二者进行了解了,具体如下:

b)CentOS-Epel.repo

注意:

  • 如果你自己使用的【yum】的时候没有问题,那么我们就需要在进行配置了,并且你看到的【yum】源配置文件就是国内的镜像源——如华为云,阿里云,163等都是可以使用的,不用再配置,如果你还想亲自上手配置一下,在这里我就不讲解了,大家可以百度一下!!

最后就是如果各位小伙伴在安装自己想要的软件时找不到了,此时不要慌张,可能你要找的这款软件就要扩展的yum源的中:epel.repo

  • 此时我们只要执行一下下面这条指令即可。此时系统就会根据你的base yum源,帮我们找到和他所匹配的扩展yum源了。具体如下:
yum install -y epel-release

(五)总结

到此,对于我们要学习的第一个【linux】工具就介绍完毕了!!

以上便是关于【yum】的全部知识,如果本文对您有帮助的话,麻烦点赞三连哟!!!

相关文章
|
17天前
|
Linux C语言
linux yum安装ffmpeg 图文详解
linux yum安装ffmpeg 图文详解
39 0
|
18天前
|
Linux
linux yum 安装rar和unrar
linux yum 安装rar和unrar
57 0
|
1月前
|
存储 Shell Linux
【Shell 命令集合 系统设置 】Linux 软件包管理工具 rpm命令 使用指南
【Shell 命令集合 系统设置 】Linux 软件包管理工具 rpm命令 使用指南
50 0
|
20天前
|
Ubuntu Linux 编译器
【Linux】4. 开发工具的使用(yum/vim)
【Linux】4. 开发工具的使用(yum/vim)
44 2
|
3天前
|
人工智能 数据可视化 Linux
【linux基础(五)】Linux中的开发工具(上)---yum和vim
【linux基础(五)】Linux中的开发工具(上)---yum和vim
|
17天前
|
缓存 Linux
linux centos7 挂载本地iso yum源
linux centos7 挂载本地iso yum源
74 0
|
30天前
|
Linux
Linux: yum查看、安装、删除软件包
Linux: yum查看、安装、删除软件包
30 0
|
6天前
|
机器学习/深度学习 缓存 监控
linux查看CPU、内存、网络、磁盘IO命令
`Linux`系统中,使用`top`命令查看CPU状态,要查看CPU详细信息,可利用`cat /proc/cpuinfo`相关命令。`free`命令用于查看内存使用情况。网络相关命令包括`ifconfig`(查看网卡状态)、`ifdown/ifup`(禁用/启用网卡)、`netstat`(列出网络连接,如`-tuln`组合)以及`nslookup`、`ping`、`telnet`、`traceroute`等。磁盘IO方面,`iostat`(如`-k -p ALL`)显示磁盘IO统计,`iotop`(如`-o -d 1`)则用于查看磁盘IO瓶颈。
|
2天前
|
监控 Linux Windows
50个必知的Linux命令技巧,你都掌握了吗?(下)
50个必知的Linux命令技巧,你都掌握了吗?(下)
|
3天前
|
Linux Shell Windows
Linux 常用基本命令
Linux 常用基本命令