【Linux】Linux软件包管理器yum

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

希望你今天有一个好心情e31847bc5c864c94bb68c8404f162402.jpeg



一、(客户端&&服务器) + (软件包&&软件包管理器yum) + (利益链&&逻辑链)

1.客户端&&服务器


客户端:或称为用户端,是指与服务器相对应,为客户提供本地服务的程序。


服务器:

1、服务器是在网络中为用户提供服务的计算机。

2、本质上,服务器和普通的PC一样,都是计算机。

3、但是通常服务器比PC的性能要高很多,服务器的高性能体现在高速度的CPU运算能力、长时间的可靠运行、强大的IO数据吞吐量等方面。


~举几个客户端和服务器的例子:

1.你电脑上的Edge浏览器就是客户端程序,服务器那边的网站就是服务器端程序

2.你使用QQ聊天,QQ就是客户端程序,腾讯公司机房里,存储数据,交换聊天信息的程序就是服务器端程序

3.你玩的王者荣耀,它就是天美工作室群开发的客户端程序,在腾讯机房里面存储你的身份数据,游戏排名等等的程序就是服务器端程序。


~提示: 客户端程序和服务器端程序通常是多对一关系,即一个服务器端程序,为众多的客户端程序提供数据服务。

我们在自己的电脑上做网站,调试网站,通常使我们的电脑即充当客户端又充当服务器端。



2.软件包&&软件包管理器


1.软件包 (SoftWare Package)是指具有特定的功能,用来完成特定任务的一个程序或一组程序。

2.软件包管理器实际上是一种工具,它允许用户在操作系统上安装,删除,升级,配置和管理软件包。软件包管理器可以是像“应用商店Microsoft Store”这样的图形化应用,也可以是像 apt-get 或 pacman 这样的命令行工具。


642acc2fc2854d1bb038d1c04dbd0618.png


在Linux下安装软件,一个通常的办法是下载到程序的源代码,并进行编译,得到可执行程序。

但是这样太麻烦了,于是有一部分大佬把常用的软件提前编译好,做成软件包(可以理解成windows上的安装程序)放在一个服务器上,然后我们就可以通过软件包管理器很方便的获取到这个已经被大佬编译好的软件包,然后直接进行安装。

软件包和软件包管理器就相当于’‘app’‘和’‘应用商店’'的关系,我们平常通过应用商店这种东西,对软件包也就是app进行下载。

我对于下载的理解比较浅显,可能就是那些大佬将编译好的源代码进行以某种算法作为基础的打包和压缩,我们的下载可能就是从远端,也就是服务器那里,两者一连接,我们对这个压缩包进行解压,植入到我们的手机当中,然后我们手机就拥有了一个可执行程序,也就拥有了软件


3.一条利益链+一条逻辑链

为什么有人免费给我们将代码编译并且打包压缩变成一个软件包呢?他怎么那么好心,免费给我们提供许许多多的软件包呢?这些人出于什么目的啊?


很显然,这些人出于的目的很简单,就是为了让用户把他们的软件用起来,这样他的公司才可以通过有用户用这个软件,来利用许许多多的途径赚钱,他背后是有利益在驱动的。

羊毛出在狗身上,猪来买单

~1: 羊毛指的是利润,狗指的是消费者、用户,而猪则指的是广告商或投资者。

我们可以这样理解,在当前的市场之中,我们有一个好的项目,我们想让这个项目、产品真正上市、挣钱。那么,有一个前提条件就是我们必须积累足够多的用户(狗),把用户服务好了,有了好的用户评价之后,投资者(猪)才会闻风而来,当我们获得投资,我们才有可能上市,赚取利润(羊毛)。

