章节简述:

本章将从虚拟机软件的安装开始讲起,完整演示如何在VM虚拟机上安装和部署RHEL 10系统的全过程,并详实地记录每一步的配置步骤(想出错都难),确保大家能从0到1地拥有一台属于自己的Linux操作系统。

此外,本章还详细介绍了源代码包、RPM、Yum及DNF的安装方式及其差异,讲解了各种常用的安装及其格式。深入探讨RHEL 10系统中systemd初始化进程的特性与操作技巧,最后以一个破解root管理员密码的小实验来结束本章的内容。

首次阅读本书没有任何Linux系统学习经验的同学仔细阅读本章节中的所有提示信息,避免因细节操作问题导致的实验出错。

1.1 准备您的工具

正如俗话所说:“工欲善其事,必先利其器”,在开始学习本书内容之前,您首先需要有一台Linux操作系统才行。不过请放心,不需要为了练习实验而特意再购买一台新电脑,下文会讲解如何通过虚拟机软件来模拟出一整套的硬件平台,以满足本书中所有实验的需求。虚拟机是能够让用户在一台真实物理机上同时模拟出多个操作系统的软件,既省钱又方便。

一般来讲,当前主流的硬件配置足以胜任虚拟机的工作需要,并且根据刘遄老师十多年来的运维及教学经验来看,建议大家无论经济条件是否允许,都不应该在学习期间把Linux系统部署到真机上面。因为在学习过程中免不了每天要“折磨”我们的操作系统,由此带来的数据丢失或者系统的重装也会让人头疼,还会浪费我们的宝贵时间。而通过虚拟机软件安装的系统不仅可以模拟出硬件资源,把实验环境与真机文件分离以保证数据的安全,更酷的是当操作失误或配置出错导致系统异常的时候,能够快速把操作系统还原到出错前的快照状态—大约只需要5~10秒,远比在物理机上重装系统(至少30分钟)来得高效。

最近几年在讲课时,总会发现同学们使用的实验环境五花八门,有CentOS Stream、Debian,还有老版本的RHEL系统等,每次排查问题时都异常费力。尽管RHEL系统的知识在多数Linux发行版中通用,但初次学习时由于大家还不具备排错能力,在这样的情况下,一定要尽量保持实验环境相同。就像我们去报名学习日式寿司的制作,老师用专业柳刃刀,学生非要用普通切菜刀,结果寿司肯定会被切得稀巴烂。聪明的学生在学习时一定要采用跟老师一样的工具和环境,这样出现问题后可以首先排除外在干扰因素,更快地定位并解决问题。等技术学得足够扎实了,到了生产环境中自然也就具备了随心选择工具和环境的能力。

Tips

尤其建议没有报名参加刘遄老师开设的付费培训班的同学,一定要充分发挥自己的自学能力,否则频繁的实验错误一定会影响您的学习热情。

随书配套的软件资源可通过://q13zd.cn/tools 下载。

Vmware WorkStation  18 —— 虚拟机软件(必需)

这是一款功能强大的桌面虚拟计算机软件,能够让用户在单一主机同时运行多个不同的操作系统;同时支持实时快照、虚拟网络、拖曳文件以及PXE等强大功能。

Red Hat Enterprise Linux (RHEL)  10 —— 红帽操作系统(必需)

由开源软件及全球服务型系统开发商红帽公司出品,是一款相当稳定、出色的Linux操作系统。

对了,说来也很郁闷,其实我在初中时就有学习Linux系统的打算,但那时候上网还不便捷,想要安装系统就必须去买光盘才行,而那个时候安装Linux系统至少要6张CD-ROM(每张大约存储700MB)。狠下心买回家尝试安装了几次却一直报错,因为搞不懂报错原因就只能放弃了。2015年春节前打扫屋子时又翻出了这些光盘,这次终于找到了当年安装失败的原因—原来是第五张光盘被刮花了,系统相关的某些依赖软件包被损坏,最终导致系统安装失败。原本可以早几年就接触到Linux系统,结果因为这个原因而耽搁,真的是既郁闷又尴尬,所以这里必须狠狠地提醒各位同学:“工具准备齐全后请一定要校验完整性,不要重蹈我的覆辙。”

