版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
项目5管理软件包《Linux网络操作系统项目化教程》学习目标/Target了解RPM工具,能够说出RPM工具是如何管理RPM软件包的。了解YUM/DNF管理工具,能够说出YUM/DNF管理工具的管理机制。熟悉源码包管理,能够说出源码编译过程。知识目标学习目标/Target掌握rpm命令的使用,能够熟练使用rpm命令完成软件包的查询、安装、升级、卸载。掌握dnf命令的使用,能够熟练使用dnf命令实现软件包的安装、查询、检测升级与卸载。掌握make工具,能够使用make工具完成软件的安装。技能目标素养目标通过处理软件包之间复杂的依赖关系,培养逻辑推理能力和系统性思考方式。通过学习不同软件包管理工具的特点和适用场景,培养批判性思维与合理决策能力。目录/Contents5.15.2RPM概述使用rpm命令管理软件包5.3YUM与DNF概述5.4使用dnf命令管理软件包5.5源码包管理项目导入01项目导入小智所在的技术支持部门一直致力于为客户提供优质的Linux系统技术支持和运维服务,随着业务的不断发展,团队所负责的项目对数据库的需求日益增加。目前,部门所维护的一些系统需要一个高效、可靠的数据库管理系统来存储和管理数据。经过综合评估,MySQL8.0以其出色的性能、丰富的功能和广泛的社区支持,成为满足当前项目需求的理想选择。上级领导让小智在KylinServerV10系统中完成MySQL8.0的安装与基础配置。知识准备02了解RPM工具,能够说出RPM工具是如何管理RPM软件包的。学习目标5.1RPM概述RPM(RedHatPackageManager,RedHat软件包管理)是由RedHat公司开发的一款软件包管理工具,因遵循GPL协议且功能强大而广受欢迎,很多Linux操作系统发行版本(如麒麟、openEuler、CentOS、Fedora、SUSE等)都使用RPM工具管理软件包。5.1RPM概述5.1RPM概述RPM软件包分为两种:二进制包与源代码包。1二进制包二进制包中封装的是编译后生成的可执行文件,类似于Windows操作系统下的.exe文件,此类软件包可使用rpm命令直接安装。2源代码包源码包中封装的是源码,在安装前需先下载源码,再对源码进行编译生成扩展名为.rpm的RPM软件包,之后才能安装软件本身。二进制包和源代码包各有优缺点,具体如下所示。1二进制包的安装更加简单、方便,安装速度也更快,但它缺乏灵活性,用户无法根据自己的需求设置编译选项,并且二进制软件包存在更新滞后的问题。2源码包支持高度的可定制化,用户可以根据自己的需求设置编译选项;当有版本更新时,也可以及时地下载最新版本或补丁重新编译源码。5.1RPM概述name-version-arch.rpmname-version-arch.src.rpmRPM软件包常用的命名格式如下所示。常用格式表示软件包名表示软件版本号表示软件包的适用平台5.1RPM概述acl-2.2.39-1.1.i386.rpmjdk-8u144-linux-x64.src.rpmRPM软件包名称具体示例如下。具体示例5.1RPM概述devel:表示当前软件包是一个开发包。noarch:表示当前软件包适用于任何平台。manual:表示当前软件是手册文档。发行信息:kylin表示该软件包针对麒麟发行,如glibc-2.31-17.kylin.x86_64.rpm;el*表示该软件包针对RHEL/CentOS系列版本发行,如mysql-community-release-el7-5.noarch.rpm。除上述内容外,用户也可能在RPM软件包名中看到如下信息。5.1RPM概述RPM提供了rpm命令,用于实现RPM软件包的管理,rpm命令可以实现RPM软件包的查询、安装、升级、卸载等操作。本节将针对rpm命令可以实现的常见操作进行详细讲解。5.2rpm命令管理软件包掌握rpm命令的使用,能够熟练使用rpm命令完成软件的查询。学习目标5.2.1使用rpm命令查询软件包rpm选项RPM软件包rpm命令查询RPM软件包的基本格式如下所示。基本格式5.2.1使用rpm命令查询软件包rpm命令常用的安装选项如表。5.2.1使用rpm命令查询软件包选项含义-q查询软件包信息,通常和其他选项组合使用-a查询已安装的包-c显示软件包的配置文件列表(后面是已安装软件包的名称)-d显示软件包的文本文件列表(后面是已安装软件包的名称)-p查询软件包文件5.2.1使用rpm命令查询软件包选项含义-g查询所属组的软件包-f查询文件属于哪个软件包-l列出已安装软件包内的所有文件(后面是已安装软件包的名称)-s列出软件包内所有文件的状态(后面是已安装软件包的名称)案例5-1:查询JDK是否已经安装。5.2.1使用rpm命令安装软件包点击查看掌握rpm命令的使用,能够熟练使用rpm命令完成软件的安装。学习目标5.2.2使用rpm命令安装软件包rpm选项RPM软件包rpm命令安装软件包的基本格式如下所示。基本格式5.2.2使用rpm命令安装软件包rpm命令常用的安装选项如表。选项含义-i安装指定的一个或多个软件包-v显示安装过程-h以“#”符号显示安装进度5.2.2使用rpm命令安装软件包案例5-2:在KylinServerV10中安装JDK。KylinServerV10安装的是OpenJDK1.8,我们可以安装一个更高版本的JDK。在Oracle官网下载JDK软件包jdk-21_linux-x64_bin.rpm,打开终端并切换到root用户,执行安装命令,安装命令及安装过程如下所示。点击查看5.2.2使用rpm命令安装软件包案例5-3:查询JDK安装情况。点击查看5.2.2使用rpm命令安装软件包案例5-4:查看已经安装的jdk-21的相关信息。点击查看5.2.2使用rpm命令安装软件包在下载JDK安装包时,可以从KylinServerV10的浏览器中下载,也可以先在Windows操作系统中下载,再将安装包上传到KylinServerV10。为了在Windows操作系统和Linux操作系统之间传递文件,Linux操作系统提供了两个命令rz和sz。
rz命令用于将文件上传到Linux服务器,在执行rz命令时,会弹出一个文件选择窗口用于选择要上传的文件。
sz命令用于将Linux服务器上的文件下载到本地。rz命令与sz命令5.2.2使用rpm命令安装软件包掌握rpm命令的使用,能够熟练使用rpm命令完成软件包的升级。学习目标5.2.3使用rpm命令升级软件包rpm选项RPM软件包rpm命令查询软件包的基本格式如下所示。基本格式5.2.3使用rpm命令升级软件包rpm命令常用的升级选项如表。5.2.3使用rpm命令升级软件包选项含义-U升级指定软件包-v显示升级过程-h以“#”符号显示升级进度案例5-5:下载更高版本的软件包jdk-23_linux-x64_bin.rpm,更新JDK。从Oracle官网下载jdk-23_linux-x64_bin.rpm,使用rpm命令安装jdk-23_linux-x64_bin.rpm软件包,命令如下所示。点击查看5.2.3使用rpm命令升级软件包掌握rpm命令的使用,能够熟练使用rpm命令完成软件的卸载。学习目标5.2.4使用rpm命令卸载软件rpm命令使用-e选项卸载软件。在卸载软件时,rpm命令可以一次卸载多个软件。若卸载成功,rpm命令没有输出结果;如果卸载失败,rpm命令会给出提示信息。5.2.4使用rpm命令卸载软件案例5-6:卸载安装的jdk-21。5.2.4使用rpm命令卸载软件点击查看了解YUM/DNF管理工具,能够说出YUM/DNF管理工具的管理机制。学习目标5.3YUM与DNF概述发行方:RedHat公司定位:高级软件包管理工具核心优势:自动解决软件包之间的依赖关系。5.3YUM与DNF概述YUM简介RPM:基础软件包管理工具,需手动处理依赖。YUM:在RPM基础上升级,自动解决依赖问题YUM
VSRPMdnf选项命令软件名称DNF是KylinServerV10默认的软件包管理工具,所以本书后面以dnf命令为例进行讲解。dnf命令的基本格式如下。基本格式5.3YUM与DNF概述dnf命令常用选项如表。5.3YUM与DNF概述选项含义-h显示帮助信息-y全部问题自动回答为“yes”-v详细模式掌握dnf命令的使用,能够熟练使用dnf命令实现软件包的安装。学习目标5.4.1安装软件包dnf的安装命令为install。使用install安装软件包时,系统会查询软件仓库,如果软件仓库中有相应的软件包,则检查软件包的依赖关系。如果没有依赖关系冲突,则下载并安装软件包;如果有依赖关系冲突,则询问用户是否安装依赖,或删除有冲突的软件包。5.4.1安装软件包案例5-7:使用dnf命令安装htop命令。点击查看5.4.1安装软件包掌握dnf命令的使用,能够熟练使用dnf命令实现软件的查询。学习目标5.4.2查询软件包dnf常用的查询命令有两个,分别为list和info,这两个命令的具体介绍如下所示。用于列出软件仓库中的软件包,如果dnflist后面指定软件包,则列出该软件包的信息。dnflistdnfinfo用于显示软件包的详细信息,如果dnfinfo后面没有指定软件包,则列出软件仓库中所有软件包的详细信息。5.4.2查询软件包案例5-8:使用dnflist命令查询telnet软件包。[root@localhostchapter05]#dnflisttelnetInstalledPackagestelnet.x86_64 1:0.17-78.ky10@anaconda5.4.2查询软件包案例5-9:使用dnfinfo命令查询telnet软件包。点击查看5.4.2查询软件包掌握dnf命令的使用,能够熟练使用dnf命令实现检查更新软件包。学习目标5.4.3检查升级软件包dnf也可以更新软件,它常用的检查更新命令如表。命令作用dnfupdate软件包名称更新指定软件包。如果不指定软件包名称,则更新所有可更新的软件包。dnfcheck-update软件包名称检查可用的软件包更新。如果没有指定软件包名称,则列出软件仓库中所有可用的软件包更新。5.4.3检查升级软件包案例5-10:更新安装的ls命令。[root@localhostchapter05]#dnfupgradelsNomatchforargument:lsError:Nopackagesmarkedforupgrade.5.4.3检查升级软件包掌握dnf命令的使用,能够熟练使用dnf命令实现卸载软件的操作。学习目标5.4.4卸载软件包dnf卸载软件的命令为remove,remove可以从系统中卸载一个或多个软件。dnfremove命令在卸载软件时也会自动处理软件之间的依赖关系。5.4.4卸载软件包案例5-11:卸载telnet命令。点击查看5.4.4卸载软件包[root@localhostchapter05]#dnfcleanall43filesremoved除了remove命令,dnf还提供了clean命令用于清除过期无用的缓存数据。在使用dnfclean命令清除缓存时,必须指定软件包,如果要清除所有过期无用的缓存数据,则使用all选项,示例如下。5.4.4卸载软件包YUM维护的软件仓库用于提供各种软件包,这些仓库通常称为YUM源。DNF同样维护了一些仓库,虽然DNF与YUM不同,但因为DNF兼容YUM,所以DNF维护的仓库在习惯上仍然称为YUM源。YUM源5.4.4卸载软件包不同的Linux操作系统发行版本维护的DNF仓库并不相同,在KylinServerV10中,读者可以通过dnfrepolist命令查看DNF维护的可用的软件仓库,在输出结果中会显示仓库ID和仓库名称。YUM源5.4.4卸载软件包[root@localhostchapter05]#dnfrepolistrepoidreponameks10-adv-osKylinLinuxAdvancedServer10-Osks10-adv-updatesKylinLinuxAdvancedServer10-Updates[root@localhostchapter05]#ls/etc/yum.repos.dopenEuler.repo软件仓库中保存软件下载地址的文件都存储在/etc/yum.repos.d目录下,使用ls命令可查看该目录下的软件源文件。YUM源5.4.4卸载软件包由上述命令输出结果可知,KylinServerV10的YUM源文件为kylin_x86_64.repo,YUM源文件都以.repo为扩展名,因此它们也称为REPO文件。查看openEuler.repo文件内容,具体如下所示。YUM源点击查看5.4.4卸载软件包熟悉源代码包管理,能够说出源代码编译过程。学习目标5.5.1源码编译过程使用rpm命令或dnf命令管理软件包非常方便,但某些基于RPM的发行版出于稳定性和长期支持的考虑,可能会提供较为保守的软件包版本,用户无法获取更新和功能更丰富的软件包,因此很多用户都会下载软件源代码包进行手动编译安装。5.5.1源码编译过程程序源代码无法直接运行,只有通过一系列编译链接过程生成可执行的二进制文件才可以运行。程序源代码的编译过程如图。5.5.1源码编译过程#include<stdio.h> #include<stdlib.h> intmain() { printf("helloworld\n");
return0;}虽然各种编程语言的编译过程略有不同,但大体都遵循“程序源代码的编译过程”所示的过程。下面以C语言编写的程序为例演示源代码的编译过程。使用Vim编辑hello.c文件,在hello.c文件中编写以下代码。包含stdio.h头文件包含stdlib.h头文件定义main()函数输出helloworld语句5.5.1源码编译过程gcc选项源文件–o目标文件gcc命令基本格式如下所示。5.5.1源码编译过程gcc命令基本格式如下所示。选项含义-o生成目标文件-E预处理文件,即对文件进行预处理,展开头文件、宏定义等-S编译预处理文件,生成汇编代码-c编译文件(汇编文件或源文件),生成最终可执行的二进制文件-Wall显示警告信息5.5.1源码编译过程gcc对C语言程序的编译过程大体可以分为以下4个步骤。1234预处理:由-E选项完成,生成的目标文件为预处理文件,预处理文件以.i为扩展名。编译:由-S选项完成,生成的目标文件为汇编文件,汇编文件以.s为扩展名。汇编:由-c选项完成,生成目标文件,目标文件以.o为扩展名。链接:不需要选项,直接由gcc命令执行,生成的目标文件为可执行的二进制文件。5.5.1源码编译过程案例5-12:使用gcc命令编译运行hello.c文件。点击查看5.5.1源码编译过程[root@localhostchapter05]#gcchello.c-ohello [root@localhostchapter05]#ls hellohello.cjdk-21_linux-x64_bin.rpmjdk-23_linux-x64_bin.rpmjdk-8u261-linux-x64.rpm[root@localhostchapter05]#./hello helloworld对于只有一个文件的简单程序,gcc其实可以一次性完成编译,例如,将hello.c直接编译生成最终的可执行文件。一次编译完成查看最终生成的hello文件执行hello文件5.5.1源码编译过程掌握make工具,能够使用make工具完成软件的安装。学习目标5.5.2make工具对于简单的程序,可以直接使用gcc命令编译,但当一个程序中源文件特别多时,如果再使用gcc命令逐个编译文件,工作量会特别大,而且源文件之间存在相互依赖关系,很容易出现编译错误。为此,Linux操作系统提供了编译工具make来完成复杂程序的编译。make编译工具包含的命令、文件等比较多,下面分别进行介绍。5.5.2make工具当一个程序源文件比较多时,可以将编译命令写在一个文件中,只要执行该文件就可以完成程序的编译。在Linux操作系统中,包含编译命令的文件就是Makefile文件,执行Makefile文件就可以完成程序的编译。1.Makefile文件5.5.2make工具make工具提供了make命令用于编译源程序,但make命令本身并没有编译功能,它只能通过批处理的形式执行一个包含编译命令的文件以实现程序的编译。当我们执行make命令时,其实就是执行Makefile文件中的编译命令。2.make命令5.5.2make工具make命令执行完成后会生成二进制文件,makeinstall命令的作用是执行生成的二进制文件进行安装。makeinstall命令其实也是读取Makefile文件中的指令安装软件。由上面的讲解可知,通过源代码安装软件时,可以先执行configure脚本文件生成Makefile文件,再执行make命令进行编译,最后通过makeinstall命令完成安装,其过程如图。3.makeinstall命令5.5.2make工具项目实施03为了保证安装顺利,小智先在自己的KylinServerV10中安装了MySQL8.0,具体安装步骤如下所示。任务5安装MySQL8.0创建/etc/mysql目录,将MySQL8.0安装到/etc/mysql目录,创建/etc/mysql目录的具体命令如下。任务5安装MySQL8.01.创建MySQL8.0安装目录[itheima@localhostchapter05]$mkdirmysql[itheima@localhostchapter05]$cdmysqlKylinServerV10默认安装了MariaDB(MySQL的分支),查询命令如下所示。任务5安装MySQL8.02.清理旧版本的MySQL点击查看为了避免冲突,在安装MySQL8.0之前,需要先将MariaDB及相应的支持软件包卸载掉,卸载命令如下。任务5安装MySQL8.02.清理旧版本的MySQL点击查看下载MySQL8.0的安装包,并将其配置到本地YUM源的具体命令如下。任务5安装MySQL8.03.配置MySQL的YUM源[root@localhostmysql]#wget/mysql80-community-release-el8-6.noarch.rpm[root@localhostmysql]#lsmysql80-community-release-el8-6.noarch.rpm[root@localhostmysql]#rpm-Uvhmysql80-community-release-el8-6.noarch.rpm在导入新的公钥之前,需要删除旧的公钥,删除命令如下。任务5安装MySQL8.04.解决GPG验证[root@localhostmysql]#rpm-e--allmatchesgpg-pubkey$(rpm-qa|grep'gpg-pubkey.*mysql'|sed's/gpg-pubkey-//g')表示从所有已安装的RPM软件包中筛选出包含mysql字样的GPG公钥包将匹配到的GPG公钥包名称中的gpg-pubkey-部分去掉,只保留<key-id>-<timestamp>部分删除旧的公钥之后,重新导入公钥,具体命令如下。任务5安装MySQL8.04.解决GPG验证[root@localhostmysql]#rpm--import/RPM-GPG-KEY-mysql-2023 [root@localhostmysql]#dnfcleanall 11filesremoved导入新的公钥清理缓存任务5安装MySQL8.05.安装MySQL8.0的服务端程序mysql-community-server安装mysql-community-server应用程序的具体命令如下。点击查看任务5安装MySQL8.06.启动mysqld服务进程MySQL对应的服务进程名称为mysqld,可以通过调用systemctlstart命令(项目6中将介绍)来启动服务进程,具体如下。[root@localhostchapter05]#systemctlstartmysqld任务5安装MySQL8.07.查看初始密码使用grep命令在
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- QC/T 1269-2026电动汽车用电机控制器技术要求和试验方法
- 2026事业单位工勤技能-江西-江西广播电视天线工一级(高级技师)历年参考题库含答案详解3套试卷
- 中医治疗胆囊炎医案讲解
- 静脉曲张中医案例分享
- 2026下半年小学教师资格证考试小学综合素质高频考点试卷及解析
- 疫情课学生心理健康教育
- 单元七 交通事故无人机救援
- 校外机构消防安全规范
- 消防安全宣传车模型设计
- 2026及未来5年中国地毯抽洗剂数据监测研究报告
- 2026年山东将军开元纸业有限公司招聘(13人)笔试模拟试题及答案详解
- 2025年农信社不良资产处置岗招聘考试题库附答案
- 国有企业董事会决策事项清单管理制度
- 2026年全国高考1卷高考数学真题(教师版)
- A 证(企业主要负责人)考试题库
- 2026年高考英语真题完全解读(全国一卷)(试卷点评)
- 2026年五四制小升初数学测试题及答案
- 体育与健康九年级人教版背越式跳高教案
- 县域经皮冠状动脉介入治疗合理用药与综合管理指南课件
- 周三多-管理学:原理与方法(第七版),第十八章
- 重庆育才中学新初一分班英语试卷含答案
评论
0/150
提交评论