linux入门---yum的使用
目录标题
前言
我们平时肯定使用过软件,比如说qq,微信,抖音啥的,但是最开始我们的设备上面是没有这些软件的,所以我们得将设备联网,再通过网络将这些软件的安装包下载到我们的设备上面,但是这里就会有个问题我为什么下载这些软件的时候得联网呢?答案很简单,因为这些软件的安装包并不在本地上(你的设备上面),而是在别人的电脑上(远端服务器),所以在下载软件的时候我们必须得联网,不然无法链接到拥有软件包的服务器上,
好这里又有一个问题,世界上有那么多个服务器,每个服务器拥有不同的安装包或者压根没有安装包,那我们的设备是怎么知道要连接的服务器在哪呢?那这里不同的设备就有不同的方法来进行连接,比如说日常使用的电脑,在下载软件的时候一般是在百度上搜索这个软件对应的官方网站来进行下载,比如说之前下载的xshell
就是在这个软件的官网来进行下载,那么这时电脑在下载这个软件的时候就是直接通过这个下载链接来连接官方的服务器来获取这个软件的安装包。手机在下载软件的时候就又不一样了,不同品牌的手机都有一些不同下载软件app,比如说华为应用商店,小米应用商店,apple store等等,那么这些手机厂商将各种各样的软件全部都收录在自家的服务器上,这样用户在下载软件时就是连接自家的服务器来获取对应的安装包,之所以这么干的原因就是手机厂商可以通过这个应用商店来赚取软件厂商的钱,比如说淘宝的公司想让淘宝出现在华为应用商店的首页或者让淘宝在华为应用商店打个广告的话,那么该公司就得给华为一些小费对吧,那么这就是手机在下载软件时的一些区别,那么这里就又存在一个问题,这些软件是谁放到服务器上的呢?答案是一些企业一些组织或者个人,他们为了某种利益,为了一些目的将自己研发出来的软件放到了服务器上,好看到这里我们再来学习下面几个问题:window操作系统的电脑是通过官网来获取对应的软件,手机是通过应用商店来获取对应的软件,那我们使用的Linux云服务器它又是如何来下载软件的呢?它又是如何链接远端服务器呢?谁向linux云服务器提供的软件,这些软件又是放到了哪里呢?那么我们下面就来探讨一下这些问题。
谁提供的Linux软件?
我们在下载linux工具的时候没有遇到过要钱的情况吧,我们在使用Linux工具的时候没有遇到过先观看30秒广告再使用的情况吧,那么之所以没有出现上面的情况,是因为我们使用的linux操作系统本来就是开源的,所以上面提供的软件也都是开源的软件,如果某人在Linux上提供了一个付费软件,那么这个软件估计过不了多久就会被某个大神攻破然后发布一个免费且功能一摸一样的软件,所以在linux上的软件都是各位大佬提供的且开源的免费软件。当然也有一些人通过Linux这个开源的生态做出一些软件来获取一些利益,那么这些软件就不是针对我们个人而是一些公司,这里就跟Linux软件没什么关系了,大家不用管。
Linux上的开源软件放在了哪?
linux中存在着各种各样的社区。这些社区存在的意义就是开源分享互助进步当然还有个好处就是帮助一些个人找到组织以此来分享进步,尤其是帮助那些有开源精神还有钱的人找到组织。开源软件每个人都会写,但是写出来的软件要放到服务器上,那这个服务器的钱得谁来出呢?不可能要使用者个人出吧,如果要个人出的话那么对于这个人来说linux操作系统就不是免费开源的了,所以这时候就凸显了组织的重要性组织有对应的银行卡号他们可以通过这个银行账号来向社会发起募捐,得到全国各地的捐款后这个组织就可以用这个钱购买服务器,然后将开源的软件放到自己租用的服务器上。
Linux客户端如何下载软件呢?
这个就很简单了,软件所在的服务器是Linux社区购买的,你使用的linux客户端也是Linux提供的,你使用的整个生态都是linux社区提供的,那我要是像找到我自己不就是轻而易举的事嘛!所以这里实现的方式就是不同的社区(centos redhat等等)都会在自己的Linux中内置服务器和应用对应的下载链接,linux客户端就会通过一些软件来访问这里的链接进而找到服务器上对应的软件,这就好比在手机上使用应用商店的时候我们只需搜索抖音然后下载安装即可,你不用管这个抖音的下载链接是多少,这个软件的安装包在哪个服务器上,应用商店已经内置了对应的下载链接我们只需点击下载就可以了,那么这里就有一个问题Linux中是哪个软件来通过链接找到文件呢?答案就是yum,这个指令等同于手机上的应用商店。
什么是yum
但是这里有一个问题我们上面所展示的生态他是国外的,买的服务器也是在国外,所以链接也是指向国外的,那我们中国人如何来通过这个链接来找到国外的服务器呢?答案是不好练因为服务器太远了不稳定,加上国内的一些拦截技术导致我们根本就访问不了一些服务器,所以为了应对这种情况我们国内的一些厂商和高校(比如说清华,阿里巴巴搜狐等等)就镜像了国外的软件服务器也就是将国外的软件服务器上的内容全部都拷贝到自己的服务器上,仅仅拥有自己的服务器还不够,毕竟操作系统是别的国家提供的,这个操作系统上的下载链接还是国外的,所以这些厂商还提供了一套国内的下载链接配置文件用来替换linux原来的内置链接,那这里我们就把一套下载链接配置文件简称为yum源。
我们一般使用的都是云服务器这些服务器在出厂的时候都帮我们配置好了,但是我们还是可以修改操作系统中的内置链接使其指向国外,但是这种做法非常的不推荐因为十分的不稳定,好看到这里想必大家能够总结出yum是什么?yum是Linux中的软件管家,他提供了各种软件,我们可以通过yum来搜索和下载各种各样的软件。
如何使用yum安装
yum在安装软件时使用的指令是install,在install后面加上你想要执行的指令,比如说我想要下载tree指令就是
yum install tree
我想要下载rzsz,那么这里的指令就是:
yum install rzsz
将指令输入完按下回车就会出现这样的现象:
这里会停一下问我们是否要继续安装,这里的y是yes的意识表示确定安装,d是delete放弃的意思,N是no的意思,那么这里大家只需要使用两个y和N就可以了,剩下的d可以不用管,这里我们输入y就可以将tree成功安装到我们的机器上,那么这里大家要注意的一点就是一般这里的软件安装到操作系统了,该系统的所有用户都可以使用这个指令,一般不存在wj用户安装就只能wj这个用户使用,按下回车后就出现这样的现象:
出现了complete就表明这里的安装成功了,当前的用户是root,使用tree可以正常执行,我们将用户进行切换改成wj也照样可以正常执行:
最后一点这里大家要注意一下就是yum在安装的时候,实际上是一个拷贝的过程,将远端机器的一些文件拷贝到指定的目录下,但是这个指定的目录是有权限的,而普通用户是受权限约束的,所以普通用户没有权限使用yum指令来下载软件,所以在使用yum的时候要么是root用户要么使用sudo来进行提权,那么这里大家要注意一下。
如何使用yum查找
yum的查找得用到 list选项,比如说下面的操作:
按下回车就会出现下面的现象:
然后就会列出所有可以安装的安全软件:
这里显示的可安装软件非常非常的多,我们不可能一个一个的查找我们想要的软件,所以这里的yum就提供了一个查找的功能,在yum后面加上一个search然后跟上一个名字就可以进行查找了,比如说查找一个名为sl的软件就可以使用下面的指令:yum search sl
:按下回车就会出现下面的场景,
使用search指令查找时,只要软件名或者安装包名中出现了关键字就会将其显示出来而且还会附带这些软件的说明,那么很显这个方法的查找是非常不友好的,因为字太多了不方便我们查看,而且关键字的出现也没有变色处理,所以我们在查找软件的时候一般先用list将所有软件都列举出来放到管道里面,然后再使用grep指令在管道里面查找对应的软件,比如说下面的操作:
这样查看内容的时候就简洁了很多,方便我们查找想要的内容,我们往下翻就可以看到我们想要的软件:
那么这就是yum的查找。
如何使用yum删除
yum后面加上remove选项和对应的软件名就可以删除软件,我们来看下面的操作,首先使用install选项来下载一下sl软件:
然后我们就可以输入下面的指令来删除下载的这个软件:
yum remove sl
那么这就是yum的删除。
yum的一个问题
看了上面的介绍大家应该知道了如何安装查找删除一个软件,但是大家心理应该会有一个困惑就是我怎么知道我想用的软件叫什么名字?我怎么知道这个软件的功能是干嘛的?对于这个问题最好的方法就是日积月累,没有人生下来就知道购物可以使用淘宝,京东这些软件,没有人天生下来就知道网咯上聊天可以使用微信和qq这些软件,所以在往后的学习过程中我们就得积累一些软件的功能和名称,这样我们后面的使用就会越来越顺利,比如说我下面给大家介绍一个软件叫lrzsz,这个软件的功能就是让linux机器和windows机器能够实现数据传递,首先使用下面的指令来看看你的机器是否联网
ping www.baidu.com
我们使用的云服务器一直都是联网的状态,但是有些小伙伴使用的是虚拟机,就可能存在没有联网的情况,输入这个指令按下回车后就会出现这样的情景:
出现了这个就说明你的机器联网了,然后再使用root用户或者普通用户提权下载lrzsz软件:
当然这个软件有些小伙伴的机器可能在出厂的时候就已经自带了无需下载就会出现这样的情况:
告诉我们这个软件已经下载了并且是最新的版本,就可以直接使用了,lrzsz软件分为两个指令rz指令是将Windows的文件上传到Linux的当前路径中比如说下面的操作,在电脑的一个路径里面创建一个文件:
然后往这个文件里面写入一些内容:
然后再回到linux机器输入rz按下回车就会出现一个窗口:
找到刚刚创建的那个文件:
点击那个user文件并打开即可,打开之后就会出现下面的现象:
然后我们再输入一个ll指令就可以看到在当前路径下出现了一个usr.txt文件:
并且这个文件中的内容和windows电脑上文件中的内容是一摸一样的,这里我们可以给这个文件修改一下名字,叫Linux.txt,并且使用sz将linux机器上的这个文件传送到windows机器上面就会出现这样的场景:
我们选择电脑上的一个路径:
点击一下确定就可以在windows的电脑上的该路径看到这个文件:
那么这就是lrzsz软件的用法,当大家在生活中看到这种软件的时候就可以尝试的去用一下加深一下对这个软件的映像,以后哪天用到这个这个功能时候就可以想起来lrzsz软件可以实现windows与linux机器之间的文件交流。
yum扩展
第一点:
我们上面说linux在操作系统中内置了软件的下载链接,yum通过这个下载链接来找到对应的软件,那这个链接在哪里呢?我们又如何来修改链接使其下载软件的时候用的是国外的服务器呢?好这里大家在Linux的命令行中输入下面的指令:
ls /etc/yum.repos.d/
就可以看到下面输出了这么几个文件:
其中CentOS-Base.repo 这个文件里面就装着操作系统中内置的下载链接也就是我们所谓的yum源,我们进入这个目录打开这个文件就可以看到这些内容:
这里有着各种各样的链接,这里的链接就是上面所说的下载链接由于我们用的是云服务器,这些服务器在出厂的时候厂商就帮我们把这些链接给填好了,所以只要大家这里的链接不是什么centos.7.org,不是centos的官网链接,就说明你的链接配置已经被别人配置好了无需修改,这些链接都是指向的国内的镜像源。如果大家以后想让自己的服务器链接到其他厂商的服务器,就可以在这个文件里面修改链接即可。
第二点
有些软件并没有被纳入官方的链接里面,所以要想下载这些软件的话就只能访问一个非官方的软件库,这个软件库需要大家先使用yum指令下载:
yum install epel-release
下载完之后大家就可以在这个/etc/yum.repos.d/
目录下看到一个名为epel.repo的文件:
打开这个文件就可以看到一堆链接:
那么这些链接都是指向一些非官方的服务器,官方服务器中的软件都是安全可靠的,非官方服务器中的软件就还需要得到一些安全认证才能进入到官方服务器,所以我们这里就可以把非官方软件库称为官方软件库的储备池。
第三点
我们使用yum安装软件A的时候,单纯安装软件A就行了吗?很明显不行,比如说我们电脑在下载vs2019的时候他不止下载了一个vs2019,他还把c/c++的动静态库,c/c++的编译器和编辑器等软件全部给你下载了下来,你以为你只安装了一个软件但是软件和软件之间是具有关联的,那么这里我们就把这种行为称为软件与软件之间的耦合性。那这时候有小伙伴就要说啊,那我以后下载软件的时候是不是得把一个软件的所有关联软件全部都使用yum下载好呢?这里是没必要的因为yum在安装你指定的软件的时候会自动解决软件与软件之间互相依赖的问题的问题。
更多推荐
所有评论(0)