1.2 安装配置VM虚拟机

VMware WorkStation是一款高效的桌面虚拟化软件,让用户能够在单一主机上同时运行多个不同的操作系统。每个虚拟操作系统都拥有独立的磁盘分区和数据配置,因此,您不用担心会影响到自己电脑中原本的数据。而且VM虚拟机还支持实时快照、虚拟网络、文件拖曳传输以及网络安装等方便实用的功能。此外,用户还可以将多台虚拟机连接成一个专用的局域网,使用起来方便极了。

就硬件要求而言,Linux系统并不需要很高端的配置,使用虚拟机也能轻松满足它的需求。

可能会有读者有疑问:“为什么要用收费的虚拟机产品来搭建实验环境,而不是用一些免费的开源虚拟机软件呢?”本书前言中讲到,我们学习Linux系统的原因不是因为它免费,也不是因为它开源,而是因为Linux系统真的很好用,这个结论同样也适用于VMware Workstation这款产品。虽然网上总能找到这款软件的免费序列号,但真的很不推荐使用盗版软件。既然您手里的这本书都可以从配套站点上免费下载,那就请大家把原本要买这本书的钱捐助给开源组织和真正用心做产品的公司,让世界变得更美好吧。

准备好就开始吧!

先将上面提到的Vmware Workstation 18虚拟机安装包下载到电脑中,用鼠标双击该软件包,大约等个3~5秒钟,就能看到如图1-1所示的初始化界面啦。

【改改改】图1-1  安装向导初始界面

在接下来出现的虚拟机安装向导界面中,单击“下一步”按钮,如图1-2所示。

【改改改】图1-2  安装向导界面

在最终用户许可协议界面选中“我接受许可协议中的条款”复选框,然后单击“下一步”按钮,如图1-3所示。

【改改改】图1-3  接受许可条款

在安装虚拟机软件时,一般无须修改安装路径。但如果您担心C盘容量不足,则可以考虑修改安装路径到其他位置,避免后期磁盘空间不足的问题。然后选中“增强型键盘驱动程序”和“将控制台工具添加到系统PATH”复选框,这样可以让我们后续在虚拟机中使用键盘输入时体验更好,并且能够用命令行直接调用VMware的工具,不需要写完整路径了,都建议选上,然后单击“下一步”按钮,如图1-4所示。

【改改改】图1-4  指定虚拟机软件的安装路径

根据自身情况适当选择“启动时检查产品更新”与“加入VMware客户体验提升计划”复选框,然后单击“下一步”按钮,如图1-5所示。

【改改改】图1-5  用户体验设置

为了方便今后更便捷地找到虚拟机软件的图标,建议选中“桌面”与“开始菜单程序文件夹”复选框,然后单击“下一步”按钮,如图1-6所示。

【改改改】图1-6  创建快捷方式

一切准备就绪后,单击“安装”按钮,如图1-7所示。

【改改改】图1-7  准备开始安装虚拟机

进入安装过程,此时要做的就是耐心等待虚拟机软件的安装过程结束,如图1-8所示(全程大约需要3~5分钟)。

【改改改】图1-8  等待安装完成

虚拟机软件安装完成后,再次单击“完成”按钮,结束整个安装工作,如图1-9所示。

【改改改】图1-9  安装向导完成界面

双击桌面上生成的虚拟机快捷图标,在弹出的如图1-10所示的界面中,输入许可证密钥(如果已经购买了的话)。大多数同学此时应该是没有许可证密钥,所以我们当前选中“我希望试用VMware Workstation 18 30天”单选按钮,然后单击“继续”按钮。

【改改改】图1-10  许可证密钥验证界面

在弹出“欢迎使用VMware Workstation 18”界面后,无须任何犹豫,直接单击“完成”按钮,如图1-11所示。

【改改改】 图1-11  虚拟机软件的欢迎界面

再次在桌面上双击快捷方式图标,此时便看到了虚拟机软件的管理界面,如图1-12所示。

【改改改】图1-12  虚拟机软件的管理界面

