【Linux】yum

图片名称

🎉博主首页: 有趣的中国人

🎉专栏首页: Linux



在这里插入图片描述

觉得本片文章写的还不错的可以👍点赞👍、🌟收藏🌟、📝评论📝、💖关注💖一下博主,您的支持是我最大的动力,我们共同努力!


1. 什么是软件包


  • Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序;
  • 但是这对于非专业人士来说,这既困难又麻烦,于是有些人把一些常用的软件提前编译好, 做成软件包,放在一个服务器上,通过包管理器可以很方便的获取到这个编译好的软件包, 直接进行安装,就好比 “App” 和 “应用商店” 这样的关系;
  • yum(Yellow dog Updater, Modified)是Linux下非常常用的一种包管理器。主要应用在Fedora, RedHat,Centos等发行版上。

那么软件包是谁提供的呢?

2. Linux系统(Centos)的生态


Linux 系统下通常有3中安装软件的方式:

1. 源代码安装
2. rpm包安装
3. yum安装

👨🏻‍💻源代码安装

有一些软件是开源的,我们可以用这个开源的代码放在我们想要安装的机器上,进行编译,然后就可以下载了,但是这个代码发布的系统可能和你自己所用的系统不太一样(类似于版本),就可能会导致编译报错,因此要解决交叉编译的问题,除此之外,对于某些软件,可能存在依赖关系,要安装有好几个库,所以这很不方便。

👨🏻‍💻rpm包安装

为了解决以上的问题,有一些程序员就会把源代码在不同的环境下编译好,形成rpm包(就相当于是压缩包,类似于tartgz),这就是为什么对于一个软件会有很多不同的版本。但是有的情况下对于某些软件还是要用到其他的库,比如一款软件需要用到C++的库,但是在下载的时候并没有把对应的库安装下来,因此你自己还要解决软件依赖关系的问题。

👨🏻‍💻yum安装

yum就可以解决这个问题,如果某些软件还需要用到其他的库,他就帮你全都下载好,并提供对应的下载链接,供你下载。


那我的机器是怎么知道我要去哪台服务器上找所需要的安装包的呢?

其实,在我们机器的内部一定内置了目标服务器的地址链接。

那为什么会有人买了多台服务器,还帮你把对应的软件都编译好放到服务器中呢?

这就是关于生态的问题了,对于市面上很多的Linux操作系统,他们在本质上没有太大的区别,主要的区别在于生态和社区。对于一款Linux的操作系统,他自身会吸引怎样的客户来使用(比如Centos吸引企业,Ubuntu吸引学生,kali吸引网络安全人员),当客户遇到对应问题时有对应文档的解决方案,这就是生态和社区。

因此对于一些维护Linux内核的人员,他们肯定也知道自己的系统适用于什么样的人群,那么他们就会把自己对应的社区、文档、活跃度维护好来吸引更多的人群来使用自己的系统。

3. yum的相关操作

3.1 查看软件包

通过 「yum list」 命令就可以罗列出当前有哪些软件包,通过管道可以进行筛选,例如:

yum list | grep sl

在这里插入图片描述

3.2 下载命令

输入命令yum install [-y] XXX(不想被询问就输入 -y),进行下载对应的软件,例如我们下载sl软件:

[dsj@alicloud-dsj ~]$ yum install -y sl
Loaded plugins: fastestmirror
You need to be root to perform this command.

因为安装的时候要向系统的目录中写入,所以我们要进入root账户才能安装:

[root@alicloud-dsj dsj]# yum install -y sl

在这里插入图片描述

3.3 软件的删除命令

输入命令yum remove [-y] XXX (不想被询问就输入 -y)就可以删除对应的软件。

[root@alicloud-dsj dsj]# yum remove -y sl

在这里插入图片描述

3.4 关于yum的软件源


我们刚才说过器的内部一定内置了目标服务器的地址链接,所以yum才知道我们要去哪里下载,那这个服务器地址在哪里呢?在这个目录下:/etc/yum.repos.d/

  • 我们可以看一下这个目录中的内容输入命令:ls /etc/yum.repos.d/
[root@alicloud-dsj dsj]# ls /etc/yum.repos.d/
CentOS-Base.repo  epel.repo  epel.repo.rpmnew  epel-testing.repo
  • 可以看到有很多仓库 (repo 是仓库的意思)

  • 我们可以用vim看一下CentOS-Base.repo中的内容,输入命令:

[root@alicloud-dsj dsj]# vim /etc/yum.repos.d/CentOS-Base.repo

在这里插入图片描述

  • 可以看到里面内嵌了很多下载链接,yum在下载的时候就会在仓库中找到下载地址,并构建相应的下载链接进行下载安装。

yum有一个基本软件源叫做Base,里面存放的都是很多用户在使用,并且很稳定的软件;


也有一个软件源叫做epel,里面存放的是一些扩展软件源,可能不太稳定,但是有些软件是存在这里的,例如上面出现的sl,所以我们需要下载它,输入命令yum -y install -y epel-release即可下载epel

4. 总结(重要)


通常在CentOS系统中,软件包管理器yum会使用/etc/yum.repos.d/目录中的配置文件来确定软件包的下载源。这些配置文件通常包含了软件包仓库的链接地址以及其他相关信息。当你使用yum命令安装软件包时,yum会根据这些配置文件中指定的源地址去下载相应的软件包。因此,确保你的系统中有正确的配置文件,并且它们指向了你所需的软件包仓库。


配置文件中存放的是软件包仓库的链接,而这些仓库链接中包含了软件包的下载地址。当你使用yum命令来安装或更新软件包时,yum会根据配置文件中指定的仓库链接去找到对应的软件包下载地址,并从该地址下载软件包到本地系统中进行安装或更新。因此,配置文件中的仓库链接起到了指引yum找到软件包下载地址的作用。

  • 34
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 16
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值