00:01
大家好。欢迎大家继续收看上硅谷的云计算课程,我是沈超老师,这节课呢,我们继续来学习软件安装,那上节课我们学了一下,我们讲了一下RPM包的优缺点。但是啊,这里边儿我们跳过了一个缺点,这东西叫做依赖性。什么叫依赖性。格外?呃,我相信你们在Windows里见过类似的情况是吧,当我装软件包诶。他问我要软件包。当我装软件包B,他问我要软件包C,那怎么办?那这种依赖是最简单的依赖,叫做竖形依赖,那它的解决方法很简单,先装C,再装B,再装A就可以了。但是。这事儿。现在咱们说起来简单,但是在实际用的时候,有可能它会依赖的包比较多。比如说超哥就曾经见过这个,呃,这个这个装一个软件包依赖了二十七八个包,到最后自己都忘了,装这个包是为了干嘛都忘了。
01:06
那Windows下有过类似这样的事儿吗?有,Windows不够减轻,Windows下不是所有的包都这样,只有少数的包,比如说最最常见的就是游戏。嗯。有有有咋写的,哇塞,我是我写成啥了啊对。最常见的就是游戏,各位现在的游戏,因为它这都是大型3D的,所以它需要的这个组件比较多,既有什么微软自带的那个叫direct的那个多媒体这个,这个就是direct的那个平台,还有他的那个什么,呃,什么什么VC加加,什么2005 2010等等,还有什么这个点nework等等这样的一些组件,甚至还有什么各种也有。不装游戏就玩不了,对吧?但是Windows是只有极个别的程序有这种情况,绝大多数的程序包Windows下都是都是很友好的,装完都可以用,而linus呢,差呢?
02:05
Linux是绝大多数软件包都有依赖性。也就是说,你装哪一个包都会发现,诶装他会叫他,叫他叫他。这事儿是不是就很讨厌,要了生命对不对,而。竖形依赖各位虽然麻烦,但是有时候其实你只要慢慢装还是能装上的,但是会有另外一些情况就会更恶心,比如说叫环形依赖。什么叫环新依赖?当你装A,他问你要B,当你装B,问你要C,当你装C,回头又问你要A。哎,这个从理论上来说,从原理上来说,有可能他就装不了。对不对,但是啊各位。呃,这种依赖解决起来也很简单,它的做法就是把ABC3个包同时装,用一条命令,然后开始安装,三个包同时装,它就解决了。其实也并不复杂,那真正的恶心的之处在于哪?在这儿?
03:03
各位超哥曾经就一度认为,咱妈我宁愿用比较麻烦的源码包,我也不愿意使用。阿片包,其实主要原因就是依赖性当中的模块,依赖这个东西要了亲命。什么是模块依赖?首先我再说一遍,模块其实在我们这儿就是函数库,就是函数库依赖啊,其实应该是函数库依赖啊,一个意思,那我们说。我们试一下来,我举一个例子,我装一个软件包,各位首先我们先说一件事,什么安全包在哪?各位,之前我们就说过了,秦供给你们拿皮包就在什么在给你们的这个。光盘镜像在哪,随便打开一个啊,我们这个。他在哪?在这里有一个叫做package的目录下,包的目录下进来。这里面。两三千个都在这儿,这里边有3000啊,这这3200多个文件啊,3000多个,所有的拉平包都在这里,一张牌放不下怎么办?所以才会有第二张牌。
04:07
对吧,那我现在要打算开始安装了,那我们先首先第一件事,是不是咱得蓄机里放入光盘。我这是应该是放过对吧,放金阳光盘,然后呢挂载吧。挂着吧。那我们干嘛,先看一下挂了呗,没有,那我们mount。D为X20,挂载到MNTCD入口,当然小心啊,前提是你这里边是不是光盘已经放进去了,对吧,好进去。进来,那这个时候看我们的所有的R片包都在这个package里,我们进去进到这个目录像,注意大写啊,Linus严格区分大小写的啊,进去这个时候所有的包都在这里啊,3000多个。
05:00
需要点时间好。那各位我们现在还并不是在讲安装,我所以只举个例子,安装选项我们大概看一下,我们后面还会详细讲安装命令。RPM后面的安装选项杠,RV习惯选项,只要是安装都用这个选项,然后后面加完整的包名。我安装一个叫做my circle connect ogbc的这样一个包,注意。这个包你们做实验的时候不需要你们装。我拿这个包的目的只是为了举例,函数库依赖或者说模块依赖的这个报错,我最终也不会把这个包安装成功,也不会装大,哎,OK,换句话说,这只是为了举个例子,那这个包我们是用不着了,暂时,所以不需要你装,这是干嘛的?这是一个MY斯Q连接的中间键啊,这是一个服务,后面我们现现在也基本上就算开发工程师也不用这个OTTC的中间夹,那他们会用什么p Du啊等等的东西,然后我们这个后面再说,这都不说,今天都不用装,就不用装这个东西,OK,我装它的唯一目的就是为了让它报错,OK,好,那我们装一下。
06:12
安装rh my circle,然后O这个connect odbc啊这样几个,其实它你会发现它里面有很多个connect,然后有这个ODBC的话,现在找这里面,现在默认自带的就只有这个,那我们就这个啊好。装。好了各位,哎哟,报错了。失败的依赖性,Feel的失败。dependence是deep的名词,Deep是依赖的意思,这就依赖性。那好,我先问你一件事,我们学员经常问我的事儿,我问你。我装的是这个包,没错吧?为什么我依赖的依然是这个包?你告诉我为什么?哎,这就是我们学员经常问我的东西啊,为啥我告诉你再二的系统也不会出现什么你装一个包依赖他自己的这个情况绝不可能。
07:10
那什么原因啊?你搞错了,Linus是被动式语句is,所以依赖的包在前面,依赖的是这个。看清了,别再问这么二的问题了,出身就经常问老师,我装的是这个包,怎么根明进卖的还是这个包?我说你看清楚再问,那就只能证明你没有认真听讲了。这事儿下回小心啊,这么二的问题不许再问啊。依赖的包在前面,那好,它依赖的包叫做立博什玩意,然后so数字我说过这事啊,点so数字结尾,典型的什么函数库说过这事啊,对吧,那我们装一下它既然依赖就把它装上就完了吗?R位立odbc,看NT不键,刚刚这都是补全的啊,都不是手工敲的,看我立补AODBC对吧,没打错。
08:00
补了吗?能听见滴滴响是吧?没补吧?没不完说明什么?没补说明这个目录下没有这个包。就没有你这个开头的文件没有。有些人很聪明啊,老师,这个里边好多个文件夹,会不会在其他的文件夹里,我明确的告诉你,没有,所有的包都在这里。还有人说老师有两张牌,第一张牌没有,是不是在第二里呢?我说你也想多了没有。就是没有,那为什么没用呢,原因。这里报的错,他报的不是软件包的名字。而就是一个单一的文件的名字,报的就是这个文件。你只要把这个文件所在的包给它装上,这个文件自然而然就装上,然后呢,你就自然而然就能干嘛,就能搞清楚这个东西是谁,他就能自己解决,依赖性好。现在关键的问题来了是吧?我怎么知道这个文件在哪个包里?
09:03
我怎么知道这个文件在哪个包?各位。原先我们只能靠猜。看这个文件名长得和谁像,然后呢,就尝试把其中一个包装上,猜对了,恭喜你,这事就解决了。没猜对还得接着猜。我就说啊,痛苦之极啊,为什么拿这个举例,这个东西我深恶痛绝,因为当年这个包我当年拆了。可能得有小一个月都没猜对,就今天猜猜,猜烦了就就够了,然后不想再装了,就就拉鸡巴倒就就完事。所以这个事简直是深恶痛绝,我对这个东西简直记忆深刻。那么各位,有人说这事不行了,是不行也不行,所以人亥子觉得不行,不能让你猜,所以他给我们准备了一个网站。我们打开这个网站,我已经打开了国外把这个。函数库的名字复制一下。
10:00
然后在这里搜索栏里把它粘贴进去,然后点搜索,他就会告诉你这如果要想装这个弹出库,在不同的版本里装哪个包,那比如说那我们现在是3S,我们现在是3S6装的,就是这个包装上就有了。OK,换句话说,它是通过查询一个。准备好了安全包依赖的数据库,然后来去解决这个事儿了。而且可恶之处在于,为啥我说我们当年就是靠猜原因,这个网站当年是没有的。我们当年在学习使用Linux的时候是没这个网站的。那没有的话,那他就只能靠猜了。恶心了吧各位,所以我说当年这玩意儿简直是深恶痛绝,我跟你讲,我所以说我宁愿使用元宝包,哎,我哪怕报错了,我有问题,我自己来这个解决,我也不愿意用阿片包。原因,其实根本原因就是这个模块依赖或者叫函数混依赖,OK好了,各位轻轻了解决方法吧,函数会依赖的解决,OK,当然我再说我们不打算去装这个包啊,所以这这些我就不不装了,就到这儿我就告诉你什么叫函数互依赖,我再说一遍,函数库是有典型的。
11:18
格式了。So,数字结尾只要看到它,你就不用再找了,他就是必须得查网站才能知道它是属于哪个包,OK。要命吗?而且我跟你讲,就算今天我们的模块依赖这个so的这种依赖能够通过网站解决R全包的依赖性,用起来也很痛苦,因为什么我说了,有时候一依赖好几十个包,装着装着自己就懵逼了,自己到底为什么装这个事儿,为什么这个人他妈我在哪,我在干什么,我是谁,什么都不知道,都有这情况,包括我们都有,所以我说。依赖性很讨厌,虽然我们前面一直在讲阿偏包会更简单。但是这是建立在不需要解决依赖性的情况下。如果真要解决依赖性,要了亲。
12:04
那怎么办,各位?Red也觉得不行啊,这个依赖性全手工解决,我靠,要了命了,谁也受不了怎么办?所以我们的I全包现在出现了两种安装方法,一种我把它起名叫做手工应律安装。所谓的手工命令装,就是需要你自己来解决依赖性的,就像我刚刚一样,依赖哪个包,你提前把它装上,依赖这个函数,这个函数库你就自己去找。你就自己去找,找到哪个把它钱装上麻烦。那么还有一种叫做亚姆在线安装。And。各位,你牢牢记清楚,Linux当中没有亚母包,只有两种包,源码包和。二进制包在red he当中,二进制包就是偏包。我同样也有可能会把RP包叫做默认包,叫做默认软件包,原因我们Linux的默默这个安装系统安装就采用的是安全包,所以我把它也叫做默认包,OK。
13:10
我把它也叫做默认软件包,那也就是说我所谓的二进制包、RPM包,默认包指的都是这一个包,Linux只有这两种包,搞清楚没有亚姆包亚么?仅仅是R片包或者是二进制包的在线安装方法而已,没有这样独立的包。搞清楚概念啊各位。以后如果我们是线下学员,我就会给学员威胁一下,学员为啥这种事儿是没有惩罚,他绝对记不住,我就会告诉他以后再让我听见,如果你说样包发现发现实践器啊,其实实践检验威胁是有作用的,当然你们听视频的都候在远程,我可能找不着你,那你看吧,自己给自己加点吧,记住。亚M不是单独的包,亚M是RPM包的在线安装方法而已,没有独立的样包,听清了不要再出现样包,OK,那也就说亚M的原理是啥?
14:09
它是啥手安装,是不是自己在解决就来学,要么是啥。它会自动的连接到red的官方服务器上。然后呢,呃,然后呢,它会上面在官方服务器上建立数据库,然后呢,不论你依赖的是什么包,不论你是数据依赖,环境依赖还是模块依赖,它都会自动把它下载回本地,然后呢进行安装。哎,方便了吧。方便了吧?也就是说,如果用亚安装一条命令回车,所有的依赖性,不论是依赖几十个包、几百个包,都全自动安装,不再需要你手工解决,这就非常方便。但是亚姆也有一点小问题。哎,各位,有些学员说亚姆需要联网,各位因为啥,我们线下的教师都是为了避免你们这个干别的事儿都是不给网,所以联网就是一个问题,但是我说其实亚姆的问题不在联网原因。
15:05
就算我们不能联网,比如说我后边我也会教你我们用什么光盘来搭建本地养源。因为光盘里包含所有的IP包,所以不需要联网,所以问题亚么?问题不是联网,而是什么?Re,认为亚M是售后服务,他需要收钱收费,各位他认为这个功能是售后服务,所以如果你真用的是正版的red hat系列,你必须要去买它的CDK。然后才能使用样本,否则样本用不了。那这也是为什么我们推荐大家使用散托S的主要原因,散托S的亚M就是全面费了,OK,好好牢牢记得啊,要么没有包啊,要么是一种在线安装方法而已,好听清了。各位,我们这节课再解释依赖性,各位,依赖性常见的有三种,树形、环形和函数库依赖,那其中最恶心的就是函数会集来,它的解决办法是需要查单独的网站才能找到,但是我们说了。
16:13
我们现在自带的这种在线安装方法可以完美的解决这个问题,所以亚还是说R全包是非常简单的好。这节课的内容就是这样,我们下节课再见。
我来说两句