注意,在安装完虚拟机软件后,还不能立即安装Linux系统,因为还缺少重要的一步—设置硬件信息。设置硬件信息相当于为Linux系统设置一个硬件牢笼,限定它能够使用的最大硬盘和内存容量、CPU核心数量、系统镜像位置、网络模式等硬件信息。大家可以想象成是自己去组装一台电脑,只有把虚拟机内系统的硬件资源都模拟出来(组装完毕)后才能正式步入Linux系统的安装之旅。

VMware Workstation的强大之处在于不仅可以调取真实的物理设备资源,而且还能模拟出多块硬盘或网卡设备,即便使用五六块硬盘也不用担心(详见第7章),我们弹指间就能创建出来,完全能够满足大家对学习环境的需求。因此再次强调,真的不用特意购买新电脑。


在上图1-12所示的管理界面中,单击“创建新的虚拟机”按钮,并在弹出的“新建虚拟机向导”界面中选择“自定义(高级)”单选按钮,然后单击“下一步”按钮,如图1-13所示(这样我们能够更充分地了解这台新系统)。

【改改改】图1-13  新建虚拟机向导

由于这是一个全新安装的系统,所以不必担心虚拟机的兼容性问题,这里直接在“硬件兼容性”下拉列表中选择“【改改改】Workstation 18.0.x”,然后单击“下一步”按钮,如图1-14所示。

【改改改】图1-14 设置硬件兼容性

进入如图1-15所示的界面,选中“稍后安装操作系统”单选按钮,然后单击“下一步”按钮。

在近几年的讲课过程中真是遇到了很多不听话的学生,明明要求选择“稍后安装操作系统”,结果非要选择“安装程序光盘映像文件”,并把下载好的RHEL 10系统的镜像选中。这样一来,虚拟机会通过默认的安装策略部署最精简的Linux系统,而不会再向您询问安装有关的配置信息,导致最终系统与实验环境有很大的差别。

如果您是购买图书自行学习的话,请一定不要低估后续实验的难度和Linux知识体系的难度,更不要高估自己的自学和排错能力,否则可能会因为系统长期报错而丧失学习兴趣,得不偿失。对于经济条件允许且有意愿深入了解Linux系统并考取红帽RHCE的同学,可以看一下刘遄老师主讲的培训介绍,地址为//q13zd.cn/training

【改改改】图1-15  设置系统的安装来源

在图1-16中,将客户机操作系统的类型选择为“Linux”,并将版本选择为“【改改改】Red Hat Enterprise Linux 10 64位”,然后单击“下一步”按钮。

【改改改】图1-16  选择操作系统的版本

填写“虚拟机名称”字段,大家可以自行发挥。建议为“位置”字段选择一个大容量的硬盘分区,最少要有20GB以上的空闲容量。然后再单击“下一步”按钮,如图1-17所示。

【改改改】图1-17  命名虚拟机及设置安装路径

设置“处理器数量”和“每个处理器的内核数量”,请大家根据自身电脑的情况进行选择。可以在网络上搜索一下自己的CPU处理器的型号信息,或者在Windows系统中打开“任务管理器”,然后访问“性能”选项卡,该选项卡右下侧的逻辑处理器数量就是您的CPU内核数量。如果上述方法都不奏效,那就暂时将处理器和内核数量都设置成1吧(见图1-18),后期再随时修改,不影响实验。搞定后单击“下一步”按钮。

【改改改】图1-18 设置CPU处理器信息

设置分配给虚拟机的内存值。如果物理机的内存小于4GB,则建议分配给虚拟机1GB;如果物理机的内存大于4GB(不论是8GB还是更大),则建议分配给虚拟机2GB,如图1-19所示。为虚拟机分配过多的内存不会对实验结果有直接影响,而且超过2GB就可能存在浪费现象了。

【改改改】图1-19 设置内存分配量

VMware Workstation这款虚拟机软件为用户提供了3种可选的网络模式,分别为“使用桥接网络”“使用网络地址转换(NAT)”与“使用仅主机模式网络”。

使用桥接网络:相当于在物理机与虚拟机网卡之间架设了一座桥梁,从而可以通过物理主机的网卡访问外网。

