00:01
那咱们前四课呢,已经给大家大概描述了在Linux中软件的一些概念啊,那我们提到了一个软件程序要运行,通常来讲呢,它是要依赖于一些相关的库的,那我们在生活中每个人并不是完全孤立的。都是要依赖一些外部的资源。啊,你去做一些事儿,或多或少要借助一些第三方资源,那么一个程序运行同样也是要依赖于一些相关的苦。那么这些库如果丢失了,那软件运行将无法完成。那事实上对于我们的软件来讲呢,啊,非常重要的就是。库的本身,那到时候我们在后面学习的时候,你会发现在Linux中啊,没什么神奇的地方,无非就是linu内核,再加上软件以及相关的库,这是它的最核心内容。
01:09
啊,无非就是再加一些配置文件,但这个配置文件呢,是配合软件来告诉他怎么去使用的,那有一些简单的软件,连配置文件都没有啊,但是库是必须的。当然我们发现。很多软件会共享库,而且那些库大家都差不多,有很多都是一样的。那换句话说,我们在例子中,表面上有很多几百个不同的软件,不同的程序,但是他们很多共享的东西,共用的东西是很相似的。嗯,所以后面呢,我们会有一个非常好玩的软件。这个软件就借鉴了这种思想。那能不能把所有的软件,既然大家都共用一个相类似的库,能不能这样,我干脆就做一个软件,这个软件把所有的库。
02:11
和程序都打包在一个文件里。那利用这种思想,就可以用一个程序来代替所有的软件。在上个课,我们曾经做了一个小实验。那我们发现在系统中有很多小程序啊,比方说LS。CPMV等等这些小密令。这些小命令,然后说LCPMV这些小命令,但是我发现他们好像基本上都是共享库的,这个库呢,我就放在下面。当然,我们刚上上次课讲过这个库一般都放在哪了。哪个目录啊,是不是lab或者LAB64带64的呢,就是64位,不带64的就是32位库,那我们用的各种小工具,然后LS呀,什么MV呀,这些实际上它是共享库的。
03:15
共享库,那既然这样,我们发现这些LSMV他们既然都是共享库,我可不可以这样做呢?那我干脆就把它成了一个文件得了。就是我现在外圈画的这个,我给他做一个文件。这一个文件库大家都一样吗?我就做在里面,然后无非再加一些各自程序自己的代码,但这个代码就不多了,因为共享的库呢是最主要的,那我们现在是不是可以把所有的程序都打包到一个文件里,这是成一个文件了。这样的话,这一个文件是不是就所有的功功能都实现了,当然大家可能想啊,那如果打包成一块,这个文件会不会很大呀。
04:04
那我们上次讲过压缩是吧,那事实上这个文件可以做的非常小,没你想象那么大,多大呢,一点几个兆。就可以做到。啊。因为大部分呢,都是共享的东西,实际上呢,我们每个程序自己特有的代码没有想象那么大。所以我们完全可以把它整合在一起。这个软件我们后面会用,就是busy box。这个basic box是个非常神奇的小软件,这一个basic box软件它就一个文件名啊,就一个,它就一兆多点或者两兆,哎,反正不大,以前的话就放到软盘里都能放得下。现在也不大,这一个b box,它可以提供几百个命令的功能。那么贝内box从名称上来看叫盲的盒子是不是?为什么忙啊,什么命令都能实现呀?
05:07
而且他们把几百个命令整合在一个盒子里面啊,Basic box。所以是不是很有意思呀。啊,那实际上呢,这种思想就是借鉴了我们前面给大家讲的软件的内部工作机制,所以呢,大家在学习的时候略微了解一下Linux里面内部的工作逻辑。所以后期你去学习很多软件,你自然就搞清楚它怎么回事啊。啊,这是我们上次呢给大家讲过,但是这个库的重要性已经毋庸置疑了啊,啊很关键,因此就有人把basic box。拿出来,这不就提供了几百个命令吗?当然,它只是提供了命令工具,没有提供Li内核,那么把类内核再给它加上,加上basic box,哎,好了,这就是一个小的可以玩的Linux系统了。
06:05
这个多大呢?很小很小啊,很小,就几兆就可以做到。这个就可以完成一个简化版的小利率,当然你要说功能多强也做不到,但是呢,至少能启动,能敲命令,能做一些简单的事儿。能完成了。啊,所以这就是为什么我们现在。生活中会看到一些智能设备。啊,比方说什么这个,哎,我家里有好多这个智能智能设备,比小爱音箱,小爱同学听说吧,啊啊,你像我还有扫地机器人家里的,我这人比较懒,没时间扫地,买了个机器人扫地。那实际上它内置了什么?内置就是一个操作系统,那这个操气筒,那有必要装个森透斯吗?有必要装个无帮助吗?对不对,那这些都是为了生产中装服务器用的。
07:06
那么像这种智能设备是不是根本不需要那么强庞大的软件体系,只需要个别的一些简单功能就行,那完全可以用刚才说的那种思想,那它不需要特别强大的存储芯片。只需要很很小的容量空间就可以放一个操放一个Linux啊,当然再配合他自己的硬件控制的一些软件不就完成了吗?所以市面上现在这种智能设备啊,基本上都是类似的利用的这种这种方式啊,这种方式。那今天呢,我们来继续学习软件的使用,上次呢,我们讲过一个用C语言写好的源代码,在你的Linux里面要运行,这个过程好像还是挺复杂的,我们需要通过复杂的什么预处理呀,编译呀,汇编链接啊,最终才能形成一个什么可执行文件,对吧?那这个过程过于复杂,所以我们上次也说了,那Linux的厂商,你像红帽啊,U邦兔啊,这些厂商,为了减少这个大家的负担啊,有很多人是不懂开发的,你让他去什么预处理编译,他根本不会呀,但是又想玩玩Linux,那所以干脆得了,你也别做了,我帮你弄好得了,我帮你编译完,我把这些软件常用的软件都给你编译好,甚至我都给你事先打包在一起,形成一个包。
08:38
啊,当然我们说不同的,呃,Linux系列呢,它的包的后缀它不太一样啊,你像红帽的呢,都是RPM后缀的。啊,如果是蝶变系列,那乌邦托不就典型的敌变系列嘛,那它是deb后缀的,但这个打包文件呢,它里面。有很多丰富的信息,不仅包含了你,人家帮你编译完的二级纸,就是已经编译好了,你拿回用,而且呢,它里面还定义了说这个包将来装的时候呢,到底装在哪个目录下。
09:11
他的各种信息都在这个包里面已经写的很详细了,那这样的话呢,有了这个包以后,我们只要利用包的管理工具,就可以非常轻松的把这个包里面的相关文件解包开,并且按照预先定义的路径拷贝到相关的路径上,非常方便。那这个就是所谓的包管理器,那我们今天重点来看一看如何来管理RPM包,那么对应的包管理器呢,就是RPM这个命令。在上的课呢,我们曾经看到过了,在。渗透,里面后缀全都是。这种什么RPM后缀,当然我们上次也分析了RPM后缀的文件,它支持的CPU架构啊,目前来讲有三种架构,那么一种是叉8664,这是64位的呗,那这个呢,I686,那就是32位呗,啊那有人说那我的CPU都是64位的,那你整一个32位的能运行吗?
10:18
64位的CPU是可以运行32位的程序的,大家应该知道,在Windows里面甚至我们都能看到一个文件夹叫program fair32是吗?是不是有这样的一个文件夹?你看在Windows里面,我们C盘下。啊,你看这是不是有一个叉八六啊,这这个就这个,这个应该就是啊,64位这个叉八六应该就是32位应该是,那就是这两个它是分类了,听见了吗?一个32位,一个64位,这是不一样的啊,所以呢,呃,也就意味着我这个CPU就是64位的,它也能支持32位的软件,64位的软件也都支持,当然反过来,如果拿一个特别老的32位的一那个CPU,你能运行64位的应用程序吗?那肯定是不可以的,对不对啊,当然这个除非除非都是20年前的电脑了。
11:16
是吧,啊,那现在一般都是64位的CPU了啊,所以这个就不存在这种问题了啊。好,那另外这这个就表示的是。这个软件和CPU无关,CPU无关no啊,那就是你什么样的嗯,系统都能运行,那为什么会有这样的no ARM的呢?就是因为这里面根本就没有放二进制可执行文件。因为二进制可行制文件肯定是要进行编译,是针对32位还是64位就要进行编译的,而我们no ARM这种包表示它里面没有二进制文件,比方说都是文本,你说文本文件什么样的,32位60岁不能看呀,是不是和CPU架构就无关呀,对不对,哎,那所以那就是弄完了啊,当然这种包不多了啊,好了,这是刚才我们曾经也看到过的,上次我们已经讲了怎么把这个CPU架构取出来了啊,那么对于。
12:19
一些软件来讲呢,呃,红帽公司考虑到将来使用的方便,他把这些软件呢,按照类别做了一个分类。那么把它分成了不同的子包。以前的话呢,比较粗,你像早期的R包呢,是比较粗略的,就是只要是这个软件德文都给你打成一个包。打成一个包的话呢,就产生了一个问题,就是如果有人想利用这个包里的某个某几个文件,那你没有办法,你只能全装,那事实上比方说这个包里面带了100个文件,实际上你只想用其中的十个,那也没办法,你只能把这100个都装上。
13:03
你不能挑,因为它在一个包里,你不能拆呀。后来红帽呢,就开始把它细化了。他就把这个一个大的稍微大点的软件呢,给它分成子类,分成类别,那分成类别以后呢,不同类放在一个单独的小包里,比方说一个原来100个文件的大包,现在给它拆成三个包,拆成三个包,一个包大概30个文件,这样的话呢,而且它分好类,比方说有的是服务器包,有的是客户端包,对吧,有的是文档包,他给你拆开,开发包都给你拆开,拆开以后呢,你将来比方说我就想装客户端包,那你就把那客户端那个那部分装上就行了,那他也就只装个二三十个相关的文件,那就不会装那服务器包了,这就是所谓的划分子包的概念,那大家可以看到我这儿有一些例子啊,那你看这是主包,然后还有开发相关的包,什么工具包、库包,看到了吧,哎,就是它把它称成类啊,你想装哪个你就挑,当然你也也可以都装啊,无所谓,根据你的需要都安装也行啊。
14:08
当然包和包之间可能会有依赖性,实际上这个好理解啊,软件之间或多或少可能会有依赖关系,咱们装Windows不有的时候它也会提示你说缺什么东西嘛,对吧?那么在Linux中,包和包之间也会存在一些依赖性,不过呢,这个包的依赖性对于我们目前学习的rma这个包的管理工具来讲,它是无法解决的,它顶多能提示你说我缺一个包。啊,缺个什么文件,至于这个啊,你去哪找他就不管你了啊,他报个提示而已,那么我们在安装使用一个RP包文件的时候,这个包文件里面到底包含了什么呢?实际上很简单,大家看,这就是我们。光盘光盘我们都知道在渗透S8上呢,它是分成两个,跟文件夹都放了包,渗透器上没有啊,渗透器上只有一个啊哟,系上这个光盘没挂吗。
15:09
难道又又?7.8。啊,真没有。那那个版本升级了是吧。嗯。原来是不是带的是7.7款。这个是1908,那可能是应该是七点,这个是7.7的可能是。那7.8的还没有,你们到时候拷一下吧,哎,你那有服务器上有7.7吗。服务器上有没有7.7的下一下。那你就下一下,下一下,待会我给下载下来。
16:02
这是7.7的,这七的没有7.8的,你把7.8下来,你传上去,传上去我待会下。啊,实际上无所谓了,用这个呃,较老一点的版本也行。当然最好还是相匹配啊啊,然后我们来看进来了,这个当然稍微老一点点啊,老一点点啊,我这个系统呢,是七点的7.8。啊,那在这个自动器上呢,它把所有的包都放在这一个文件夹里了,叫package,这个package文件夹里面做了放了所有的包啊。几千个包都在这里面,那这个包每个R线包里面存放的内容。
17:03
包括这个包里面涵盖的文件啊,每个包都有大量的文件存在,那这个文件呢?呃,我们一般来讲是通过对应的命令就可以直接把这个包里的文件给它展开,然后呢,解压缩到某一个预先指定的目录,而且呢,这个包里面还涵盖有一些信息,比方说到底这个包里面我去安装的时候,它依赖于哪些其他的包。啊,包括这个包里面每个文件的原数据。他都有信息,所以这个并不是一个简单的打包啊,啊,虽然说他表面上有点像他。啊,就是他就是简单的把文件打包,但是呢,它里面还定义了一些其他的信息,比方说啊,安装的时候到到底把这些对应的里面的文件解压缩到哪些目录下,应该设什么样的权限,甚至里面可能让他带一些脚本,也就是说当你去安装这个包的时候,它可能会预先把里面定义好的脚本来触发执行,所以呢,这个包它是一个功能强大的文件格式啊,功能强大的文件格式并不简单的是个打包。
18:14
当然这个东西我们要想把它打开,看一看里面到底包括哪些文件,实际上很简单,那比方说就这个文件吧,这个文件我要把它打开,那么我们可以这么来打开,有一个叫CP。呃,RPM to CPI这个命令,然后用cpio。然后预览,预览是TV,还记得吗?好,大家看,这就是用这种方式,我就把这个亚U这个RP包里面涵盖的文件列表就全列出来了,大家看到了吗?哎,这里面列出了很多很多文件,而且每个文件的大小啊,属性啊,这里面实际上都有看到没有,所以这样的话呢,我们看到了,当然这里面的东西实际上应该都是Python文件啊,这些都是Python程序,这都是Python啊,这个可执行文件都是Python写的,嗯。
19:10
好,这是我们给大家说的这样的一些工具啊好,那另外呢,我们刚才提到了这个R包。它里面可能会存在这种所谓的依赖关系,甚至可能会出现循环依赖,循环依赖呢就是我安装A包,他说你得把B包先装上。啊,当你装B包的时候,他说你去装C包,当你装C包的时候,它提醒你就缺A包,那就是循环依赖,循环依赖啊,啊这个我们安装的话呢,RTM有一个命令就直接可以安装,那么它这种依赖关系呢,有可能会循环循环怎么办呢?那你就一块装上,你把ABC都找着一块装就都装上了可以了吧?哎,那么依赖关系这个是必须解决的啊,否则的话,那就会导致安装失败,嗯,那么对于包它有解决的依赖关系的解决方案啊,比方说我们以前是用亚M,现在三楼八上呢,推出了DNF啊,包括乌邦tu上sur这些Linux版本中也有对应的解决方案啊,这个我们后面再说,那刚才我们也提到了一个程序包可能会包含哪些文件呢?就是。
20:31
那这个包里面有若干个文件,每个包自己有自己的文件,然后除了包文件以外,还有原数据,比方说这个包的版本,这个包的依赖关系,这个包包的作用等等,甚至还有脚本。当然我们说并不是每个包都有脚本啊,就是有的脚包里面带脚本。这个脚本作用就是当你安装某个包,它会自动触发这个包里面脚本的执行,当然也可以卸载那这个脚本,比方说我们可以这么干,当我们安装一个包的时候,让他自动的执行一个脚本,创建用户账户,创建用户账户我们都知道创建用户账户这个东西不是包。
21:21
不是文件,就是触发一个命令的执行,那and user啊user and对吧,那这个就会写在脚本里面,让包来触发运行,那另外一点呢,就是当我们把一个包安装完之后,它会把这个包的信息存到一个数据库里去。这个数据库是大家所有的包共享的,所以叫公共数据库。这个数据库叫we lab RPM,这里面就记录了你当前主机上安装好的各种RP包,包括他们的名称、版本、依赖关系、功能说明,包括各个文件在磁盘上放到哪去了,包括这些文件的属性。
22:08
校验信息都会放在这个文件夹里,这个文件夹是存放RP包安装完了的公共数据库。对了。那大家可以看到这写的这个文件中,这些文件记录的就是你当前二维包里面安装完了的文件信息,这个数据库文件夹很关键,千万不要破坏了。如果破坏了,导致的结果就是你安装软件没法装了,为什么呢?因为他要安装软件,它是要查这个库的,查这个库说哎,你装上没装上,如果有那就不装了,他就会提示说已经安装,那结果你把这个库破坏了,他他没法查了,没法查也自然没法装了,那不仅是没法装,卸也没法卸,因为什么他不知道你有装了哪些包,听懂了吧,你没法卸了。
23:06
所以呢,这个文件夹不要破坏了啊,不相信你可以试试对吧?啊,当然接下来呢,我们就来说一说RP包这个怎么进行管理啊,怎么进行管理,那么RPM包它的来源不用说了,我们可以光盘里拿到,那除了光盘啊,从互联网上也可以下载它的这个原文件啊,你像我们我现在就学SS,我直接看看能不能直接把它下来啊。啊,这个这个。阿里云的网站。哎,阿里云的网站还是比较信信任的,虽然他有的时候也掉链子。这样诶,我去倒一下这个这个七的最高版,七的最高版点七就行了啊,点七就是相当于最高版七点八一样,1.7.8和点它一样的,然后这边is SOS啊,点开这边有一个everything嘛啊最小化安装,最安装也行啊,最安装不过它依赖的软件不太多,我们就把这个装一下吧,你看这个2003嘛,就是2003年啊,什么2003年,2020年3月啊,2020年3月。
24:19
嗯。哎,你看这个,这个是我现在在window装是吧,Windows。那就这点就行了。这个也下的很快,估计跟咱们局域网差不多,你看露露这个。也不慢。是吧,那我还不如从互联网下,有的时候局域网还不如互联网快呢。十来分钟就下完了。应该。哎,怎么还在涨啊啊,这么着吧,让他慢慢下吧,好了,那这是我们刚才给大家说的啊,哎,那接下来咱们来看一下。
25:06
除了。国内的S镜像站点,那如果我安装的软件不在光盘里面。那从哪去找这些安全包呢?还有一个非常著名的地方,就是红帽公司。他把一些比较常用的软件包。但是。太多了,直接集成在森豆的光盘里面放不下了,因为深度光盘我们刚才看到了那个已经少十个G了都。你再把这些太多的软件都放那几十个G,那光盘的特不价了,所以呢,干脆他就放在网上去了。但是这些软件都是很。很常用,而且经过检啊检检查都是没有问题的。那这个包叫什么呢?叫EP,叫extra package for enterprise LIS啊,就是说对于企业的Linux版本啊,额外的一些包,那这些包。
26:09
是经过红帽测试过的,你放心用。我们是可信的,那不过呢,因为包太多,所以它没法放在光盘里,所以就放在网上了,放在哪呢?这是它的官网,不过这个官网我也不愿去看,太慢了,那咱们国内也有镜像网站,比方说阿里云啊什么啊163啊什么这些都有啊,这些我们也可以去看一下,那在哪呢?就在这个地方,那EP1看到吗?EP1,呃,EP11呢,这个地方你要配合啊,配合什么呢?你要配合你用的是哪个版,比方说我是八版本就选八,七版本就选七,六版本就选六啊,你是SS6,你就选六,明白吧,八版本就选这个,那八版本的话呢,它的这个包要在这个everything里面。啊,这里面是分CPU架构的,我们现在用的最主流就是叉八六十四就这个,然后这里面就有包,那在哪呢?Package看到没有,这里面它按照abcd划分了,这里面有很多包啊,然后随便找一个。
27:10
你点开这些就是。一批圆,里面携带的包很多啊,很多这些包可以来用。呃,当然还有一些站点,比方说r for,不过这个站点早期红帽公司还比较推荐。它里面有很多安全包,不过呢,现在这个网站准备关闭了啊,年久失修了,还有一个包文件夹,就这个,这个网站也不错,这个网站它里面有一个非常好的功能,就是它提供了最新的内核和一些硬件相关的包,这个很好,我们都知道渗透S的。内核版本,尤其七啊六啊,这个版本是非常老的。
28:03
那么这个内核比较老,有些新特性你用不了,那么怎么办呢?诶,你就可以利用这个网站上提供的二分包来安装新内核。安装新内核,那这里面就提供了。相关的包。啊,你看这里面有abcd开头。然后当然它很多都是和硬件和内核有关的啊,硬件内核有关应该都是硬件啊,那么我们比较关注的不是硬件,是内核,看看K开头的有没有kel,看到没,是不是有kel LT LT呢是长期技术知识版。MP呢就是主线版本,主线版本就是相对比较新,但是它并不是一个长期基础知识版啊,看看这个主线版。能打开看一看什么内核啊。
29:03
这需要你要单装的话,你需要把这个安装一下,安装一下这现在看不到,安装完了以后呢,看到啊好,那这个是我们后面会给大家说的啊,也比方说我们后面会给大家讲怎么去升级内核这个路径啊,这个应该可以打开,比方说七的话呢,它的版本有什么。呃,版本看一看,诶,你看这边有那个叉八六十四,然后这个就是R3包点开,你看它这个LT版本是4.4版本,还有ML版本是5.8,哎5.8是不是好新呢。那盒的最新版不就5.8吗?是不是,那我们上次不是看了吗?你看新不新,8月2号刚更新的呀,兄弟们是吧,很新的啊,所以你要尝鲜,实际上你要说想装最新的内盒得这现成的。直接装就行了,嗯。
30:00
咱们3S8上面装的那盒才4.18吧,是吧,四点四点,所以这个那盒呢相对比较。还是很新的啊,所以如果你要想使用最新那个,呃,你就可以用刚才说的方法来安装,那稍后呢,我们可以试一试啊好,另外呢,有些软件,有些软件也提供了R包,比方说数据库。他提供了安全包,他给你做好了,你直接把那个文件下载下来装就行了,另外还有一些是包的搜索引擎,这些搜索引擎只是用来实现包的搜索的,它不像百度啊,谷歌呀,这些是什么文件都搜,它这个是搜这个包的,专门搜包,别的不干。啊,比方说这个pkgs org RPM find这些呢,你都可以去看一看啊,这是专门来搜包的搜索引擎。
31:00
专门来搜索的搜索引擎。那么将来我们在使用某个包的时候,如果你想去找,你就可以在这个地方来搜。哎,大家看到这里面有很多包啊,甚至你可以进行搜索,在这个地方可以搜。啊,他这儿支持各种包,你看没有包的搜索。啊,比方说我想装一个什么?嗯,Rub比有没有这样的包,看看搜一搜,哎,看你看这不是有针对斯度八的rub比,针对斯度七的rub比,比方说八上我想装rub比,看能不能找到啊。这有各种各样的文件啊,这是各个组织发布的啊,啊,这个组织有没有,这是第三方。
32:03
88个包,这个官方的包等等吧,这个很多啊,所以他提供的包非常多啊,非常多。有几上千个啊,甚至什么什么这样的包非常多。好。嗯。那未来我们将来学一些软件的时候,将来我们可能缺一些包,我们可以在这个地方来搜。当然,如果你有能力的话,完全是可以自己制作儿童包的。不过呢,制作二片包相对来讲呢,要求要较高,因为制作二片包你得知道首先拿到源代码,拿到源代码以后,你要怎么去把它编译,按照相关的格式来书写编译文件。那这个你需要借助一些工具,最终把这些源代码,那利用这些工具编译完,并且打包生成一个文件,这个过程要求是蛮高的,对于初学来讲呢,我们就不要去研究它了啊。
33:15
好,那这就是我们R包,它大概从哪来,那事实上一般来讲呢,我们有的时候甚至。不去啊,找这些源代码啊,编译完的包我们就拿源代码就好了,源代码干嘛呢?自己编译啊,直接编译啊,这也是我们这章我们会讲的内容。那接下来我们来看一下包的管理工具。RPM在RPM这个文件上。要想使用这些RPM包。我们用一个工具,这个命令就叫RP。它可以管理那些相关的R包文件。那这个命令功能。
34:00
还是很丰富的,可以实行包的安装啊,卸载、升级、查询、校验啊,很多功能都能做啊。不过这个命令的全名来源于什么?那么实际上它的全名叫read had包管理啊,Package manager就是read had包管理。那应该最早我们前面应该有这样的一个简称,看一看有没有。就这个。早期的名字叫包管。后来因为这个包的管理工具很好用,所以有一些其他的组织也支持了RP包啊,其他的Linux版本也支持了RPM啊,所以呢,如果你再叫RPM红红帽的好像有点狭隘了,后来他就改名了啊,叫什么呢?叫RPM的保管利器。
35:01
那这个是不是就又嵌套了,那这个是典型的自己定义自己吧,啊这那这种行为好像我们之前学什么东西,好像见过什么基因,是不是也是这么定义的,基U是啥基因u is not unix是不是这意思,对他这个呃。欧美中他这个字母这种文化确实有自己的独到的地方,哎,咱们中国人命名有没有类似的这种命名方式。有没有自己定义的这种中国自己定义自己的这种命名方式优化,因为咱不用字母是吧,所以可能没有这种文化啊,没有这种文化啊,这个特有的一种方式啊。好,那么在互联网上呢,我们下载它的源码,这个互联网你下载的时候呢,一般来讲它的源代码名称都是这样的,前面是包名。哎,你像我们上次呢,下了一个那个,呃,Linux的源代码。
36:01
内核,然后在桌面上呢,就这个,你看它这个文件起的名字叫什么X5.8差件XZ这个五呢,就是它的主版本号八是次版本号,有的时候还可能还有一个更小的最小版本号。所以它可能会分成三个版本,你像这个之前下了一个Linux5.7.2,那这个五呢,就是它的最大的一个版本号,四版本号,还有最小的版本号啊,那这个次版本号呢,和前面的版本号比较关键重要,这两个版本号如果不变,说明就没有大的变化,但你光变最后这个这个没关系,因为它往往代表着就是修复一些小错误,修复一些小bug,但如果是五点。七变成5.8,那这个功能上应该就变了,有一些新特性就增加了啊,当然你要是从五都变成六了,那就是一个非常大的版本变化啊,那就是划时代的变化,当然说是这么说啊,这个东西实际上也是。
37:06
由程序开发者自己来决定的,他觉得什么时候想变成大白本号,自己改一改就行了。啊,所以这个东西也没有什么特别严格的界限啊,严格的界限啊,我记得Oracle公司刚刚开发它的数据库的时候,他直接就从理论上不是咱们一般都是1.02.0这么涨吗?他上来就2.0,没有1.0,为什么呢?因为对外好卖呀。哎,你说我是2.0,大家敢用1.0,谁敢用啊,对吧,你这不是小白鼠吗?对不对,它所以他上来就2.0,哎你我们这个已经是第二代了,实际上哪有第二代,他就是第一代,那就啊后来Oracle还是卖的不错是吧,很有钱。当然Oracle的时代已经过去了是吧,现在是互联网的时代了,他那一套已经不吃香了啊,早些年那说实在的Oracle公司那富的流油啊,每年那个控制一下这个利润率。
38:11
不控制的话,超了市场份额过高,就会导致美国一个垄断法会把这公司给拆了的,所以每年都得把着点悠着点,别挣钱太多。现在不行了啊,好了,那接下来呢,我们就来学习RPM这个包这个命令的用法,这个命令呢,功能恢富丰富啊,你看这些都能干,那怎么去实现安装,那安装的话就I就行了,你也可以用一个灶,不过呢,没人敲这个杠杆一灶吧,哎,多省事。那安装如果安装的时候呢,一般来讲我们还要配合一些选项,比方说安装过程我想观察,那你可以加个V,但是你要写在脚本里,那就不用加V了,脚本里脚本执行也不想看是吧花就执行了,就不用加V了,如果你要是人工执行,想看这个过程加个V,甚至还可以VV啊VV就更详细呗。
39:05
而是我们后面学的软件,你说会看到VVV还可以更详细,这个详细有不同的详细程度嘛,对吧,哎,HH呢是什么意思呢,它还可以以这个井号,井号来显示安装进度啊,百分之多少了,哎,它一个有个进度条这个意思,所以我们一般来讲呢啊,像我个人就喜欢用IV组合来实现软件的安装啊,当然我们来试一试吧,啊,我这儿来装个软件啊,当然我这个机上。啊,那我去找到光盘,然后这里面背S啊,这里面有很多软件包啊,很多软件包,呃,这个软件我想装一个,但是我得找一个我没装上的。没装上的啊,有有哪些是没装上的,那换一个吧,这个这个包里面的东西都是常用的,可能装的比较多,我们有一个叫APP的,这个APP呢是相对用的稍微稍微少一点的包。
40:08
都在这里面啊,这是应用程序啊,都是应用程序啊,这里面工具包也不少,诶甚至呢,我们看到还有什么VRSH,就抓播工具啊,看到没有抓包工具,哎,那这里面有没有TCP dump,这个应该在我的街上装过啊,你看有装过,所以这个也不用了,呃,那找一个没有装过的啊,呃,随便找一个吧,而找这个。哎,这个软件包应该是没装的,那我就装一下,怎么装呢?RTM-IV啊,你要是光加A那就直接装就行了,那么后面需要写上它的路径啊,这个文件的路径你要写上,当然由于我已经在这个路径下了,所以我就不用写路径了,写相对路径就可以了,这就是安装,大家看它就装上了。
41:03
那装上以后,我们怎么知道这个软件装上了呢,可以有一个QQ呢,后面跟上这个软件的文件名,也就是这个包名啊,不需要加后面的东西了。只需要加包名,这时候就能查到。看到吗?哎,它就能装上了,那装的话呢,你也可以卸载,卸载的话怎么卸呢,有一个杠EE就是卸载。啊,你看卸了以后你再查是不是就没有了。啊,所以我们用它就可以实现软件的安装以及卸载啊,那么安装的话呢,我们也可以把刚才那些什么VR加上看看效果啊,看起来更直观,看到了没?是不是更详细了,百分比也出来了,对吧?装完以后啊,这个软件咱们可以查一查,到底软件干嘛的呀?诶我们可以来查询查询呢Q后面可以跟一些查询的对应的内容,比方说ii呢,就是information。
42:07
就是我查这个包到底还有什么作用。到底这个包的版本是什么,这个包什么时候安装的,它都有详细信息,看版本装的时候什么装的呀。看到没,那实际上呢,咱们系统中软件的包有很多,那么这个Q呢,还可以列出所有装好的包QAA呢,就是所有的包。看到吧,所有的包,那现在我的机上装了多少个包呢?看一看498个包,这是我的机上装的包啊,那如果你是图形化安装,那可能就上千个包啊,最安装也就几百个包不多。好,那刚才我们也提到了,这个查询呢,后面要写包名,但是这个包名有一个非常不好的要求。
43:08
什么呢?就是包名,你记得住吗?对于初学者来讲,我们是不是包名记得不清楚啊,我可能模模糊糊记得一个,这个东西我记得不准呢,这时候你发现如果你包写的不准确,他查不出来,那这个东西不好啊,我哪记那么清楚啊,那包几百个包我也记不住啊,那咋办呀?哎,它也支持加上这个芯。哎,加上这个星,那么加上星以后也能够进行查询,那我们加上这个,哎,加上星别忘了加双引号,那大家看这是不是就能查到了,这是不是一种模糊搜索呀,模糊搜索啊,那你看这个地方A是要加的啊,你不加A是不可以的,加A它就可以模糊匹配。
44:00
那当然,如果你这个记不住也无所谓了,QA不是知道吗?那我想大家马上聪明的就猜到了,我们是不是配合grape,这不也更可以吗?啊,这个东西你会吧?哎,你要记不住这个QA,那你可以提这个嘛,这个我想大家都会配合管道gra一下是吧?所以这个就用的比较多啊,模糊搜索,你想怎么模糊呢?Grape的正则表达式咋东西是不是?诶,用这种方式就可以找到装好的包。啊,那么我们现在已经知道了如何去Q安装,包括Q去卸载也可以升级,升级的话呢,是用U或者F,不过这个用的不多了,升级呢指的是把旧版本卸了。安装新版本,但这个升级呢,它实际上是两种升级,一种是U,一种是F,这两个略微有区别,区别在于如果是U,它跟up是一样的功能,就是如果版本没有旧的,它没的升级,没得升级得我就装就行了,而用flash或者杠F,它就是纯升级,那纯升级就是如果没有老版本得了,那我就不装了,不升级了,因为没得升级,所以这两个略微有不同。
45:29
另外另外他这还有什么old package old package呢,就是降级嘛,哎降级我也可以降级,哎,当然我这好像暂时还没有把那个新的下完,那我这会来降级降级啊,呃,降级是这样的,那我们先看一看我这有没有。已经装好的包,比方说退吧,大家看这个是我现在目前带的包啊,它的版本是1.70,后面还跟了一个幺五点ELL8,好,那我看看光盘里面带的这个版本是什么?光盘里面这个包它是来于哪个仓库呢?呃,这边好像没有没有提示是吧。
46:14
没有提示,没有提示,那我们就在这找一找吧,无非就在这或者是在那个被子OS里面,对不对啊,那我们就看看有没有,那这里边没有,那就在那个被子OS里,在这里面应该是这里面。哎,果然在这,哎呀,这两个一样,没啥区别,没啥区别。因为我这个是7.7的光盘,我这个是7.8的系统,这两个呢差了一点点,所以这个包的版本都没有变化,你看没有这边1.7,这边1.7,所以没什么区别,所以那也就谈不上升级降级了啊升级降级了,呃,看看那个fdp那个有没有那个变化啊,这个这个看看这个版本跟我们刚才。
47:14
啊,这个因为我电脑上没有,没有的话,那肯定是也就谈不上升级降级了,呃,那看看这个吧。但是有没有?但是是四点,这是我们当前的版本啊,那那现在我装好了,但是看这个是多少。一样没区别,没区别,那就是7.7和7.8之间,大部分的包都一样,没什么区别。啊,那我就暂时不去这个降级升级了啊,不去降级升级了,实际上降级升级这个东西我们工作中也用的不是特别多,哎,除非遇到生产中遇到一些重大的bug了,一般我们装完就不动了,嗯,那么这个升级装机也是后面跟包名软件名就行了,那么这边呢,有一个叫force,这个force呢,有的时候会用啊,叫强制,那么强制什么意思呢?是这样的啊,就是我们安装软件的时候,有可能会因为某个原因它不让你装,比如你已经装了某个包了,你已经装了某个包,那这个包,比方说就以tree为例吧,这个tree这个包比较简单一点,脆这个包,这个包就是我们已经装好的包,这个包已经装了啊,那这个包呢?呃,它实际上是包含了很多文件的,每个包都里面涵盖了多个文件,我怎么知道这个包涵盖了哪些文件呢?用QL可以来查。
48:54
啊,QL可以查到去包里面涵盖的文件列表,大家看这里面包含的文件倒是不多,就这么点。
49:06
那么这个脆包安装的时候,它就会自动的把这个包里面包含的文件按照预先注意的路径给你拷到相关的目录下,哎,这是它自动放的,当然我们现在用的这个吹命令实际上就是从这来的,就是从这来的啊,当然那事实上我们也可以来查,我怎么去查某个文件是来自于哪个包。那刚才我们是查这个包里面涵盖哪些文件,对吧?那反过来我想查某个文件来自于哪个包,这个怎么查呢?也有一个查询方法,就是QF,那么这个QF呢,它可以来进行查询,看QAQFF呢,表示我们要指定的磁盘文件,它来自于哪个包啊,比方说我就想关心一下这个文件来自于哪个包,你看是不是告诉你了。
50:01
啊,可以反过来查啊,反过来查好,那现在呢,是这样的,我不小心把人家给破坏了。删了删了以后呢,我们这个脆是不是就用不了了啊,用不了了,那用不了了,那那那那咋办呀。那有人说那那简单呀,那你把这个包重新装一下嘛。是吧,那就装一下吧,那装的话呢,刚才我们说了IV找到那个T所在的那个路径啊,这个路径在哪呢?在这刚才我们。在在这个地方。啊,那我们就在这来装一下啊,它应该是在被子OS里面,应该是在被子OS里吧,啊,那我们就装一下吧,看看能不能装上啊,啊这里面没有,就在被子OS里,然后我把它写全了路径CD被子OS package就这个,诶其实我们有问题了,啥问题啊。
51:07
他说你已经装上了,那确实我是装上了,不过呢,我不小心破坏了其中的一个文件,对吧,那所以呢,导致他装就不让你装,那怎么办呢?诶,那我们可以这么做,我们强行安装,刚才不是有个force选项吗?哎,强制安装,强行安装装一下,那我们来试试啊走诶好像行了吧,你看。那这个能不能运行啊。好了吧,好了啊。但是。你不觉得这是个理想吗?为什么这样说呢?你把这个文件删了?结果。你想装,前提你得知道包名吧。
52:02
你知道包名吗?有可能你不知道,但是因为我前段是大家可以查过了,你知道现在如果你假设有这个陌生文件,你也不知道他来给你包,现在这个文件都删了,你还能查吗啊。还能查吗?诶,还真的能查,大家别害怕,这个文件虽然没了,但是我还真的能查啊,这个文件真的没了啊,你看这个命令真的没了,没没了不影响我们查询,照样你能查到它来自于哪个包流水。哎,这咋回事啊,这是为什么我都删了。这就是为什么大家理解它的逻辑了,咱们刚才说过一个文件夹,还记得这个文件夹吗?这个文件夹记录的就是我们所有安装好的包的原数据,实际上你所谓的查询,这查实际上不是真的跑到这查,你查的这个数据库,在数据库里记录出哎这个包,这个文件是来哪个包里面的,你只要保证这个数据库不坏坏就行,明白吧,所以删了也没关系,删了也没关系。
53:20
好,这就是我们刚才给大家讲的这个安装啊,当然这个安装呢,我们也可以,呃,也可以换一个选项装,不过这个装呢,估计大家不喜欢叫replace PK GS这个也可以。这啥意思,一看就知道是不是就是覆盖安装啊,替换嘛,那你强行替换也是可以的啊,那这样的话去就回来了,看到没有这就回来了。所以是可以这么做的,但是事实上除了这种方法,还有没有别的方法?啊,如果我再次把这个文件又给删了啊,这个去得罪我了啊,今天经常删它啊,那我们把它删了,那删了以后我们除了用刚才那种方法还原,还有什么方法呢?
54:14
那事实上大家刚才是不是看到过我用一个叫CPIIO的命令,看到过一个包里面包含的文件列表,那既然能看,我是不是把它拆开就行了啊,怎么做呢?那就是我们用这个命令。RPM to c。然后管道CPI。刚才我们不是预览过吗?是不是,那预览我是不是就能把它解开啊,对不对,哎,能给它解开,比方说我们找一个这样的文件夹进到对塔里吧,啊然后怎么解呢?ID。
55:07
为解谁呢?刚才我们曾经看到它的文件了,这里面不有一个脆吗?我只解了一个文件,如果你不写的就全解开了啊,我只解了一个文件,注意前面有个点啊。解开了,解开以后解在哪了?解在当前定下是不是解开了。解开了,那你知道应该怎么办了,怎么办呀?把它移回去吗?移回去不就行了,移到目录下是不是却又回来了?看明白了吗?但是这种方法有一个缺点。需要大家注意权限问题啊,因为你这样做完以后,你这个一来一去的属性变了呢。是不是属性有,是不是有可能不符合人家的要求啊,对吧,要注意属性问题啊,注意属性问题啊好,这是我们如果从R片包里面丢了一个文件,怎么还原,是不是知道怎么还原了啊,这是两种方法。
56:16
好,这是,那另外呢Q呢,它还有一些其他的选项啊,比方说我可以查看这个包里面的配置文件,查看这个包的更新日志,查看包的信息,查看文件列表,诶它可以查脚本。还可以查脚本,都是配合Q来实现的啊Q比方说我们去查看一下,看是这个包。盖这个包是我们核心包,就装系统你肯定得有盖,所以呢,大家看这个时间啊,这个时间实际上就是安装的时间,看到没有安装系统的时间,然后我们可以通过QL可以查看它的文件列表,也可以只看它的配置文件,就是我只看它的配置,别的不要。
57:05
你看这里面有一些是配置文件,你看这些是配置文件,我们就QC只看配置文件看到没。也可以只看文档,那这里面我只看它的文档,诶B是文档document啊,你看这些不都是帮助文档吗,文档。还可以去查看什么呢?查看它的这个更新日志,这个更新日志就是每个软件它在开发的时候是1.02.0这么变过来的,你可以用这个change log来查它的更新日志啊,更新日志它是从几点几变成了几点几,慢慢怎么变,哎,这个这个可查啊,叫change log。啊,大家看这个包历史悠久了。啊,你看早在20年前。是吧,然后到现在慢慢的去改变。
58:00
慢慢改变。那这版本在升级,版本在升级。嗯。好,那现在已经是四点几的版本了。啊,已经过了数十年,十几年,几十年是吧,几十年啊,这个版本更迭到这个阶段,所以我们现在用的软件并不是一蹴而就的,是慢慢发展起来的,所以大家学习也要保持这样的一种持续进步的进状态,不要想着一口吃个胖子。是吧,慢慢来吧,水平是一点点涨起来的,不是说当学完了你就成了高手了啊。还有就是脚本,那么有一些有一些这个,呃,有一些这个包里面是有脚脚本的啊,比方说就这个BA,它里面就有脚本,脚本怎么查呢?就scripts BA,你看这就是这个脚本。
59:10
那脚本里面这写了一个post post造什么意思呢?就是安装后脚本。卸载后脚本。明白了吧?啊,那比方说我这也有安装前脚本,安装后脚本,比方说我们就查这个吧,这叫pre pre是前in,那就是安装前脚本,大家看你看安装前脚本他干了啥事啊。看懂了吗?现在再看是不是就明白啥意思了?就是安装这个包之前啊,他建了账号了,发现了吗?是不是创建了个组啊,创建了个用户啊,是不是,而且还判断了一下,说你有我就不创建了,没有那我就把它建起来,是不是这个逻辑啊,哎,所以这些随着我们安装某个软件,它自动的去生成一些用户账号,都是靠脚本来干的活。
60:15
啊,都是靠脚本的,因为包它只是生成文件嘛,那你要想干一些别的事,您创一个账号什么的,你就只靠脚本了啊,当然不是所有的包里面都有脚本啊,这个也不是所有大部分的包应该没有,你像我们刚才TT这个包哪有什么脚本啊,没什么脚本,它就是装上文件就完了。哎,没那么复杂啊,这个看功能看功能。只要你长得帅就配基好,那哎,刚才我那个那个那个下完了没有啊,哎,下完了下完了。看完了,而且它自动挂上了,你看没自自自自动给挂上去了,这这个这个这个这个放哪去了呀,下载了个默认是放在这儿了。
61:11
但是不是放在这儿了呢。这个是这怎么放了个这玩意,Leave,不要这个这是吧,好,那我把它放到该放的地方去。啊,这个是小十个G的文件,那现在我就可以把它挂上去了。还原就行。嗯。哎,你看这个光盘就亮了是吧,亮了。好,这是刚才我们查询啊,啊,另外呢,我们这儿还有一个叫。
62:03
What啊,这个表示的就是我要查询某一个能力,由哪个包提供这个能力呢?实际上就是一个简单的说就是一个文件。文件,What provides,那在我们工作中有的时候安装软件呢,它会缺失一些这个包,导致你安装失败啊,比方说我们去安装一个包,就这个包吧,MICCCD。啊,这个。PC啊,HTTPB。好,当你安装这个包的时候,你看它就失败了。Field dependence什么意思?失败的依赖啊,依赖谁呀,这个。啊,依赖于谁呀,这个总之你把这个包装上,你得把这些依赖文件,哎装上才行,那所以呢,这个地方我们这儿可以这个cab就是能力,能力说的就是这个能力说的就是这些一个一个的文件。
63:14
哎,那么这说的就是你要查询指定的包是由哪个指定的能力是由哪个包提供的,不过呢,这个有个要求,就是你事先得把这个具有这个能力的包先装上,所以这个很尴尬,什么意思呢?尴尬在哪啊?我现在不是没有这个东西吗?那现在要查,我想要查啊,因为我要把这个文件所依赖的包。这个文件所在的包装上是不是才能把这个文件生成,对不对,他只是提醒我们缺这个文件啊,查不到查不到,所以这个就很尴尬啊,很尴尬,嗯,那当然我们换一个文件,你看这个就可以查,这是什么意思?说一这个文件是由哪个包提供的?
64:02
那实际上说白了也就是相当于类似于你那QF啊,那他要求你这个包,这个文件应该是随着包已经装上了,你才能查,那没有装那就查不了,所以这个就没有意义了,对吧,那我现在不是就正因为没有我才需要查是不是,所以这个就意义不大啊,所以知道这个功能就行了啊,但是你要是装上了,那可以查。弄了可以查,当然实际上呢,大家发现,那我用刚才说那QF不也能查吗。是不是QF啊,QF,当然QF呢,也是要求这个文件是不是在磁盘上必须有啊,对不对,存在的,那也就是说它依赖的这个所在的包应该是装上了啊,你要没装的包他也没法查呀,还有这个叫what request,这个也是指定的CA被哪个包所依赖啊,就是我刚才呢是被哪个包所提供,而这个呢,是我这个文件被谁所依赖,就谁靠我,谁依赖我啊,谁依赖我,比方说我就想查一查。
65:07
但是这个包,但是这个文件吧,这个能力被谁依赖就谁掉谁谁靠着我啊你你你没我你不能玩是吧,玩不转,哎,那我们就可以来查这个来查,哎,我发现依赖于bash的文件还是不少的哦,这些是不是都依赖于bash,没有bash这些都玩不转。看到没有,哎,靠人家。啊,这是可以查的,还有一个叫provide provide呢就是指定包所提供的cab啊,就是我想提查一查我到底提供了哪些能力啊,能力就是。啊,比方说我的BA这个提供了能哪些能力啊,实际上他间接的就是提供了一些文件啊,一些文件看到没有啊,这些每个包自己都有自己的特定的功能和能力,那那这时候用这个可以来查。
66:10
好,还有RR是查询指定的程序包所依赖的咖啡,就是我,我依赖于谁啊,我依赖于哪些呀?哎,这是可以查的啊,比方说我们就查这个这个萃,我依赖于谁呀?啊,可以把它可以合在一起写啊,我依赖于这些相关的包啊,这是我依赖的。这些,这是我依赖的能力,这些文件要没了,那我就玩不转了,哎,这是我依赖的能力。看到了吧,啊,当然这个东西我们一般很少查,就是你知道怎么有这样的命令,实际上最多的就是这些,这些我们用最多啊,其他的这些了解一下就行啊。那这几个用的比较多啊,这些就是我们要求大家要记住的,另外呢,还有一个叫P的,这个P选项呢,是早期要用的,现在可能也用不着了,WINDOWS8上可以不用了,那这个P是什么意思呢?就是如果一个包还没安装,我就想查啊,你像在window期上啊,啊,假设分度期上有这样的一个啊,就是VKB吧这个文件,那这个文件呢,我现在还没装,这个对应的包还没装,对应的包没装,我就想查这个包里面将来装完以后可能会生成磁盘的哪些文件。
67:33
啊,这个我还没装它呢啊,那怎么查呢?你要直接这么查,你查不了,因为说了QL后面要查,你必须后面跟的是一个已经装好的包名,而不是文件啊,所以呢,这个查询你不能这么查,你要查的话,你在后面跟上,比方说已经装了已经装上的一个包名,你这么这么查可以,你不需要跟文件,但是我现在就想查这个文件里面涵盖的这个列表,那怎么办呢?加上T加上T就可以了。
68:02
啊加P呢,就表示后面跟的是文件。但是三是八上面那so度八上面呢,我们同样的在这来查QP啊,我我不加不加屁了。哎,我就不加P。然后直接后面跟文件,你看他也能查了。那就是三八上呢,这个P可以不加了,呃,就它功能更强了啊,这个八上面这个P也可以不用了啊,当然你加上P估计它也能兼容,加上也不报错,反正都一样,是不是就是八上面它这个增加的功能啊,越来越好了啊好。空气。越来越省事了,总之就是越来越方便了,哎,那将来我们发现随着软件的升级啊,功能越来越丰富,我们越来越轻松了是吧,轻松到到最后你们没活没事干可干是吧?没事可干你就可以下岗了,老板不需要你了是吧?哎呀,那这个了不得了,那这真的成了这个人这个这叫心灵感应了是不是,我脑子里一想,哎,心想事成,这不就是。
69:30
哎呀,这个好啊好了,这是刚才我们给家讲的RPM的这个用法啊,呃,卸载杠E说过了啊,另外呢,这还有一个叫deps deps呢就是no DPS,就不管它依赖不依赖。不管它依赖不依赖,安装注意,安装有依赖关系,事实上卸载也有依赖关系。
70:03
啊,那么安装他说你缺这个包那个包,你必须把这些包都装了才能装这个包,那么事实上你卸载它也有依赖关系,哎,比方说A包依赖于B包,注意啊,A包依赖于B包,你卸的时候。能不能直接把A包卸了,A包依赖于B包,能不能把A包卸了,直接卸,就是假设A包依赖于B包。能不能,那能不能把B包卸了?哎,这个前后顺序你就搞错了啊,A包依赖于B包,那就是A是建立在B的基础之上的,A在上面,B包在下面,你直接把B拆了,那A怎么办呀,对不对?哎,所以你把A卸了可以直接卸B不行,因为RP这个命令它不能自动的解决依赖关系,你是你这是你这,你这直接把B包拆了,那你是属于拆社会主义的墙角,是不是挖墙脚啊,你把B拆了,那A咋办呀?是不是A依赖于B包啊,对吧?哎,所以你拆这个啊,拆这个A保险,因为A在上面拆了它不影响别人,哎,拆B不行,呃,这个依赖性啊,当然那无论是安装还是卸载你也可以。
71:23
冒天下大不韪是吧,我就想挖墙脚,我管你塌不塌呢,不能用就不能用了,那我们可以加上no deps这个选项,这个选项就是管你依赖不依赖,我就强行干了,强行干了知道吧。当然这样的话呢,就请。不好了啊。那尤其有同学说了,那我们RPM这个命令是来自于哪个包?那这个文件是什么文件?是个二进制文件。
72:00
那这个文件对应的包能不能把它卸了呀?他是来自于R包是吧?R包能不能卸自己这叫自杀吧,这是是吧,自己卸自己能不能卸呢?它有依赖关系,哎依赖关系当然了,我们刚才也说了,你可以强行卸载,那卸载什么呢?Nops卸了,当然卸了的话,你不想将来会怎么办吗?不是啥用不了的问题,你自己想装回来,你咋装样装。哎,你们太太单纯了,要么本身也是依赖于RPM,要么是基于RPM的二次封装,是在它基础之上做的二次开发,实际上他底层还是靠着RP,所以RP没了,要么也没用了,结果你把RPM卸了,自己想装自己,那自己都没了,你怎么装啊,所以这时候我们大家想到了我们之前说过的东西吗?救援模式,救援模式,哎,来安装来正好,那咱们来说说救援模式啊,那我们就呃,No杠杠嘛,那谢了啊,卸了以后你看这命令真的没了。
73:38
是不是命都没了,你想把它自己装回来,是不是已经搞不定了,哎,有人说那我们用那个,哎,刚才好像学过一个RPM to cp是吧。哎,是不是有这个东西啊,哎,那那我们就找找吧,首先把这个包文件先找到,这个包文件在哪呢?应该是在被S里是吧,啊叫RP,那就是这个就个吧,啊那我就来把这个包件找到,叫RPM to cp IO,然后cpo是吧,然后TV。
74:20
也得了,为什么?因为RPM to cp它也是放在RPM命令那个包里的,你把那个包卸了,这个也没了。所以这个就麻烦了是吧,嗯,那那之前有同学说亚嘛,对吧,那亚么,你看看你就知道了,你看。亚M也没得转了啊,亚M也没得转了,所以我们好吧,我们就再推出ICU。那我们拿ICU来解决它。ICU就是我们的救援光盘了,你们这手速练的怎么样了?是不是练的不错了啊,刚开始是不是有个适应过程啊,20多年应该速度很快。
75:14
啊好,插包竖体第二项巨人模式。好,这块选一。
76:07
好,开启一个线,这时候它提醒我们啊,他说他已经找到了你的操一懂的硬盘的根,不过呢,这个硬盘的根并没有作为当前的根。而是把你原来硬盘的根挂到了这个目录下。M nt c image,那么这个我们现在所得根并不是硬盘的根啊,现在所得根实际上是光盘救援模式下的根啊,光盘救援模式的根呢,这个是在内存里面,它不是硬盘,那硬盘的东西原来的根放在了这个地方,像MNTC以内。那现在MTC image,我们看一下这里面是不是原来硬盘的根。看起来是不是我们原来硬盘的根啊,你看里面不是有data塔吗?Data塔是我们自己建的吗?这个是看的很清楚的,对吧?哎,好,那现在我们要想恢复刚才说的那个RM,那怎么恢复呢?救援模式不是加载了一个自己的那个小Linux吗?它里面就自身就带了一个RPM,它自己有,哎,那所以我们把它来利用它来把我们丢掉的RPM包给它装上不就行了。
77:20
那怎么装呢?那这边咱们有没有RPM,诶你看真的有这个,当然这个RPM肯定不是我们原来硬盘那个RM啊,这是我们光盘里面带的,呃,那RPM呢,我们就装呗,光盘在哪呢?光盘我们得看一看,光盘挂上没有,现在。呃,有在这SR0它挂在这了,RUN1到RPM啊,那就省事了,那我们就要去装IV啊,然后呢,后面run install RPM re po,然后呢,这个应该是在那个被子OS里边是吧,然后package,然后应该是RTM啊,应该这个,但是直接装行吗?为什么不行啊,大家想它装的话,它会自动的把这里面的文件按照它预先定义的路径来给你装,但是它预先定义的路径,比方说它装那个RTM,它是装在US并下的RTM命令,这个装在这个目录下,但是你知道吗?我现在根是真正的硬盘根吗?现在我是内存中啊,我们的根在哪呢?我们的根在m nt image下面,这才是根呢,所以我们要指定一下路径,不能让就是默认装,默认装不行装的路径。
78:36
是错的,所以我这单独加一个选项,告诉他我的根在这呢,你要装,以这个目录为根来装,听懂了吗?也就是说将来装好的应该是放在这里面了。看懂了吗?哎,这个是一个特殊的,在救援模式下,一般平常会用不到救援模式都用到,好走看看能不能装上,看见没?诶好了好了以后呢,我们就来切根,切根的话呢,这时候就把你的真正的硬盘根作为现在的切了,然后看命令能不能用了,诶,可以了,这就行了。
79:14
注意这时候的根是真硬盘的根了,因为我切根了啊,就C10柱的就是改变根嘛。好了,那现在都重启看看好使不好使。如果。所以大家发现没有这个救援模式是不是?是一个很好的ICU解决方案是吧?啊当你。濒临死亡的时候,无路可走的时候,救援模式它比咱们Windows重装系统,那是不是就好多了,Windows遇到问题估计是,哎呀,得了重装吧,是吧,Windows重装系统。多low啊,是吧,Windows重装系统,那看看我们的FM回来了没回来了吧?行了,休息一会,待会继续。
我来说两句