~2: 很多人可能会好奇,各大搜索引擎如何赚钱。其实,这又是一个“羊毛出在狗身上,猪来买单”的例子。以百度搜索为例,百度提供优质免费的搜索服务,积累大量的用户(狗),其他公司(猪)需要获取大量的曝光,便会借助百度提供的广告服务,而这一过程是需要其向百度支付费用,在这一过程中,百度便通过自己免费的服务在另一个维度赚取利润(羊毛)。


~3: 上面所说的起始非常好理解,因为有利益在驱动嘛,自然而然就会有人给我们提供优质的服务以及许许多多的软件包。


内容分隔线


但是LInux呢?有什么样的人会为Linux上的服务器提供各种各样的工具呢?他们又是出于怎样的目的呢?他们可是没有利益驱动的啊,谁来LInux上搞广告啊,又有谁来linux上开发游戏啊!

如果某个软件开源了,他会有自己的社区,比如说Linux操作系统,他会有自己的社区,因为软件是开源的,所以他的代码写的非常好,稳定且高效,并且Linux内核获取的成本也很低,而且对于企业来讲不需要付费或者不需要过度付费。

所以上面种种的优点就会导致一个特性的出现,就是用户量的剧增,你想嘛,一个所有方面都好的操作系统谁不喜欢用啊,所以这就导致很多的企业都用Linux操作系统。


那么假设现在Linux出了一点点小问题,谁最不愿意看到开源的Linux出问题呢?还能有谁啊,肯定是使用它的各个商业公司!!!所以,我们就可以看到Linux有各种各样的社区,这些社区有什么用呢?其实就是为了让我们的Linux变得越来越好,大家互相讨论,互相思考,解决Linux所存在的问题,这多好啊。


如果你这么想,那简直是太天真了,这样的人肯定是少数,除了某些具有探究、钻研精神的人会这么干,其他人肯定不愿意干啦,吃饱了撑的?不给钱还耗时间。

其实这里还有一个目的就是,让那些有钱的商业公司或者个人更加的依赖Linux,如果现在某个Linux社区出了问题,没有钱买服务器啦,因为许多公司用Linux,所以他们希望这些社区能够进行正常运转,不愿意看到他们黄掉,那自然这些企业和公司就会给Linux的社区捐款,这是一定的!!! 虽然钱不多,但买几台云服务器,维持一下社区,这绝对是够的。


所以开源也有他们自己的生态,他们的生态就是尽快的影响全世界,让世界人民都被影响,由于开源的种种好处,可以让其以极快的速率占领市场,占领市场之后,紧接着,一些使用Linux操作系统的人或企业,他们是不太愿意看到Linux的各个社区出现问题的。


二、Linux下包管理器yum的使用(root身份或sudo提权进行搜索list,安装install,卸载remove)

1.yum的使用


可以利用yum list | grep sl 借助管道命令和文本行过滤工具grep指令,对软件包进行查找。

软件包版本中有el7的,就代表centos7版本,el6就代表centos6

@后面代表的是提供软件包的yum源,类似于 “小米应用商店”, “华为应用商店” 这样的概念.

x86_64后缀表示64位系统的安装包,i686后缀表示32位系统安装包,我们在选择安装包时,要和系统匹配。

0cbec6692a134c7bb41faacc40851f6c.png


yum install sl.x86_64,这样下载,yum会给我们进行sl的严格匹配的。

我们在安装时,本质上是把软件包下载下来,然后把软件包拷贝到特定的目录,所以有时候我们是安装到系统路径下,而并非是你自己账号下的目录当中。

在Linux当中,一般安装某些软件,只要安装好了,大家都可以用,也就是说一个人把软件安装好了,其他用户就都可以进行使用,所以为了能够更好的安装,我们可以直接把自己的用户切换成root,以root的身份来进行安装或者在yum前面带上sudo进行指令提权。


推荐使用root身份来进行软件包的下载,装上了所有人就都能用了,包括其他用户


install和remove可以解决对软件包下载和卸载的任务

e785171c5dd54a08a1d7da009a2ab982.png

77bd826ce0584522989b95bb4c599ca4.png