使用网络地址转换(NAT):让VM虚拟机的网络服务发挥路由器的作用,使得通过虚拟机软件模拟的主机可以通过物理主机访问外网;在物理机中对应的物理网卡是VMnet8。

使用仅主机模式网络:仅让虚拟机的系统与物理主机通信,不能访问外网;在物理机中对应的物理网卡是VMnet1。

由于当前不需要将虚拟机内的系统连接到互联网,所以这里将网络连接的类型设置为“使用仅主机模式网络”,然后单击“下一步”按钮,如图1-20所示。

【改改改】图1-20 设置网络类型

图1-21所示为选择SCSI控制器的类型,这里使用“LSI Logic(推荐)”值,然后单击“下一步”按钮。

【改改改】图1-21 设置I/O控制器类型

接下来设置新安装系统的硬盘接口类型,这里我们选择工作中更常使用的SATA接口类型,然后单击“下一步”按钮,如图1-22所示。此处请尽量与老师保持一致,如果选择了IDE与NVMe接口类型的磁盘,则在第6章的实验中磁盘名称不是/dev/sda。

【改改改】图1-22 设置虚拟磁盘类型

由于这是一台全新安装的操作系统,不存在已有数据需要恢复的问题,所以直接选择“创建新虚拟磁盘”单选按钮,然后单击“下一步”按钮,如图1-23所示。

【改改改】图1-23 创建新虚拟磁盘

将虚拟机系统的“最大磁盘大小”设置为20.0GB(默认值),这是限定系统能够使用的最大磁盘容量,并不是立即占满这部分空间。如果想让磁盘拥有更好的性能,则选中“立即分配所有磁盘空间”复选框。另外,如果同学们后续不会经常移动这台虚拟机的话,则选中“将虚拟磁盘存储为单个文件”单选按钮,也可以获得更好的性能体验。然后单击“下一步”按钮,如图1-24所示。

【改改改】图1-24 设置最大磁盘容量

设置磁盘文件的名称,这里完全没有必要修改,默认就行,直接单击“下一步”按钮,如图1-25所示。

【改改改】图1-25 设置磁盘文件名称

当虚拟机的硬件信息在基本设置妥当后,安装向导程序会向我们进行确认。由于还有几处信息需要修改,所以这里单击“自定义硬件”按钮,如图1-26所示。

【改改改】图1-26 配置信息总览

单击“新 CD/DVD(SATA)”选项,在右侧“使用 ISO 映像文件”下拉列表中找到并选中此前已经下载好的RHEL 10系统文件(即.iso结尾的文件),不要解压,直接选中即可,如图1-27所示。

Tips

本书不包含实体光盘,系统镜像(映像)文件指的是通过本书前言中的网址//q13zd.cn/tools下载的系统软件包。

【改改改】图1-27 选中RHEL 10系统映像文件路径

顺手把USB控制器、声卡设备统统移除掉。移掉声卡后可以避免在输入错误后发出提示声音,确保自己在今后的实验中思绪不被打扰。然后单击“确认”按钮,如图1-28所示。

【改改改】图1-28 最终的虚拟机配置情况

当再次回到图1-26的配置信息确认界面,单击“完成”按钮,接下来新系统硬件会初始化1分钟左右。

当看到如图1-29所示的界面时,说明虚拟机已经被配置成功。稍微休息一下,接下来准备步入属于您的Linux系统之旅吧。

【改改改】图1-29  虚拟机配置成功的界面

1.3 安装您的Linux系统

在安装RHEL 10时,要确保您的电脑CPU需要支持VT(Virtualization Technology,虚拟化技术)。这是一种能够让单台计算机分割出多个独立资源区,并让每个资源区按照需要模拟出系统的一项技术,其本质就是通过中间层实现计算机资源的管理和再分配,让系统资源的利用率最大化。

其实有个简单的方法来判断CPU是否支持VT—只要您的电脑不是五六年前购买的,或者只要价格不低于3000元,那么就肯定支持VT。大多数情况下,CPU对VT的支持默认都是开启的,只有当系统安装失败时才需要在物理机的BIOS中手动开启(一般是在物理机开机时多次按下F2或F12键进入BIOS设置界面),如图1-30所示。

