觉得本片文章写的还不错的可以👍点赞👍、🌟收藏🌟、📝评论📝、💖关注💖一下博主,您的支持是我最大的动力,我们共同努力!
文章目录
- 1. 什么是软件包
- 2. Linux系统(Centos)的生态
- 3. yum的相关操作
- 3.1 查看软件包
- 3.2 下载命令
- 3.3 软件的删除命令
- 3.4 关于yum的软件源
- 4. 总结(重要)
1. 什么是软件包
- 在
Linux
下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序; - 但是这对于非专业人士来说,这既困难又麻烦,于是有些人把一些常用的软件提前编译好, 做成软件包,放在一个服务器上,通过包管理器可以很方便的获取到这个编译好的软件包, 直接进行安装,就好比 “
App
” 和 “应用商店” 这样的关系; yum
(Yellow dog Updater, Modified)是Linux
下非常常用的一种包管理器。主要应用在Fedora
,RedHat
,Centos
等发行版上。
那么软件包是谁提供的呢?
2. Linux系统(Centos)的生态
Linux
系统下通常有3中安装软件的方式:
1. 源代码安装
2.rpm
包安装
3.yum
安装
👨🏻💻源代码安装
有一些软件是开源的,我们可以用这个开源的代码放在我们想要安装的机器上,进行编译,然后就可以下载了,但是这个代码发布的系统可能和你自己所用的系统不太一样(类似于版本),就可能会导致编译报错,因此要解决交叉编译的问题,除此之外,对于某些软件,可能存在依赖关系,要安装有好几个库,所以这很不方便。
👨🏻💻rpm包安装
为了解决以上的问题,有一些程序员就会把源代码在不同的环境下编译好,形成
rpm
包(就相当于是压缩包,类似于tar
、tgz
),这就是为什么对于一个软件会有很多不同的版本。但是有的情况下对于某些软件还是要用到其他的库,比如一款软件需要用到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
找到软件包下载地址的作用。