输入sl便可以执行这个软件包sl.x86_64了


4db977ebf2fd4408a07cb7be0bfdc883.png


Linux服务器提供的软件有官方的和扩展的软件,官方软件之外的所有软件都是扩展软件,比如一些较新版本的软件包,刚开始很有可能是不稳定。但如果随着时间的推移,发现,这个较新版本的软件是比较优的,并且较稳定,那它就会被列入官方软件源里。所以我们在安装软件时,尽量去安装官方的软件,但一般常见的软件,能叫的上名的软件基本都是官方的软件。


我们刚刚下载的软件包sl是属于扩展软件源的。


2.yum查找软件包的原理


首先这些软件包管理器必须知道各个软件在服务器中的下载地址!!!


如果不知道,那客户要你干什么啊?我想下载个QQ,你这个包管理器找不到QQ在哪?这当然是不行的,所以包管理器必须知道各个软件包在服务器中的下载地址。


我们的软件包一般都是内置下载链接的地址(配置文件)


配置文件本质上是包含成功操作程序所需信息的文件,这些信息以特定方式构成。它们不是在程序中进行硬编码,而是用户可配置的,通常存储在纯文本文件中


yum有自己的配置文件,我们将其称之为yum源。所以yum在下载软件包时,是要先去他自己的配置文件里面查找对应的软件包的地址,然后根据地址去搜索特定的软件,最后进行下载


下面就是我们的yum源路径,/etc/yum.repos.d,repos是仓库的简写,.d就是目录


CentOS-Base.repo被我们称之为基础yum源。,并且Linux系统中只认这个文件名作为yum的配置文件。

db6b01a2fb80491e96bf07062dd4f5ab.png


baseurl=http://mirrors.tencentyun.com/centos/r e l e a s e v e r / e x t r a s / releasever/extras/releasever/extras/basearch/

baseurl就相当于我们下载软件包时,特定的下载路径。

$符号开头的这些值,最后会被你的Linux操作系统版本,你对应搜索到的路径给替换掉

b0387060e308434f9c7a543da544fff7.png



3.如何更换yum源配置文件?


~1先将原来的yum源CentOS-Base.repo重命名一下,让Linux不再认为它是基础yum源了。

3aa959be175248119c1d7c28e12f333d.png

~2运行wget 获取新的yum源配置文件 – 可以通过网络搜索得到 – 因为centos7已经是非常成熟的平台

383205cb261d4ee28f1f008dd35b92f9.png


~3然后对获取到的新的yum源配置文件,进行mv重命名为CentOS-Base.repo(让Linux重新认为yum源配置文件是我们新获取的配置文件)


~4运行yum clean all && yum makecache 清理老的缓存并生成新的缓存


执行完上述步骤后,就完成了yum源的更新问题。

三、扩展yum源epel-release


如果你想安装的软件,找不到,有可能就是在扩展的yum源中:epel.repo

sudo yum install -y epel-release 这个软件包可以根据我们的基础yum源,帮我们找到和它匹配的扩展yum源

然后我们接下来正常的安装我们想要安装的软件了。

sudo yum install -y xxx即可


































































相关文章
|
17天前
|
Linux C语言
linux yum安装ffmpeg 图文详解
linux yum安装ffmpeg 图文详解
38 0
|
17天前
|
Linux
linux yum 安装rar和unrar
linux yum 安装rar和unrar
57 0
|
19天前
|
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源
73 0
|
29天前
|
Linux
Linux: yum查看、安装、删除软件包
Linux: yum查看、安装、删除软件包
30 0
|
10月前
|
缓存 关系型数据库 MySQL
【Linux入门篇】四种软件查看、安装、卸载方式
【Linux入门篇】四种软件查看、安装、卸载方式
118 0
|
Linux Shell 数据库
Linux软件的安装和卸载
Linux软件的安装和卸载
143 0