图1-30 物理电脑BIOS开启虚拟化

在虚拟机管理界面中单击“开启此虚拟机”按钮后数秒就看到RHEL 10系统安装界面了,如图1-31所示。在界面中,【改改改】Test this media & install Red Hat Enterprise Linux 10.0和Troubleshooting的作用分别是校验光盘完整性后再安装以及启动救援模式。此时通过键盘的方向键选择【改改改】Install Red Hat Enterprise Linux 10.0选项直接安装Linux系统。

【改改改】图1-31  RHEL 10系统安装界面

接下来按回车键后开始加载安装镜像,所需时间大约在20~30秒,请耐心等待,如图1-32所示。

【改改改】图1-32 安装向导的初始化界面

选择系统的安装语言后单击Continue按钮,如图1-33所示。

请读者不必担心英语的问题,因为在Linux系统中用的Linux命令具有特定的功能和意义,而非英语单词本身的意思。比如free的英文意思是“自由”“免费”,而free命令在Linux系统中的作用是查看内存使用量情况。因此即便是英语水平很高,只要没有任何Linux基础知识,在看到这些Linux命令后也需要重新学习。再者,把系统设置成英文后还可以锻炼一下英语阅读能力,不知不觉地就把Linux系统和英文一起学了,岂不是更好?!如果您执意选择中文安装语言,请在如图1-33中进行选择。

【改改改】图1-33 选择系统的安装语言

【改改改:安装选项可能不同,更新】INSTALLATION SUMMARY(安装概要)界面是Linux系统安装所需信息的集合之处,如图1-34所示。该界面包含如下内容:Keyboard、Language Support、Time & Date、Connect to Red Hat、Installation Source、Software Selection、Installation Destination、KDUMP、Network & Host Name、Security Profile、Root Password和User Creation。

【改改改】图1-34 安装概要界面

同学们稳住,不要慌,这里选项虽然多,但并不是全都需要我们手动配置一遍。【改改改:确认下要改吗?】其中的Keyboard和Language Support分别指的是键盘类型和语言支持,这两项默认都是英文的,不用修改(除非想换成中文界面)。

首先单击【改改改】Time & Date按钮,设置系统的时区和时间。在地图上单击中国境内即可显示出上海的当前时间,确认后单击左上角的Done按钮。如图1-35所示。

【改改改】图1-35 设置系统时区

返回到安装概要界面后,【改改改】右侧第一个Installation Destination指的是想把系统安装到哪个硬盘。此时仅仅是让我们进行确认,不需要进行任何修改,单击左上角的Done按钮,如图1-36所示。

【改改改】图1-36 设置系统安装设备

读者可能会有这样的疑问:“为什么我们不像其他Linux图书那样,讲一下手动分区的方法呢?”原因很简单,因为Linux系统根据FHS(Filesystem Hierarchy Standard,文件系统层次标准)为不同的目录定义了相应的不同功能,这部分内容会在第6章详细介绍。通过刘遄老师最近这几年的教学经验来看,即便现在写出了操作步骤,各位读者大多也只是点点鼠标,并不能真正理解其中的原理,效果不一定好,更何况在接下来的实验中,手动分区相对于自动分区来说也没有明显的好处。所以读者大可不必担心学不到,本书的章节规划是非常科学的。

接下来进入【改改改】KDUMP服务的配置界面。KDUMP服务用于收集系统内核崩溃数据,但是考虑到短时间内我们并不打算调试系统内核参数,所以这里建议取消选中Enable kdump复选框,这可以节省约【改改改】160MB物理内存。随后单击左上角的Done按钮,如图1-37所示。

【改改改】图1-37 关闭KDUMP服务

【改改改】接下来进入NETWORK & HOST NAME配置界面。首先单击右上角的开关按钮,设置成ON(开启)状态。然后在左下角将Host Name(主机名称)修改为q13zd.cn并单击右侧的Apply按钮进行确认,这样可以保证后续的命令提示符前缀一致,以免产生学习上的歧义。最后单击左上角的Done按钮,如图1-38所示。

