第1章 动手部署一台 Linux 操作系统
2021.6.30,年中庆典!
一次报名,终身学习,仅限年中狂欢活动当天。
6月30日当天报名的学员,享受终身学习资格——不限次数,不限期数,不限时间。
章节简述:
从讲解虚拟机软件原理开始学起,完整演示VM虚拟机与RHEL 8系统的安装部署全过程,详实的记录每一步配置步骤,想出错都困难,从0到1的拥有一台属于自己的Linux操作系统。
学习了解源代码包、RPM、Yum及DNF安装方式的区别,掌握各种常见安装命令的作用及格式、熟悉RHEL 7/8系统种systemd初始化进程的特色与使用方法,最后以破解root密码小实验收尾。
请首次阅读本书或没有任何Linux系统学习经验的同学仔细阅读本章节中所有提示信息,避免因细节操作问题导致的实验出错。
本章目录结构
- 1.1 准备您的工具
- 1.2 安装配置VM虚拟机
- 1.3 安装您的Linux系统
- 1.4 安装软件的方法
- 1.5 系统初始化进程
- 1.6 重置root密码
1.1 准备您的工具
所谓“工欲善其事,必先利其器”,在学习后续章节前,首先要有一台Linux操作系统才行。不过放心~您不需要为了练习实验而特意再购买一台新电脑,下文马上会讲解如何通过虚拟机软件模拟出一整套的硬件平台,完全能够满足本书中所有实验的需求。虚拟机是能够让用户在一台真实物理机上同时模拟出做个操作系统的软件,一般来讲当前主流的硬件配置足以胜任安装需要。
并且根据刘遄老师十年来的运维技术学习及培训经验来看,建议大家不论经济条件是否允许,都不应该在学习期间把Linux系统部署到真机上面。因为在学习过程中免不了每天要“折磨”我们的操作系统,由此带来的数据丢失或者重装系统也真的让人头疼,浪费了宝贵的时间。而通过虚拟机软件安装的系统不仅可以模拟出硬件资源——把实验环境与真机文件分离保证数据安全,更酷的是当操作失误或配置出错导致系统异常的时候,可以快速把操作系统还原到出错前的快照状态,大约只需要5-10秒钟,而重装系统则可能至少30分钟。
但最近几年在讲课时,总会发现同学们使用五花八门的实验环境,有CentOS、有Debian、还有老版本的RHEL系统等等,每次给大家排错时都费心劳力,苦不堪言。虽说RHEL系统学习后基本可以通用于其他发行版本,但第一次学习的时候由于还没有排错能力,能够保持一致是最好的。假如我们去学习做日式寿司,老师用的柳刃,学生却非要用菜刀,结果寿司肯定会被切的稀巴烂。所以聪明的读者在学习时一定要采用跟老师一样的工具和环境,这样出现问题后可以首先排除掉外在干扰因素,以便快速定位错误,等技术学的足够扎实了,到了生产环境中自然也就具备了随心选择的能力。
Tips
尤其建议没有报名参加刘遄老师开设的付费培训班的读者,一定要充分发挥自己的自学能力,否则长期的实验出错一定会影响您的学习兴趣。随书配套的软件资源请在这里下载:https://www.linuxprobe.com/tools/
VmwareWorkStation 16 ——虚拟机软件(必需):
功能强大的桌面虚拟计算机软件,能够让用户在单一主机同时运行多个不同的操作系统。
同时支持实时快照,虚拟网络,拖拽文件以及PXE等强悍功能。
RedHatEnterpriseLinux [RHEL] 8 ——红帽操作系统(必需):
由开源软件及全球服务性系统开发商红帽公司出品,最稳定出色的Linux操作系统。
对了,说来也很郁闷,其实我在初中时就有学习Linux系统的打算,但那时候上网还不便捷,想要安装系统就要去买光盘才行,而那个时候安装Linux系统至少要6张CD-ROM的光盘(每张大约存储700MB)。狠下心买回家尝试安装了几次却一直失败,因为搞不懂报错原因就只能放弃了。2015年春节前打扫屋子时又翻出了这些光盘,这次终于找到了当年安装失败的原因,原来是第五张光盘被“刮花”了,某些系统相关的依赖软件包被损坏,最终导致系统安装失败了。原本可以早几年就接触到Linux系统的,结果因为这个原因而搁置,真的是既郁闷又尴尬,所以这里必须狠狠地提醒各位同学:“工具准备齐全后请一定要校验完整性,不要重蹈我的覆辙”。
1.2 安装配置VM虚拟机
VMware WorkStation虚拟机软件是一款桌面计算机虚拟软件,让用户能够在单一主机上同时运行多个不同的操作系统。每个虚拟操作系统的磁盘分区、数据配置都是独立的,不用担心影响到自己电脑中原本的数据。而且VM还支持实时快照、虚拟网络、文件拖曳传输以及网络安装等方便实用的功能,到时候可以把多台虚拟机构成一个专用局域网,使用起来很方便。
总结来说,Linux系统对硬件设备的要求并不高,虚拟机功能丰富可靠,帮助我们节省时间和金钱,推荐大家使用。
可能会有读者有疑问“为什么要用收费的虚拟机产品来搭建实验环境,而不是用一些免费的开源虚拟机软件呢?”如本书前言中讲到,我们学习Linux系统的原因不是因为它免费,也不是因为它开源,而是因为Linux系统真的很好用,这个结论同样也适用于VMware Workstation这款产品。虽然网上总能找到免费的序列号,但刘遄老师真的很不推荐用盗版软件,因为既然您眼前的这本《Linux就该这么学》可以从网上免费下载到(PDF电子版下载地址:https://www.linuxprobe.com/book),就请把原本要买书的钱多捐助一些给开源组织和真正用心做产品的公司吧,愿世界美好的脚步更快一些。
第1步:将上面所提到的Vmware Workstation 16虚拟机软件安装包下载到电脑中,双击鼠标运行后即可看到如图1-1所示的安装向导初始界面,大约需要5-10秒时间。
图1-1 安装向导初始界面
第2步:在虚拟机软件的安装向导界面点击“下一步”按钮,如图1-2所示。
图1-2 虚拟机的安装向导
第3步:在用户许可协议界面中勾中“我接受许可协议中的条款”选项框,然后点击“下一步”按钮,如图1-3所示。
图1-3 接受许可条款
第4步:自定义虚拟机软件的安装路径,一般情况下无需修改,但如果您担心C盘容量不足的话,可以视情况改到其他盘符下。然后勾选“增强型键盘驱动程序”选项框后单击“下一步”按钮,如图1-4所示。
图1-4 选择虚拟机软件的安装路径
第5步:根据自身情况适当选择“启动时检查产品更新”与“加入VMware客户体验提升计划”选项框,然后单击“下一步”按钮,如图1-5所示。
图1-5 用户体验设置
第6步:为了方便今后更便捷的找到虚拟机软件图标,建议选中创建“桌面”与“开始菜单程序文件夹”选项框,然后单击“下一步”按钮,如图1-6所示。
图1-6 创建快捷方式
第7步:一切准备就绪后,轻轻单击一下“安装”按钮,如图1-7所示。
图1-7 准备开始安装虚拟机
第8步:进入安装过程中,此时要做的就是耐心等待虚拟机软件的安装过程结束,全程大约3-5分钟,如图1-8所示。
图1-8 等待安装完成
第9步:嗖的一下,虚拟机软件便会安装完成,此时单击一下“完成”按钮,便结束了安装工作,如图1-9所示。
图1-9 安装向导完成界面
第10步:双击桌面上生成的虚拟机快捷图标,在弹出如图1-10所示的界面中,已经购买许可证的话就直接填入密钥。而大部分同学此时应该是没有的,所以当前我们选中“我希望试用VMware Worksatation 16 30天”选项框,然后点击“继续”按钮。
图1-10 许可证验证界面
第11步:在弹出欢迎使用VMware Workstation 16提示后,无需任何犹豫,直接单击“完成”按钮,如图1-11所示。
图1-11 虚拟机软件的感谢界面
第12步:再次在桌面上双击快捷方式图标,便看到了虚拟机软件的管理界面,如图1-12所示。
图1-12 虚拟机软件的管理界面
注意:第一次安装完虚拟机软件时,是还不能立即安装操作系统的,还缺少重要的一步——设置硬件信息。相当于就是为操作系统设置一个硬件牢笼,限定能够使用的最大硬盘和内存容量、CPU核心数量、系统镜像位置、网络模式等等硬件信息。可以想象成是自己去组装一台电脑的感觉,只有把虚拟机内系统的硬件资源都模拟出来后才能正式步入Linux系统安装之旅。
VM虚拟机的强大之处在于不仅可以调取真实的物理设备资源,还可以模拟出多块硬盘或网卡设备,即便后面第7章节会使用到五六块硬盘也不用担心,弹指间就能创建出来,完全能够满足大家对学习环境的需求,因此再次强调,真的不用特意购买新电脑。
第1步:在如上图1-12所示的管理界面中,单击“创建新的虚拟机”按钮,并在弹出的新建虚拟机向导中选择“自定义(高级)”选项,然后单击“下一步”按钮,如图1-13所示。这样我们可以更充分的了解这台新系统,不要偷懒呦~
图1-13 新建虚拟机向导
第2步:由于这是一台被全新安装的系统,所以不必担心虚拟机的兼容性问题,直接选择“Workstation 16.x”最新版本,然后单击“下一步”按钮,如图1-14所示。
图1-14 设置硬件兼容性
第3步:进入到安装来源界面,选中“稍后安装操作系统”选项,然后单击“下一步”按钮,如图1-15所示。
在近几年的讲课过程中真是遇到了很多不听话的学生,明明要求选择“稍后安装操作系统”,结果非要选择“安装程序光盘映像文件”选项,并把下载好的RHEL 8系统的镜像选中。这样一来,虚拟机会通过默认的安装策略部署最精简的Linux系统,而不会再向您询问安装有关的配置信息,最终系统将与实验环境有很大差别。
如果是购买图书自行学习的话,请一定不要低估后续实验的难度和Linux知识体系的难度,更不要高估自己的自学和排错能力,否则可能会因为系统长期报错而丧失学习兴趣,得不偿失。对于经济条件允许、有意愿深入了解Linux系统并考取红帽RHCE的同学,可以看一下刘遄老师主讲的培训介绍:https://www.linuxprobe.com/training
图1-15 设置系统的安装来源
第4步:在图1-16中,将客户机操作系统的类型选择为“Linux”,版本选择为“Red Hat Enterprise Linux 8 64位”,然后单击“下一步”按钮。
图1-16 选择操作系统的版本
第5步:填写“虚拟机名称”字段,名称可以自行发挥。下方安装位置的路径建议选择一个比较大容量的盘符,最少要有20GB以上的空闲容量呦~决定后再单击“下一步”按钮,如图1-17所示。
图1-17 命名虚拟机及设置安装路径
第6步:设置CPU处理器的数量和内核数量,这个选项的值根据同学们自身电脑情况进行选择,可以在网络上搜索一下自己CPU处理器的型号信息,或者在Windows系统中打开任务管理器,进入到性能标签,右下侧的逻辑处理器数量就是您的CPU内核数量。如果上述方法都不奏效,可以如图1-18所示,暂时将处理器和内核数量都设置成1,后期再随时修改,不影响实验。搞定后点击“下一步”按钮。
图1-18 设置CPU处理器信息
第7步:设置虚拟机内存分配值。如果真机内存小于4GB,则建议分配给虚拟机1GB;如果真机内存大于4GB,不论是8GB还是更多,均建议分配给虚拟机2GB,如图1-19所示。过多的分配内存不会对实验结果有直接影响,超过2GB就可能存在着浪费现象了。
图1-19 设置内存分配量
第8步:设置网络类型为仅主机模式。VM虚拟机软件为用户提供了3种可选的网络模式,分别为桥接模式、NAT模式与仅主机模式,由于当前不需要虚拟机内系统连接互联网,所以此处设置为仅主机模式网络类型,然后点击“下一步”按钮,如图1-20所示。这三种模式的大致介绍如下:
桥接模式:相当于在物理主机与虚拟机网卡之间架设了一座桥梁,从而可以通过物理主机的网卡访问外网。
NAT模式:让VM虚拟机的网络服务发挥路由器的作用,使得通过虚拟机软件模拟的主机可以通过物理主机访问外网,在真机中对应的物理网卡是VMnet8。
仅主机模式:仅让虚拟机的系统之间与物理主机通信,不能访问外网,在真机中对应的物理网卡是VMnet1。
图1-20 设置网络类型
第9步:此处为SCSI控制器类型选项,使用“LSI Logic”推荐值,然后点击“下一步”按钮,如图1-21所示。
图1-21 设置I/O控制器类型
第10步:设置虚拟磁盘类型,简单来说就是设置一会新安装系统的硬盘接口类型,此处我们选择工作中更多使用的SATA接口类型,然后点击“下一步”按钮,如图1-22所示。此处请尽量与老师保持一致,否则IDE与NVMe接口类型的磁盘将在第六章节实验中名称不是/dev/sda,容易让新手产生疑惑。
图1-22 设置虚拟磁盘类型
第11步:由于这是一台全新安装的操作系统,不存在已有数据需要恢复的问题,所以直接选择“创建新虚拟磁盘”选项,然后点击“下一步”按钮,如图1-23所示。
图1-23 创建新虚拟磁盘
第12步:将虚拟机系统的“最大磁盘大小”设置为20.0GB(默认值),这是限定系统能够使用的最大磁盘容量,并不是立即占满这部分空间,如果想让磁盘性能更好的话可以勾选上“立即分配所有磁盘空间”选项。另外如果同学们今后要经常移动这台虚拟机的话,可以选中“将虚拟磁盘拆分成多个文件”选项;而如果不确定今后是否要经常移动的话,不妨也进行拆分,对实际操作无任何影响,性能也很好,然后单击“下一步”按钮。如图1-24所示。
图1-24 设置最大磁盘容量
第13步:设置磁盘文件名称,这个是完全没有必要修改的,因此直接点击“下一步”按钮,如图1-25所示。
图1-25 设置磁盘文件名称
第14步:当虚拟机的硬件信息已经基本设置妥当后,VM安装向导程序会向我们询问是否确认。由于还有几处信息需要修改,所以此时点击“自定义硬件”按钮,如图1-26所示。
图1-26 配置信息总览
第15步:点击“CD/DVD(SATA)”选项,在右侧“ISO映像文件”里找到并选中此前已经下载好的RHEL 8系统文件,即iso结尾的文件,不要解压,直接选中即可,如图1-27所示。
Tips
本书不包含实体光盘,系统镜像(映像)文件指的是通过本章节开头提到的网址下载的系统软件包。图1-27 选中RHEL 8系统映像文件路径
第16步:顺手把“USB控制器”、“声卡”、“打印机”设备统统移除掉。移掉声卡后可以避免在输入错误后发出提示声音,确保自己在今后实验中思绪不被打扰。然后单击“确认”按钮,如图1-28所示。
图1-28 最终的虚拟机配置情况
第17步:当看到如图1-29所示的界面时,就说明虚拟机已经被配置成功了,稍微休息一下,接下来准备步入属于您的Linux系统之旅吧。
图1-29 虚拟机配置成功的界面
1.3 安装您的Linux系统
安装RHEL 8或CentOS 8系统时,物理电脑的CPU需要支持虚拟化技术(Virtualization Technology),简称VT。这是一种能够让单台计算机分割出多个独立资源区,并让每个资源区按照需要模拟出系统的一项技术,其本质就是通过中间层实现计算机资源的管理和再分配,让系统资源的利用率最大化。
其实有个简单方法进行判断——只要您的电脑不是五六年前购买的,或者价格不低于三千元,那么处理器就肯定支持VT虚拟化的。大多数情况下都是默认已经开启的,只有当安装系统失败时才需要在物理机器的BIOS中手动开启一下,一般是在物理机器开机时多次按下F2或F12键便可进入,如图1-30所示进行开启。
图1-30 物理电脑BIOS开启虚拟化
第1步:在虚拟机管理界面中单击“开启此虚拟机”按钮后数秒就看到RHEL 8系统安装界面了,如图1-31所示。在界面中,“Test this media & install Red Hat Enterprise Linux 8.0.0”和“Troubleshooting”的作用分别是校验光盘完整性后再安装以及启动救援模式。此时通过键盘的方向键选择第一个选项“Install Red Hat Enterprise Linux 8.0.0”来直接安装Linux系统。
图1-31 RHEL 8系统安装界面
第2步:接下来按回车键后开始加载安装镜像,所需时间大约在20~30秒,请耐心等待,如图1-32所示。
图1-32 安装向导的初始化界面
第3步:选择系统的安装语言后单击“Continue”按钮,如图1-33所示。
请读者不用担心英语基础的问题,因为Linux系统中用的Linux命令具有特定的功能和意义,而非英语单词本身的意思。比如free的英文意思是“自由”、“免费”,而free命令在Linux系统中的作用是查看内存使用量情况。因此即便是英语水平很高,只要没有Linux基础知识,在看到这些Linux命令后也需要重新学习。再者,把系统设置成英文后还可以锻炼一下英语阅读能力,不知不觉地就把Linux系统和英文一起学了,岂不是更好~如果您执意选择中文安装语言,也可以进行选择。
图1-33 选择系统的安装语言
第4步:安装概要界面是Linux系统安装所需信息的集合之处,如图1-34所示,包含如下内容:“Keyboard(键盘)”、“Language Support(语言)”、“Time&Date(时间)”、“Installation Source(安装来源)”、“Software Selection(软件模式)”、“Installation Destination(安装介质)”、“KDUMP(一个服务)”、“Network&Host Name(网络)”、“SECURITY POLICY(安全策略)”、“System Purpose(系统用途)”。
图1-34 安装概要界面
第5步:同学们稳住不要慌,选项虽然多,但不是全都需要我们手动配置一遍。其中的“Keyboard”、“Language Support”指的是键盘类型和语言支持,这两项默认是英文的不用改,除非想换成中文界面。
所以首先点击“Time&Data”按钮来设置下系统的时区和时间吧,在地图上点击中国境内即可显示出上海的当前时间,这个就很好,确认后点击左上角的“Done”按钮吧,如图1-35所示。
图1-35 设置系统时区
第6步:中间列的“Installation Source”指的是系统从哪里获取的,默认已经是我们的光盘镜像文件了,不要改。RHEL 8系统的软件模式界面可以根据用户的需求来调整系统的基本环境,例如想把Linux系统用作基础服务器、文件服务器、Web服务器或工作站等,那么在系统安装过程中就会被额外安装上一些基础软件包,帮助用户尽快上手。这里首先点击“Software Selection”按钮进入到配置界面中,如图1-36所示。
RHEL 8系统提供六种软件基本环境,依次为“带图形化的服务器”、“服务器”、“最小化安装”、“工作站”、“自定义”和“虚拟化”。只要检查下当前模式是默认值“Server with GUI”即可,后面额外的软件包不要选择,后续学习过程中慢慢安装,这样才有乐趣是不是~点击左上角的“Done”按钮。
之前看过一个新闻,说是苹果公司某员工在iOS系统的用户说明书末尾加了一句“反正你们也不会去看”。其实这件事情有时候也可以用来调侃部分读者的学习状态,刘遄老师绝不会把没用的知识写到本书中,但就是这样一张如此醒目的截图也总是有读者视而不见,结果采用了Minimal Install单选按钮来安装RHEL 8系统,最终导致很多命令不能执行,服务搭建不成功。请一定留意!
刘遄老师亲自上课的培训课程视频介绍:https://www.linuxprobe.com/training
图1-36 设置系统模式
第7步:返回到安装概要界面后,右侧第一个“Installation Destination”指的是想把系统安装到那个硬盘。此时仅仅是让我们进行确认,不需要进行任何修改,单击左上角的“Done”按钮,如图1-37所示。
读者可能会有这样的疑问“为什么我们不像其他Linux图书那样,讲一下手动分区的方法呢”?原因很简单,因为Linux系统根据FHS(Filesystem Hierarchy Standard,文件系统层次结构标准)把不同的目录定义了相应的不同功能,这部分内容会在第6章中详细介绍。通过刘遄老师最近这几年的教学经验来看,即便现在写出了操作步骤,读者们大多也只是点点鼠标,并不能真正理解其中的原理,效果不一定好,更何况在接下来的实验中,手动分区相对于自动分区来说也没有明显的好处。所以读者大可不必担心学不到,书籍章节规划是非常科学的。
图1-37 设置系统安装设备
第8步:接下来进入到KDUMP服务的配置界面中,这个服务是用于收集系统内核崩溃数据的,但由于短时间并不打算调试系统内核参数呢,所以建议取消选中“Enable kdump”选项框,这样的话可以帮助我们节省约160M物理内存,随后单击左上角的“Done”按钮,如图1-38所示:
图1-38 关闭kdump服务
第9步:接下来进入到“Network&Host Name”配置界面中,首先点击右上角的开关按钮,设置成“ON”开启状态。然后在左下角将主机名称修改为“linuxprobe.com”并点击一下右侧“Apply”按钮进行确认,这样可以保证后续的命令提示符前缀一致,尽量不产生学习上的歧义。最后单击左上角的“Done”按钮,如图1-39所示。
图1-39 配置网络信息
第10步:返回到安装概要界面后,剩下的“SECURITY POLICY”与“System Purpose”暂时不需要配置,我们点击右下侧的“Begin Installation”按钮开始正式安装的操作系统吧~,过程大约持续20~30分钟,如图1-40所示。
图1-40 系统开始安装
第11步:在系统安装过程中,点击“Root Password”按钮来设置管理员的密码,如图1-41所示,这个操作非常重要,密码马上会在登录系统时被用到。这里需要多说一句,当您在虚拟机中做实验的时候,密码无所谓强弱,但在生产环境中一定要让root管理员的密码足够复杂,否则系统将面临严重的安全问题。
图1-41 设置管理员密码
第12步:继续点击“User Creation”按钮,为RHEL 8系统创建一个本地的普通用户,该账户的名字叫“linuxprobe”,密码统一设置为“redhat”,这个账户将会第五章节被使用到,确认后点击“Done”按钮吧~如图1-42所示。
图1-42 创建普通用户
第13步:安装过程大约持续了20~30分钟,一切完成后点击“Reboot”按钮来重启下系统,让此前配置的参数都能立即生效起来,如图1-43所示。
图1-43 安装完毕后等待重启
第14步:重启系统后将看到初始化界面,还剩最后两个选项需要我们进行确认——“License Information”与“Subscription Manager”。如图1-44所示。
图1-44 安装后的收尾工作
第15步:“Subscription Manager”指的是红帽产品订阅服务,是红帽公司的一项收费服务,暂时不需要也就不用点击了。直接通过“License Information”按钮进入到红帽产品许可信息界面~内容大意是版权说明、双方责任、法律风险等等,我们没什么好犹豫的,勾选上“I accept the license agreement”选项框后点击一下左上角的“Done”按钮吧~如图1-45所示。
图1-45 接受红帽许可协议
第16步:在安装初始化界面中点击“FINISH CONFIGURATION”按钮进行确认后,系统将会进行最后一轮的重启,大约经过2分钟的等待时间,便能够看到如图1-46所示的登录界面了。但为了保证在学习到第五章前不受权限的牵绊,请同学们务必点击用户下方的“Not listed?”按钮,手动输入管理员账号:“root”以及所设置的密码吧(第11步),如图1-47和1-48所示。
图1-46 选择用其他用户登录
图1-47 输入管理员账号
图1-48 输入管理员密码
第17步:点击“Sign In”按钮后顺利进入到系统中,终于看到了欢迎界面,此时会有一系列的非必要性询问,例如语言、键盘、输入来源等等信息,我们一路点击“Next”按钮即可。最终如图1-49所示的便是RHEL 8系统对您的欢迎信息,单击“Start Using Red Hat Enterprise Linux”按钮便能进入到系统桌面了。至此,RHEL 8系统完成了全部的安装和部署工作,准备开始学习Linux系统吧~
图1-46 正式开始使用系统
出现问题?大胆提问!
因读者们硬件不同或操作错误都可能导致实验配置出错,请耐心再仔细看看操作步骤吧,不要气馁~
Linux技术交流学习请加读者群(推荐):https://www.linuxprobe.com/club
*本群特色:确保每一位群友都是《Linux就该这么学》的读者,答疑更有针对性,不定期领取定制礼品。
1.4 安装软件的方法
在RPM(红帽软件包管理器)公布之前,要想在Linux系统中安装软件只能采取编译源码包的方式,所以早期安装软件是一件非常困难、耗费耐心的事情,而且大多数的服务程序仅仅提供自身的源代码,还需要运维人员编译代码后自行解决软件之间的依赖关系。因此要安装好一个服务程序,运维人员不仅需要具备丰富的知识、高超的技能,还要有良好的耐心,这其中的艰辛我们会在本书第20章节为读者们实战演练一遍。
总而言之,早期Linux系统在安装、升级、卸载服务程序时还要考虑到其他程序、库的依赖关系,所以在进行校验、安装、卸载、查询、升级等管理软件操作时难度都非常大,RPM机制则正是为了解决这些问题而设计的。
通过RPM安装的服务程序会像Windows系统中的控制面板那样,建立统一的数据库,详细记录软件信息并能够自动分析依赖关系。表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 -qf filename | 查询文件属于哪个RPM |
但是,尽管RPM能够帮助用户查询软件之间的依赖关系,但问题还是要运维人员自己来解决,而有些大型软件可能与数十个程序都有依赖关系,在这种情况下安装软件依然是很繁琐的,Yum软件仓库便是为了进一步降低软件安装难度和复杂度而设计的技术。Yum软件仓库可以根据用户的要求分析出所需软件包及其相关的依赖关系,然后自动从服务器下载软件包并安装到系统。Yum软件仓库的技术拓扑如图1-47所示。
图1-47 Yum软件仓库的技术拓扑图
Yum软件仓库中的RPM软件包可以是由红帽官方发布的,也可以是第三方发布的,当然也可以是自己编写的。随书提供的系统镜像(需在本书配套网站里下载:https://www.linuxprobe.com/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 软件包组 | 查询指定的软件包组信息 |
原本以为故事到此就要结束了吧,但人们慢慢发现Yum虽然解决了软件的依赖关系问题,但仍然还是存在着分析不准确、内存占用量大、不能多人同时安装软件等等硬伤。终于在2015年随着Fedora 22系统的发布,红帽又给了我们一个新的选择——DNF,实际就是解决了上述问题的Yum软件仓库的提升版,行业内叫做Yum v4版本。
作为Yum软件仓库v3版本的接替者,DNF特别友好的继承了原有的命令格式,使用习惯上保持一致~不用担心不会操作,举例来说以前安装软件用的是“yum install 软件包名称”,那么现在则是“dnf install 软件包名称”,命令替换成dnf即可。
当然RHEL 8系统也照顾到了老用户的习惯问题,同时兼容保留了yum和dnf两个命令,在实际操作中随意选择喜欢的执行就好,甚至提示信息都基本一样,感知不到什么区别。
1.5 系统初始化进程
Linux操作系统的开机过程是这样的,先从BIOS开始,然后进入Boot Loader,再加载系统内核,然后内核进行初始化,最后启动初始化进程。初始化进程作为Linux系统启动后的第一个正式服务,它需要完成Linux系统中相关的初始化工作,为用户提供合适的工作环境。同学们可以粗犷的理解成从我们按下开机键到看见系统桌面的这个过程,初始化进程完成了一大半工作。
红帽RHEL 7/8系统替换掉了熟悉的初始化进程服务System V init,正式采用全新的systemd初始化进程服务。原本以为这对日常使用影响不大,但实际许多的服务管理命令都被替换了,如果您之前学习的是RHEL 5或RHEL 6系统,可能真有点不习惯。
Linux系统在启动时要进行大量的初始化工作,比如挂载文件系统和交换分区、启动各类进程服务等,这些都可以看作是一个一个的单元(Unit),systemd用目标(target)代替了System V init中运行级别的概念,这两者的区别如表1-3所示。
表1-3 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 | 救援模式 |
如果想要将系统默认的运行目标修改为“多用户的文本界面”模式,可直接用ln命令把多用户模式目标文件连接到/etc/systemd/system/目录:
[root@linuxprobe ~]# ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target
如果有读者之前学习过RHEL 5/6系统,或者已经习惯使用service、chkconfig等命令来管理系统服务,那么现在就比较郁闷了,因为在RHEL 7/8系统中是使用systemctl命令来管理服务的。表1-4和表1-5所示新老版本系统的对比,您可以先大致了解一下,后续章节中会经常用到它们。
表1-4 服务的启动、重启、停止、重载、查看状态等常用命令
老系统命令 | 新系统命令 | 作用 |
service foo start | systemctl start httpd | 启动服务 |
service foo restart | systemctl restart httpd | 重启服务 |
service foo stop | systemctl stop httpd | 停止服务 |
service foo reload | systemctl reload httpd | 重新加载配置文件(不终止服务) |
service foo status | systemctl status httpd | 查看服务状态 |
表1-5 服务开机启动、不启动、查看各级别下服务启动状态等常用命令
老系统命令 | 新系统命令 | 作用 |
chkconfig foo on | systemctl enable httpd | 开机自动启动 |
chkconfig foo off | systemctl disable httpd | 开机不自动启动 |
chkconfig foo | systemctl is-enabled httpd | 查看特定服务是否为开机自启动 |
chkconfig --list | systemctl list-unit-files --type=httpd | 查看各个级别下服务的启动与禁用情况 |
1.6 重置root密码
平日里让运维人员头疼的事情已经很多了,因此偶尔把Linux系统的密码忘记了并不用慌,只需简单几步就可以完成密码的重置工作。但是,如果您是第一次阅读本书,或者之前没有Linux系统的使用经验,请一定先跳过本节,等学习完Linux系统的命令后再来学习本节内容。如果刚刚接手了一台Linux系统,要先确定是否为RHEL 8系统。如果是,然后再进行下面的操作。
[root@linuxprobe ~]# cat /etc/redhat-release Red Hat Enterprise Linux release 8.0 (Ootpa)
第1步:重启Linux系统主机并出现引导界面时,按下键盘上的“e”键进入内核编辑界面,如图1-48所示。
图1-48 Linux系统的引导界面
第2步:在linux参数这行的最后面追加“rd.break”参数,然后按下“Ctrl + x”组合键来运行修改过的内核程序,如图1-49所示。
图1-49 内核信息的编辑界面
第3步:大约30秒过后,进入到系统的紧急求援模式,如图1-50所示。
图1-50 Linux系统的紧急救援模式
第4步:依次输入以下命令,再连续按下两次“Ctrl + d”组合键来退出并重启,等待系统再次重启完毕后便可以使用新密码来登录Linux系统了。命令执行效果如图1-51所示。
mount -o remount,rw /sysroot chroot /sysroot passwd touch /.autorelabel
图1-51 重置Linux系统的管理员密码
出现问题?大胆提问!
因读者们硬件不同或操作错误都可能导致实验配置出错,请耐心再仔细看看操作步骤吧,不要气馁~
Linux技术交流学习请加读者群(推荐):https://www.linuxprobe.com/club
*本群特色:确保每一位群友都是《Linux就该这么学》的读者,答疑更有针对性,不定期领取定制礼品。
本章节的复习作业(答案就在问题的下一行哦,用鼠标选中即可看到的~)
1.为什么建议读者下载系统文件后先进行校验而不直接安装呢?
答:为了保证系统和软件包的安全与完整性,避免由外部因素导致安装失败,磨刀不误砍柴工。
2.使用虚拟机安装Linux系统时,为什么要先选择稍后安装操作系统,而不是去选择RHEL 8系统镜像文件?
答:在配置界面中若直接选择了RHEL 8系统镜像文件,则VMware Workstation虚拟机会使用内置的安装向导自动进行安装,最终安装出来的系统跟我们后续进行实验所需的系统环境会不一样。
3.安装系统时出现如“CPU不支持虚拟化”的报错信息,该怎么解决?
答:遇到此类报错,最大的可能原因是BIOS中没有开启VT虚拟化功能,手动开启后重启即可。
4.RPM(红帽软件包管理器)只有红帽企业系统在使用,对吗?
答:RPM已经被CentOS、Fedora、openSUSE等众多Linux系统采用,它真的很好用!
5.简述RPM与软件仓库的作用。
答:RPM是通过了将源代码与安装规则相打包在一起,降低了单个软件的安装难度。而Yum与dnf软件仓库则是将大量常用RPM软件包打包到了一起,解决了软件包之间的依赖关系,进一步降低了软件的整体安装难度。
6.RHEL 7/8系统采用了systemd作为初始化进程,那么如何查看某个服务的运行状态?
答:执行命令“systemctl status 服务名”则可查看服务的运行状态。