【改改改】图1-38 配置网络信息

【改改改】RHEL 10系统的软件模式(SOFTWARE SELECTION)界面可以根据用户的需求来调整系统的基本环境。例如,如果想把Linux系统用作基础服务器、文件服务器、Web服务器或工作站等,那么在系统安装过程中就会额外安装上一些基础软件包,以帮助用户尽快上手。这里首先单击Software Selection按钮,进入配置界面,如图1-39所示。

【改改改】图1-39 设置系统默认环境

【改改改】RHEL 10系统提供6种软件基本环境,依次为Server with GUI(带图形化的服务器)、Server(服务器)、Minimal Install(最小化安装)、Workstation(工作站)、Custom Operating System(自定义操作系统)和Virtualization Host(虚拟化主机)。只要检查当前模式是默认的Server with GUI即可,右侧额外的软件包不要选择,可以在后续学习过程中慢慢安装,这样才有乐趣。单击左上角的Done按钮。

之前看过一个新闻,说是苹果公司某员工在iOS系统的用户说明书末尾加了一句“反正你们也不会去看”。其实这件事情也可以用来调侃部分读者的学习状态,刘遄老师绝不会把没用的知识写到本书中,但就是这样一张如此醒目的截图也总是有读者视而不见,结果采用了Minimal Install单选按钮来安装RHEL 10系统,最终导致很多命令不能执行,服务搭建不成功。请一定留意!

返回到安装概要界面,接下来继续单击【改改改】Root Password按钮,设置管理员的密码,如图1-40所示。这个操作非常重要,密码马上会在登录系统时用到。这里需要多说一句,当在虚拟机中做实验的时候,密码无所谓强弱,但在生产环境中一定要让root管理员的密码足够复杂,否则系统将面临严重的安全问题,输入完毕后点击左上角的Done按钮。

【改改改】图1-40 设置管理员密码

【改改改】继续单击User Creation按钮,为RHEL 10系统创建一个本地的普通用户。该账户的名字叫linuxprobe,密码统一设置为redhat,这个账户将会在第5章使用到。确认后单击Done按钮,如图1-41所示。

【改改改】图1-41 创建普通用户并设置密码

全部设置妥当后,返回到安装概要界面,如图1-42所示。然后单击界面右下侧的【改改改】Begin Installation按钮开始正式安装操作系统。整个安装过程大约持续20~30分钟,安装完成时则如图1-43所示。

【改改改】图1-42 准备开始安装系统

【改改改】图1-43 系统正在安装中

点击【改改改】Reboot System按钮后,系统将会进行最后一轮的重启。在大约2分钟的等待时间过后,便能够看到如图1-44所示的登录界面了。为了保证在学习到第5章前不受权限的牵绊,请同学们务必单击用户下方的【改改改】“Not listed?”,手动输入管理员账号(root)以及所设置的密码,如图1-45和图1-46所示。

【改改改】图1-44 选择用其他用户登录

【改改改】图1-45 输入管理员账号

【改改改】图1-46 输入管理员密码

敲击回车顺利进入到系统中,终于看到了系统界面,如图1-47所示。至此,便完成了RHEL 10系统的全部安装和部署工作。

【改改改】图1-47 正式开始使用系统

真棒!准备开始学习Linux系统吧。

出现问题?大胆提问!

因读者们硬件不同或操作错误都可能导致实验配置出错,请耐心再仔细看看操作步骤吧,不要气馁~

Linux技术交流学习请加读者群(推荐)://q13zd.cn/club

*本群特色:确保每一位群友都是《Linux就该这么学》的读者,答疑更有针对性,不定期领取定制礼品。

1.4 安装软件的方法

在20世纪90年代初,那时的Linux系统还处于早期阶段,根据GNU开放源代码计划和大多数开源许可协议的要求,软件发布者只需要提供自身的源代码就行,余下的编译软件和解决软件间依赖关系的任务则全由运维人员负责。这一过程不仅繁琐,而且极易出错。要想顺利安装一个服务程序,运维人员不仅需要具备丰富的知识和高超的技能,还得有良好的耐心,本书第20章将让读者亲身实践这一过程,体验其中的艰辛。

随着时间的推移,到了1997年,为了降低软件的安装难度,红帽公司推出了RPM(Red Hat Package Manager,中文名:红帽软件包管理器)。RPM通过建立一个统一的数据库来管理软件包信息,自带安装规则的脚本,并自动处理软件之间的依赖关系,这种方式有点类似于Windows系统中的控制面板,极大地简化了Linux系统中软件包的安装、升级和删除过程。软件包示意图1-48所示:

图1-48 RPM软件包技术示意图

表1-1所示为一些常用的RPM软件包命令,此时还不需要记住它们,大致混个“脸熟”就足够了。

表1-1                                                 常用的RPM软件包命令

常用命令搭配 功能作用
rpm -ivh filename.rpm 安装软件
rpm -Uvh filename.rpm 升级软件
rpm -e filename.rpm 卸载软件
rpm -qpi filename.rpm 查询软件描述信息
rpm -qpl filename.rpm 查询软件文件信息
rpm -qc filename 查询软件配置文件
rpm -qR filename 查询软件依赖关系
rpm -qf filename 查询文件属于哪个RPM
rpm -V filename 验证软件包是否被修改
rpm -qa 查询所有已安装的软件

但是,尽管RPM能够帮助用户查询软件之间的依赖关系,但问题还是要运维人员自己来解决,而有些大型软件可能与数十个程序都有依赖关系,使得安装过程仍然十分繁琐。为了进一步降低安装软件的复杂度,2003年,基于RPM的Yum(Yellowdog Updater, Modified)软件仓库被正式发布。Yum软件仓库能根据用户需求分析所需软件包及其相关的依赖关系,然后自动从服务器下载软件包并安装到系统,非常类似于苹果iOS系统的App Store软件商店啦,软件仓库的技术示意图1-49:

图1-49 软件仓库的技术示意图

用户只需要通过HTTP、FTP或本地挂载方式(FILE)连接到软件仓库即可使用,拓扑图如图1-50所示:

yum

图1-50 Yum软件仓库的技术拓扑图

Yum软件仓库中的RPM软件包既可以是由红帽官方发布的,也可以是由第三方发布的,当然也可以是自己编写的。本书随书提供的系统镜像(非实体光盘。需在本书配套站点中下载://q13zd.cn/tools)内已经包含了大量可用的RPM红帽软件包,既用于安装系统,也用于配置软件仓库,后面会详细说明。表1-2所示为一些常见的Yum命令,当前只需对它们有一个简单印象即可。

表1-2                                                      常见的Yum命令

命令 作用
yum repolist all 列出所有仓库
yum list all 列出仓库中所有软件包
yum info 软件包名称 查看软件包信息
yum install 软件包名称 安装软件包
yum reinstall 软件包名称 重新安装软件包
yum update 软件包名称 升级软件包
yum remove 软件包名称 移除软件包
yum clean all 清除所有仓库缓存
yum check-update 检查可更新的软件包
yum grouplist 查看系统中已经安装的软件包组
yum groupinstall 软件包组 安装指定的软件包组
yum groupremove 软件包组 移除指定的软件包组
yum groupinfo 软件包组 查询指定的软件包组信息

用户不需要自行购买鸡胸肉、黄瓜、花生米(RPM软件包),也不需要知道先放老抽还是料酒(依赖关系),只需要告诉厨师(Yum软件仓库)自己想吃的菜是宫保鸡丁(软件包名),其他就什么都不用管了,耐心静等几分钟,一切都会自动完成。

原本以为故事到此就要结束了,可是人们发现尽管Yum解决了软件的依赖关系问题,但仍然还是存在分析不准确、内存占用量大、不能多人同时安装软件等硬伤。终于,在2015年随着Fedora 22系统的发布,红帽又给了我们一个新的选择—DNF(Dandified Yum)。DNF实际上就是解决了上述问题的Yum软件仓库的提升改良版,行业内称之为Yum v4版本,显著提升了依赖关系的分析能力和处理速度。

作为Yum软件仓库v3版本的接替者,DNF特别友好地继承了原有的命令格式,且使用习惯上也保持了一致,老玩家可以无缝过渡到新系统,完全不必担心不会操作。我们来看一个例子。以前,安装软件用的命令是“yum install 软件包名称”,那么现在则是“dnf install 软件包名称”(也就是说,将yum替换成dnf即可)。

【改改改】当然RHEL 10系统也照顾到了老用户的习惯问题,同时兼容并保留了yum和dnf两个命令,大家在实际操作中可以随意选择。甚至这两个命令的提示信息都基本一样,感知不到什么区别。

1.5 系统初始化进程

Linux系统的启动过程包括几个关键步骤:首先是BIOS/UEFI的启动,随后进入Boot Loader(如GRUB),然后加载和初始化系统内核,最终启动初始化进程。初始化进程是Linux系统启动后的第一个进程,它负责完成系统中的相关初始化工作,为用户提供一个合适的工作环境。同学们可以简单地将这一过程理解为——从按下开机键到看到系统桌面的整个过程。

【改改改:确认下】在红帽RHEL 10系统中,替换掉了熟悉的初始化进程服务System V init,正式采用全新的systemd初始化进程服务。原本以为对大家日常使用影响不大,但实际上许多服务管理命令都被替换了,对于之前学习过老版本系统,习惯使用service和chkconfig命令的读者来讲,可能真的有点难受,估计您需要一些时间来适应新的systemctl命令了。

表1-3和表1-4所示为新老版本系统的对比,先大致了解一下,后续章节中会经常用到它们。

表1-3                                   服务的启动、重启、停止、重载、查看状态等常用命令(sshd为示例服务)

老系统命令 新系统命令 作用
service sshd start systemctl start sshd 启动服务
service sshd restart systemctl restart sshd 重启服务
service sshd stop systemctl stop sshd 停止服务
service sshd reload systemctl reload sshd 重新加载配置文件(不终止服务)
service sshd status systemctl status sshd 查看服务状态

表1-4                                   服务开机启动、不启动、查看各级别下服务启动状态等常用命令(sshd为示例服务)

老系统命令 新系统命令 作用
chkconfig sshd on systemctl enable sshd 开机自动启动
chkconfig sshd off systemctl disable sshd 开机不自动启动
chkconfig sshd systemctl is-enabled sshd 查看特定服务是否为开机自启动
chkconfig --list systemctl list-unit-files --type=sshd 查看各个级别下服务的启动与禁用情况

此外,systemd不仅替代了传统的System V init,它还引入了“目标”(target)概念来替换原来的运行级别(runlevel)这样一来使得系统可以更灵活的管理服务和进程了。表1-5详细的展示了System V init运行级别与systemd目标之间的对应关系以及它们的作用:

表1-5                                   systemd与System V init的区别以及作用

System V init运行级别 systemd目标名称 systemd 目标作用
0 poweroff.target 关机
1 rescue.target 救援模式
2 multi-user.target 多用户的文本界面
3 multi-user.target 多用户的文本界面
4 multi-user.target 多用户的文本界面
5 graphical.target 多用户的图形界面
6 reboot.target 重启
emergency emergency.target 救援模式

【改改改:确认下】通过全新的初始化和服务管理命令,在RHEL 10系统中不需要来回切换命令,直接用systemctl命令就能做完之前所有的服务管理工作了。另外systemd初始化进程是并行启动的服务,不需要因等待某些特定的服务(如网络或自检)而耽误后面的服务启动,充分发掘硬件性能的潜力,开机速度有了明显的提升。您可以再找来一台老版本系统的服务器(如RHEL 5/6),对比下开机速度,能差一倍呢!

【改改改】图1-54  重置Linux系统的管理员密码

出现问题?大胆提问!

因读者们硬件不同或操作错误都可能导致实验配置出错,请耐心再仔细看看操作步骤吧,不要气馁~

Linux技术交流学习请加读者群(推荐)://q13zd.cn/club

*本群特色:确保每一位群友都是《Linux就该这么学》的读者,答疑更有针对性,不定期领取定制礼品。

本文原创地址://q13zd.cn/learing-linux-01.html编辑:刘遄,审核员:暂无