版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
4任务四
坚持就是胜利
--软件包管理4.1任务导入任务概述、任务分析、任务目标4.3任务实施项目实施步骤1、项目实施步骤24.2任务知识准备知识点1、知识点24.4任务思考双创体现任务四
坚持就是胜利---软件包管理4.5任务拓展知识技术拓展1、技术拓展24.6任务小结本任务小结4.1任务导入
4.1.1任务概述
在任务“乐购商城数据库服务器的部署”中完成任务创建存储空间和文件系统之后就是任务安装Mysql数据库服务器所依赖的操作系统软件包。安装软件包之前首先查询本机是否已经安装该软件包,要学会查询软件包,如果没有安装,就要下载软件包,并进行解压,然后安装。安装好软件包之后还需要学会升级软件包及卸载软件包。4.1.2任务分析根据任务概述,我们需要考虑:(1)如何安装Mysql数据库服务器所依赖的操作系统软件包(2)如何对软件包进行打包、压缩和解压缩4.1.3任务目标根据任务分析,我们需要掌握如下知识、技能、思政、双创、课证目标。1.了解Linux软件包。(知识)2.熟练掌握软件安装和管理工具rpm。(技能)3.熟练掌握软件安装和管理工具yum。(技能)4.熟练掌握打包、压缩和解压缩工具。(技能)5.熟悉源代码的编译和安装。(技能)6.系统管理员要求具备职业责任感,具备遵纪守法、爱岗敬业、诚实守信、开拓创新的职业品格和行为习惯。(思政)7.根据乐购网站Mysql数据库服务器所依赖的操作系统软件包的安装,进一步掌握其他服务器所依赖软件包的安装(双创)8.拓展1+X云计算运维与开发考证及红帽RHCSA认证知识技能。(1+X考证)4.2任务知识准备4.2.1
Linux软件包Linux操作系统的软件包众多,且几乎都是经GPL授权、免费开源的,即软件包提供原始程序代码,并且可以自行修改程序源码,以达到个人的需求。Linux操作系统的软件包可分为两种,分别是源码包和二进制包。1、Linux源码包源码包就是源代码程序,是由程序员按照特定的格式和语法编写出来的。计算机只能识别机器语言,也就是二进制语言,所以源码包的安装需要用到编译器。“编译”指的是从源代码到直接被计算机(或虚拟机)执行的目标代码的翻译过程,编译器的功能就是把源代码翻译为二进制代码,让计算机识别并运行。由于源码包的安装需要把源代码编译为二进制代码,源码包的编译是很费时间的,因此安装时间较长。比如,我们以源码包安装的方式在Linux系统中安装Mysql数据库,需要30分钟左右的时间(根据硬件配置不同,略有差异)。源码包一般包含多个文件,为了方便发布,通常会将源码包做打包压缩处理,Linux系统中最常用的打包压缩格式为“tar.gz”,因此源码包又被称为Tarball。
源码包中通常包含以下内容:1)源代码文件。2)配置和检测程序(如configure或config等)。3)软件安装说明和软件说明(如INSTALL或README)。使用源码包安装软件具有以下几点好处:1)开源。如果你有足够的能力,则可以修改源代码。2)可以自由选择所需的功能。3)因为软件是编译安装的,所以更加适合自己的系统,更加稳定,效率也更高。4)卸载方便。但同时,使用源码包安装软件也有几点不足:1)安装过程步骤较多,尤其是在安装较大的软件包时。2)编译时间较长,所以安装时间比二进制包安装要长。3)因为软件是编译安装的,所以在安装过程中一旦报错,问题的解决可能会比较棘手。
2、Linux二进制包二进制包,是源码包经过成功编译之后产生的包。由于二进制包在发布之前就已经完成了编译的工作,因此,用户安装二进制包的速度较快,且安装过程报错几率大大减小。二进制包是Linux系统下默认的软件安装包,因此二进制包又被称为默认安装软件包。目前主要有2大主流的二进制包管理系统:RPM包管理系统和DPKG包管理系统。它们的原理和形式大同小异,本任务主要讲解RPM二进制包。使用RPM包安装软件具有以下好处:1)包管理系统简单,只通过几个命令就可以实现包的安装、升级、査询和卸载等。2)安装速度比源码包安装快。与此同时,使用RPM包安装软件有如下不足:1)已经经过编译,不能看到源代码。2)功能选择不如源码包灵活。3)需要记录该软件安装时必须具备的依赖属性软件,安装时要按照依赖属性依次安装。比如,在安装软件包a时需要先安装b和c,而在安装b时需要先安装d和e。这就需要先安装d和e,再安装b和c,最后才能安装a。这就是软件包安装的依赖性。选人:Linux操作系统的软件包包括哪两种?抢答:Linux系统下默认的软件安装包是4.2.2
RPM软件包管理工具RPM的全名是“RedHatPackageManager”,是由RedHat公司开发的。RPM是以一种数据库记录的方式来将所需要的软件安装到Linux系统的一套软件包管理机制。1、RPM包的命名规则RPM二进制包的命名需遵守统一的命名规则,用户通过名称就可以直接获取这类包的版本、适用平台等信息。RPM二进制包命名的一般格式如下:包名-版本号-发布次数-发行商-Linux平台-适合的硬件平台-包扩展名例如,有一个RPM包的名称是vsftpd-3.0.3-28.el8.x86_64.rpm,其中:vsftpd:软件包名。这里需要注意,vsftpd是包名,而vsftpd-3.0.3-28.el8.x86_64.rpm通常称为包全名,包名和包全名是不同的,在Linux命令中,有些命令(如包的安装和升级)使用的是包全名,而有些命令(包的查询和卸载)使用的是包名。3.0.3:包的版本号,版本号的格式通常为主版本号.次版本号.修正号。28:二进制包发布的次数,表示此RPM包是第几次编译生成的。el8:软件发行商,el8表示此包是由RedHat公司发布,适合在RHEL8.x(RedHatEnterpriseUnux)和CentOS8.x上使用。x86_64:表示此包使用的硬件平台。目前的RPM包支持的硬件平台如下表4-1所示。rpm:RPM包的扩展名,表明这是编译好的二进制包,可以使用rpm命令直接安装。平台名称适用平台信息i386386以上的计算机都可以安装i586686以上的计算机都可以安装i686奔腾II以上的计算机都可以安装,目前所有的CPU是奔腾II以上的,所以这个软件版本居多x86_6464位CPU可以安装noarch没有硬件限制2、RPM包的安装、卸载和升级1)RPM包的默认安装路径通常情况下,RPM包采用系统默认的安装路径,所有安装文件会按照类别分散安装到下表4-2所示的目录中。安装路径含义/etc/配置文件安装目录/usr/bin/可执行的命令安装目录/usr/lib/程序所使用的函数库保存位置/usr/share/doc/基本的软件使用手册保存位置/usr/share/man/帮助文件保存位置2)RPM包的安装安装RPM包的命令格式为:rpm-ivh包全名注意一定要用包全名。涉及到包全名的命令,一定要注意包文件所在路径,如果软件包在光盘中,则需提前做好设备的挂载工作。此命令中各选项参数的含义为:-i:安装;-v:显示更详细的信息;-h:打印#,显示安装进度。例4-1:利用安装镜像文件,安装telnet软件包。操作步骤:(1)先挂载安装用的镜像文件(可以先查询该软件包是否安装,用rpm-qa|grep“软件或者包的名字”,即rpm-qa|greptelnet)(2)用mount命令查看一下挂载目录
/mnt/cdrom(3)进入安装包所在目录
/mnt/cdrom/AppStream/Packages(4)执行安装命令:[root@MysqlserverPackages]#rpm-ivhtelnet-0.17-73.el8.x86_64.rpm警告:telnet-0.17-73.el8.x86_64.rpm:头V3RSA/SHA256Signature,密钥IDfd431d51:NOKEYVerifying...#################################[100%]准备中...#################################[100%]正在升级/安装...1:telnet-1:0.17-73.el8#################################[100%]课堂讨论:rpm命令安装Mysql客户端包mysql-common-8.0.17-3.module+el8.0.0+3898+e09bb8de.x86_64.rpm。3)RPM软件包的依赖性如果采用最基础的方式安装Linux系统,则gcc这个软件是没有安装的,需要自己手工安装。当使用rpm命令安装gcc软件的RPM包时,就会发生依赖性错误。以下是用rpm命令安装gcc时命令执行后出现的提示信息:[root@MysqlserverPackages]#rpm-ivhgcc-8.2.1-3.5.el8.x86_64.rpm警告:gcc-8.2.1-3.5.el8.x86_64.rpm:头V3RSA/SHA256Signature,密钥IDfd431d51:NOKEY错误:依赖检测失败: cpp=8.2.1-3.5.el8被gcc-8.2.1-3.5.el8.x86_64需要 glibc-devel>=2.2.90-12被gcc-8.2.1-3.5.el8.x86_64需要 libisl.so.15()(64bit)被gcc-8.2.1-3.5.el8.x86_64需要报错信息提示我们,如果要安装gcc,需要先安装cpp、glibc-devel和libisl三个软件,这体现的就是RPM包的依赖性。在安装RPM包时,如果不清楚该软件包是否具有依赖性,可以用test选项测试一下该软件是否可以被安装到当前Linux环境,找出该软件的依赖性。[root@MysqlserverPackages]#rpm-ivhvsftpd-3.0.3-28.el8.x86_64.rpm--test警告:vsftpd-3.0.3-28.el8.x86_64.rpm:头V3RSA/SHA256Signature,密钥IDfd431d51:NOKEYVerifying...(1#################################[100%]准备中...(100%#################################[100%]以上命令的执行结果表示vsftpd软件包不存在依赖性软件,它可以安装到当前Linux环境。课堂选人:用什么选项可以测试某软件是否可以被安装到当前Linux环境并找出该软件的依赖性。4)RPM包的卸载RPM软件包的卸载使用如下命令即可:rpm-e包名-e选项表示卸载。例4-2:卸载telnet软件包。[root@MysqlserverPackages]#rpm-etelnet5)RPM包的升级与更新RPM包的升级与更新用-Uvh或-Fvh选项。命令格式如下:rpm-Uvh包全名或rpm-Fvh包全名-U选项的含义是:如果该软件没安装过则直接安装;若已安装则升级至最新版本。-F选项的含义是:如果该软件没有安装,则不会安装,必须安装有较低版本才能升级。课堂讨论:卸载mysql-common包;升级并更新mysql-common包,如果该软件没有安装,则直接安装。3、查询软件包rpm命令还可用来对RPM软件包做查询操作,具体包括:(1)查询软件包是否已安装;(2)查询系统中所有已安装的软件包;(3)查看软件包的详细信息;(4)查询软件包的文件列表;(5)查询某系统文件具体属于哪个RPM包。1)查询软件包是否已安装用rpm命令查询软件包是否安装的命令格式为:rpm-q包名-q选项表示查询。例4-3:查看Linux系统中是否安装tree。[root@Mysqlserver~]#rpm-qtreetree-1.7.0-15.el8.x86_64命令的输出结果表明系统里已经安装tree软件包。例4-4:查看Linux系统中是否安装pam-devel。[root@Mysqlserver~]#rpm-qpam-devel未安装软件包pam-devel命令的输出结果表明系统里未安装软件包pam-devel。注意这里使用的是包名,而不是包全名。因为已安装的软件包只需给出包名,系统就可以成功识别(使用包全名反而无法识别)。2)查询系统中所有安装的软件包使用rpm命令查询Linux系统中所有已安装软件包的命令为:rpm-qa例4-5:查出一共安装了多少个RPM软件包[root@Mysqlserver~]#rpm-qa|wc-l
1319还可以使用管道符查找出需要的内容,比如,要查找Linux系统中所有已安装的软件包中包名包含tree的软件包,可以使用以下命令:[root@Mysqlserver~]#rpm-qa|greptreeostree-libs-2018.8-2.el8.x86_64ostree-2018.8-2.el8.x86_64rpm-ostree-libs-2018.8-2.el8.x86_64tree-1.7.0-15.el8.x86_64拓展:wc文件名//显示一个文件的行数
,字数,字符数3)查询软件包的详细信息通过rpm命令可以查询软件包的详细信息,命令格式如下:rpm-qi包名-i选项表示查询软件包信息。例4-6:想查看tree包的详细信息,可以使用如下命令:[root@Mysqlserver~]#rpm-qitreeName:treeVersion:1.7.0Release:15.el8Architecture:x86_64InstallDate:2021年08月18日星期三11时58分40秒Group:UnspecifiedSize:111611License:GPLv2+Signature:RSA/SHA256,2018年11月07日星期三12时20分51秒,KeyID199e2f91fd431d51SourceRPM:tree-1.7.0-15.el8.src.rpmBuildDate:2018年11月07日星期三11时49分35秒BuildHost:Relocations:(notrelocatable)Packager:RedHat,Inc.</bugzilla>Vendor:RedHat,Inc.URL:/users/ice/tree/Summary:FilesystemtreeviewerDescription:Thetreeutilityrecursivelydisplaysthecontentsofdirectoriesinatree-likeformat.TreeisbasicallyaUNIXportoftheDOStreeutility.结果中依次包含的是以下信息:包名、版本、发行版本、操作硬件平台、安装日期和时间、组、软件包大小、许可协议、数字签名、源RPM包文件名、建立日期和主机、网址、软件包说明、描述。以上示例是查询已安装软件包的详细信息,还可以查询未安装软件包的详细信息,未安装的软件包需使用“绝对路径+包全名”的方式才能确定软件包。以下命令可以查询未安装的gcc软件包的详细信息:[root@MysqlserverPackages]#rpm-qigcc-8.2.1-3.5.el8.x86_64.rpm4)查询软件包的文件列表使用rpm命令可以查询到已安装软件包中包含的所有文件及各自安装路径,命令格式为:rpm-ql包名-l选项表示列出软件包所有文件的安装目录。例4-7:查看tree软件包中所有文件以及各自的安装位置,可使用如下命令:[root@Mysqlserver~]#rpm-qltree/usr/bin/tree/usr/lib/.build-id/usr/lib/.build-id/50/usr/lib/.build-id/50/ae300877a586b9e7b87f19dfe58d303a887fb9/usr/share/doc/tree/usr/share/doc/tree/LICENSE/usr/share/doc/tree/README/usr/share/man/man1/tree.1.gz5)查询系统文件属于哪个RPM包rpm命令还支持反向查询,即查询某系统文件所属哪个RPM软件包。其命令格式如下:rpm-qf系统文件名-f选项是查询系统文件所属哪个软件包。例4-8:在/etc目录下有很多配置文件,我们可以查询某个配置文件是属哪个软件包的,比如查询passwd配置文件,可使用如下命令:[root@Mysqlserver~]#rpm-qf/etc/passwdsetup-2.12.2-1.el8.noarch例4-9:查询/etc目录下的terminfo是属哪个软件包的。[root@Mysqlserver~]#rpm-qf/etc/terminfoncurses-base-6.1-7.20180224.el8.noarch例4-10:查询本机系统中的mount命令是由哪个软件包安装提供的[root@Mysqlserver~]#rpm-qf/bin/mountutil-Linux-2.32.1-8.el8.x86_64自己创建的文件不属于任何软件包,比如,自己创建一个文件file1,然后查询它属于哪个软件包,会出来以下结果:[root@Mysqlserver~]#touchfile1[root@Mysqlserver~]#rpm-qffile1文件/root/file1不属于任何软件包6)查询软件包的依赖关系使用rpm命令安装RPM包时,需要考虑与其他RPM包的依赖关系。查询软件包的依赖关系的命令格式为:rpm-qR包名-R(大写)选项是查询软件包的依赖性。要查询tree软件包的依赖性,可执行以下命令:[root@Mysqlserver~]#rpm-qRtree若要实现查找未安装的软件包的依赖性,则软件包需使用“绝对路径+包全名”的方式才能确定软件包。抢答:1.查询系统中所有安装的软件包。2.查询tree软件包中所有文件以及各自的安装位置,可以使用什么命令?3.查询/etc/group文件所属的软件包。4.2.3yum软件包管理工具yum,全称“YellowdogUpdater,Modified”,是一个专门为了解决包的依赖关系而存在的软件包管理器。yum是改进型的RPM软件管理器,它很好的解决了RPM所面临的软件包依赖问题。yum在服务器端存有所有的RPM包,并将各个包之间的依赖关系记录在文件中,当管理员使用yum安装RPM包时,yum会先从服务器端下载包的依赖性文件,通过分析此文件,从服务器端一次性下载所有相关的RPM包并进行安装。使用yum安装软件包之前,需指定好yum下载RPM包的位置,此位置称为yum源。换句话说,yum源指的就是软件安装包的来源。yum源既可以使用网络yum源,也可以将本地光盘作为yum源。搭建yum源需要先配置yum源配置文件,该文件是一个后缀为.repo的文件,配置文件存放位置在/etc/yum.repos.d。下面介绍一下本地yum源的搭建方式。1、配置yum源1)搭建本地yum源Linux系统iso映像文件中就含有常用的RPM包,在iso镜像文件的AppStream/Packages子目录和BaseOS/Packages子目录下含有几乎所有常用的RPM包,因此,可以使用Linux系统iso镜像文件来搭建本地yum源。例4-11:使用Linux系统安装镜像来制作本地yum源。操作步骤:(1)挂载Linux系统iso映像文件;把iso映像文件连接到虚拟机,则可以使用以下命令挂载Linux系统iso映像文件。[root@Mysqlserver~]#mount/dev/cdrom/mediamount:/media:WARNING:devicewrite-protected,mountedread-only.(2)配置yum源配置文件;在/etc/yum.repos.d目录新建一个yum源配置文件rhel.repo[root@Mysqlserver~]#cd/etc/yum.repos.d/[root@Mysqlserveryum.repos.d]#vimrhel.repo配置文件rhel.repo的内容如下:[name-OS]name=iso-BaseOSbaseurl=file:///media/BaseOSenabled=1gpgcheck=0[name-APP]name=iso-Appbaseurl=file:///media/AppStreamenabled=1gpgcheck=0[name-OS]和[name-APP]是yum源容器的名称,名称放在[]里,可以根据需要随意取,但是不能存在两个相同的yum源容器名称,否则yum会不知道去哪个容器找相关软件。“name=”后面是yum源的描述,可以随意取。“baseurl=”指定yum源服务器的地址。这里分别指定的就是yum源系统软件的位置/media/BaseOS和应用软件的位置/media/AppStream。“enabled=”指定此yum源容器是否生效。1表示生效,0表示不生效,省略则默认生效。“gpgcheck=”指定RPM的数字证书是否生效。1表示生效,0表示不生效。2、yum命令的使用1)安装软件包使用yum命令安装软件包的命令基本格式为:yum-yinstall包名
install选项表示安装软件包。-y选项表示安装时自动回答yes。如果不加-y,安装时需要手工回答yes。例4-12:用yum命令安装gcc软件包。前面我们已经搭建好了yum源,下面直接用yum命令进行安装即可:提示:在安装之前,1.可以先测试搭建的仓库:yumcleanall清除yum原有缓存,yumrepolist
列出仓库信息。2.还可以查看仓库中的第三方软件,如
yumlistgcc,该软件在仓库中,可以用yum命令安装。[root@Mysqlserveryum.repos.d]#yuminstallgccUpdatingSubscriptionManagementrepositories.UnabletoreadconsumeridentityThissystemisnotregisteredtoRedHatSubscriptionManagement.Youcanusesubscription-managertoregister.iso-App2.8MB/s|5.3MB00:01iso-BaseOS24MB/s|2.2MB00:00上次元数据过期检查:0:00:01前,执行于2021年08月24日星期二13时03分22秒。依赖关系解决。......已安装:gcc-8.2.1-3.5.el8.x86_64cpp-8.2.1-3.5.el8.x86_64isl-0.16.1-6.el8.x86_64glibc-devel-2.28-42.el8.x86_64glibc-headers-2.28-42.el8.x86_64kernel-headers-4.18.0-80.el8.x86_64libxcrypt-devel-4.1.1-4.el8.x86_64完毕!gcc是C语言的编译器,该软件包涉及到的依赖包较多,建议使用yum命令安装。课堂讨论:用yum安装php2)查询软件包使用yum命令对软件包执行查询操作,常用的有以下几种查询:(1)yumlist:查询所有已安装和可安装的软件包。(2)yumlist包名:查询指定软件包的安装情况。(3)yumlistupdates:查询可进行升级的软件包。(4)yumsearch关键字:从yum源服务器上查找与关键字相关的所有软件包。(5)yuminfo包名:查询指定软件包的详细信息。例4-13:用yum命令查询tree包的详细信息。[root@Mysqlserver~]#yuminfotreeUpdatingSubscriptionManagementrepositories.UnabletoreadconsumeridentityThissystemisnotregisteredtoRedHatSubscriptionManagement.Youcanusesubscription-managertoregister.上次元数据过期检查:0:03:11前,执行于2021年08月25日星期三03时50分20秒。已安装的软件包名称:tree版本:1.7.0发布:15.el8架构:x86_64大小:109k源:tree-1.7.0-15.el8.src.rpm仓库:@System来自仓库:anaconda小结:FilesystemtreeviewerURL:/users/ice/tree/协议:GPLv2+描述:Thetreeutilityrecursivelydisplaysthecontentsofdirectories:inatree-likeformat.TreeisbasicallyaUNIXportoftheDOS:treeutility.例4-14:用yum命令查询gcc包的安装情况。[root@Mysqlserver~]#yumlistgccUpdatingSubscriptionManagementrepositories.UnabletoreadconsumeridentityThissystemisnotregisteredtoRedHatSubscriptionManagement.Youcanusesubscription-managertoregister.上次元数据过期检查:0:12:11前,执行于2021年08月25日星期三03时50分20秒。已安装的软件包gcc.x86_648.2.1-3.5.el83)升级软件包使用yum命令升级软件包的命令基本格式为:yum-yupdate包名4)卸载软件包使用yum命令卸载软件包的命令基本格式为:yumremove包名课堂讨论:用yum卸载php例4-15:用yum命令卸载已经安装的gcc包。[root@Mysqlserver~]#yumremovegccUpdatingSubscriptionManagementrepositories.UnabletoreadconsumeridentityThissystemisnotregisteredtoRedHatSubscriptionManagement.Youcanusesubscription-managertoregister.依赖关系解决。......已移除:gcc-8.2.1-3.5.el8.x86_64cpp-8.2.1-3.5.el8.x86_64glibc-devel-2.28-42.el8.x86_64glibc-headers-2.28-42.el8.x86_64isl-0.16.1-6.el8.x86_64kernel-headers-4.18.0-80.el8.x86_64libxcrypt-devel-4.1.1-4.el8.x86_64完毕!课堂讨论:查找含python关键字的安装包,然后自动安装python2。4.2.4打包、压缩和解压缩工具在Linux系统中,对文件或目录进行打包、压缩和解压缩,是每个初学者需要掌握的基本技能之一。打包指的是将多个文件和目录归档存储在一个大文件中;而压缩则指的是利用算法对文件进行处理,将一个大文件变成一个占用内存小点的文件,从而达到缩减占用磁盘空间的目的。以下是Linux系统常见的压缩文件的后缀。.Zcompress程序压缩的文件.bz2bzip2程序压缩的文件.gzgzip程序压缩的文件.tartar程序打包的数据,没有压缩.tar.gz或tgztar程序打包并经过gzip程序压缩的文件.tar.bz2tar程序打包并经过bzip2程序压缩的文件.zip使用zip压缩.rar使用rar压缩下面介绍几个常用的打包、压缩和解压缩命令。1、gzip命令gzip是Linux系统中经常用来对文件进行压缩和解压缩的命令。通过此命令压缩得到的新文件,其后缀通常标记为“.gz”。命令格式:gzip[选项]源文件选项说明-c压缩时保留原始文件,若选项后没有指定生成的压缩文件名,则压缩时数据输出到标准输出中-k压缩时保留原始文件-d选项后的源文件应为标记为.gz后缀的压缩文件-v显示被压缩文件的压缩比或解压时的信息-r递归压缩指定目录下以及子目录下的所有文件-数字压缩等级,-1压缩等级最低,压缩比最差;-9压缩比最高我们来看一下gzip命令的用法:例4-16:假设建有目录/project,已经备份了一个/etc/passwd文件到/project,要求对/project/passwd文件进行压缩,可以执行以下命令:[root@Mysqlserverproject]#gzippasswd可以看到,命令执行后,在/project中生成了压缩文件passwd.gz,源文件passwd没有保留:-rw-r--r--.1rootroot10028月1812:04passwd.gz例4-17:对上例生成的压缩文件/project/passwd.gz进行解压缩,可以执行以下命令:[root@Mysqlserverproject]#gzip-dpasswd.gz命令执行后可以看到/project中没有了压缩文件passwd.gz,又出现了源文件passwd。-rw-r--r--.1rootroot24818月1812:04passwd如果在压缩时需要保留源文件,可以用-c选项。还可以对源文件进行指定等级的压缩。以下两条命令分别是对/project/passwd文件进行1等级的压缩和9等级的压缩,且压缩时保留源文件,压缩时数据分别输出到passwd1.gz和passwd2.gz文件:[root@Mysqlserverproject]#gzip-1-cpasswd>passwd1.gz#进行1等级压缩,生成的压缩文件为passwd1.gz,且保留源文件[root@Mysqlserverproject]#gzip-9-cpasswd>passwd2.gz#进行9等级压缩,生成的压缩文件为passwd2.gz,且保留源文件压缩等级不同,产生的压缩文件的大小不同,命令执行后的结果如下:-rw-r--r--.1rootroot24818月1812:04passwd-rw-r--r--.1rootroot10558月2112:19passwd1.gz-rw-r--r--.1rootroot10038月2112:19passwd2.gz使用-v选项可以在压缩文件时显示被压缩文件的压缩比或解压时的信息,比如:[root@Mysqlserverproject]#gzip-vpasswdpasswd: 60.6%--replacedwithpasswd.gzgzip命令只能用来压缩文件,不能压缩目录,即便指定了目录,也只能压缩该目录及子目录下的所有文件,且此时要用到-r选项,这里就不再举例了,读者可以自己试操作一下。抢答gzip命令是Linux系统中经常用来对文件进行压缩和解压缩的命令,其命令格式为:gzip[选项]源文件,压缩时保留原始文件,用什么选项?讨论:1.将/etc/group文件复制到/project目录,并对group文件进行压缩,并解压缩(用gzip)。2.对group文件压缩,要求保留源文件,并进行9等级的压缩,压缩时数据输出到group9.gz。2、bzip2命令bzip2命令与gzip命令类似,用于对文件进行压缩(或解压缩),压缩后会生成一个以“.bz2”为后缀的压缩文件。命令格式:bzip2[选项]源文件选项说明-k压缩时保留原始文件-d解压缩,选项后的源文件应为标记为.bz2后缀的压缩文件-v显示被压缩文件的压缩比或解压时的信息-数字-1压缩等级最低,压缩比最差;-9压缩比最高例4-18:要求对/project/passwd文件进行压缩,生成一个以“.bz2”为后缀的压缩文件,可以执行以下命令:[root@Mysqlserverproject]#bzip2passwd命令执行后,在/project中生成了压缩文件passwd.bz2,源文件passwd没有保留:-rw-r--r--.1rootroot10278月1812:04passwd.bz2解压缩passwd.bz2文件的命令如下:[root@Mysqlserverproject]#bzip2-dpasswd.bz2如果压缩/project/passwd文件时想保留源文件,命令如下:[root@Mysqlserverproject]#bzip2-kpasswdbzip2命令没有“-r”选项,不支持压缩目录下的文件。3、tar命令tar命令是用于对文件进行打包或解包的。文件打包是把一系列的文件归档到一个大文件中。文件解包是从归档文件中还原源文件,解包是打包的反过程。命令格式:tar[选项][-f包文件名]源文件或目录选项说明-c对文件进行打包,生成包文件-f指定包文件名称-v打包或解包时列出打包或解包的详细过程-z以gzip格式压缩或解压缩文件-j以bzip2格式压缩或解压缩文件-x对文件进行解包-t不解开打包文件,只是査看包中有哪些文件--excludefile打包时不把file文件打包进去1)对文件进行打包用tar命令打包生成的包文件称为tar包,tar包文件通常会用“.tar”作为文件的后缀名,下面我们来看两个对文件进行打包的例子。例4-19:把/project目录下的file1文件打包为file1.tar。[root@Mysqlserverproject]tar-cvffile1.tarfile1例4-20:把/project目录下的file1文件和test目录打包为file1-test.tar。[root@Mysqlserverproject]tar-cvffile1-test.tarfile1test
以上两个例子用tar命令加上-cvf选项对文件进行打包操作,生成的包文件是无压缩的。-cvf选项组合中,其中,v选项可以不用,如果不用v选项的话,在打包过程中不会显示打包的过程信息;f选项要放在-cvf选项组合的最后,f选项后跟生成的包文件名。我们在对文件进行打包的时候,如果希望生成的是压缩包文件,则还要用上z或j选项,z选项用来生成“.gz”格式的压缩包,j选项用来生成“.bz2”格式的压缩包。例4-21:把file1文件和test目录打包并压缩,生成压缩包。[root@Mysqlserverproject]#tar-zcvffile1-test.tar.gzfile1test#产生file1-test.tar.gz压缩包(“.gz”格式的)[root@Mysqlserverproject]#tar-jcvffile1-test.tar.bz2file1test#产生file1-test.tar.bz2压缩包(“.bz2”格式的)包文件生成后,要查看包文件中包含哪些文件,可以用t选项。例4-22:分别查看上例生成的file1-test.tar.gz和file1-test.tar.bz2压缩包中包含哪些文件。[root@Mysqlserverproject]#tar-tffile1-test.tar.gz#查看file1-test.tar.gz压缩包[root@Mysqlserverproject]#tar-tffile1-test.tar.bz2#查看file1-test.tar.bz2压缩包选人:用bzip2命令压缩后会生成一个以什么为后缀的压缩文件。讨论:1.将/project目录下的text文件和test目录打包为text-test.tar。2.把text文件和test目录打包并压缩,生成.gz格式的压缩包text-test.tar.gz,并查看此压缩包中包含哪些文件。3.把text文件和test目录打包并压缩,生成.bz2格式的压缩包text-test.tar.bz2,并查看此压缩包中包含哪些文件。2)解开包文件解包是把包文件解开,以恢复源文件。既可以对不含压缩的包文件进行解包操作,也可以对压缩包文件进行解压缩包操作。比如,要把例4-19生成的包文件file1.tar进行解包操作,则命令如下:[root@Mysqlserverproject]#tar-xvffile1.tar如果要把例4-22生成的压缩包文件file1-test.tar.gz和file1-test.tar.bz2解压缩包,则命令如下:[root@Mysqlserverproject]#tar-xvffile1-test.tar.gz#对file1-test.tar.gz解压缩包操作[root@Mysqlserverproject]#tar-xvffile1-test.tar.bz2#对file1-test.tar.bz2解压缩包操作讨论:1.把包文件text-test.tar进行解包操作。2.把前面生成的压缩包text-test.tar.gz和text-text.tar.bz2进行解压缩包。小结:可以看到,如果是对不含压缩的包和压缩包文件进行解包,用-xvf选项组合即可,并且原压缩包保留。如果是对压缩包进行解压缩包,也可以根据压缩包的格式再加上z或j选项,比如,要解压缩“.gz”格式的压缩包,可用-zxvf选项组合,如果是解压缩“.bz2”格式的压缩包,可用-jxvf选项组合。同样,在这些选项组合中,v选项可以省略,如果不用v选项的话,在打包过程中不会显示打包的过程信息;f选项要放在选项组合的最后,f选项后跟包文件名。4.3任务实施4.3.1任务实施步骤1检查Mysql数据库服务器所依赖的操作系统程序包。根据Oracle官方文档《Mysql8.0ReferenceManualIncludingMysqlNDBCluster8.0》第109页,Mysql客户端启动时需要文件/lib64/libtinfo.so.5,需要操作系统程序包ncurses的安装。OracleLinux8/RedHat8(EL8:):Theseplatformsbydefaultdonotinstallthefile/lib64/libtinfo.so.5,whichisrequiedbytheMysqlclientbin/MysqlforpackagesMysql-VERSION-ehl7-x86_64.tar.gzandMysql-VERSION-Linux-glibc2.12-x85_64.tar.xz.toworkaroundthisissue,installthencurses-compat-libspackage.[root@Mysqlserver/]#rpm-qa|greplibaiolibaio-0.3.110-12.el8.x86_64[root@Mysqlserver/]#cd/lib64[root@Mysqlserver/lib64]#ls–l|greplibtinfolrwxrwxrwx.1rootroot15Jan162019libtinfo.so.6->libtinfo.so.6.1-rwxr-xr-x.1rootroot208616Jan162019libtinfo.so.6.14.3.2任务实施步骤2安装Mysql数据库服务器所依赖的操作系统程序包,安装设置Mysql服务器。1、解压软件:将下载好的软件压缩包进行解压。[root@Mysqlserveropt]#pwd/opt[root@Mysqlserveropt]#ls–l-rw-r—r--.1rootroot896219776Jun1811:26Mysql-8.0.25-Linux-qlibc2.12-x86_64.tar.xz[root@Mysqlserveropt]#tarxvf/opt/Mysql-8.0.25-Linux-qlibc2.12-x86_64.tar.xz-C/usr/local
2、链接目录软件解压后生成的目录名比较长,不方便使用,可以将该目录进行链接,使用较短的目录名指向它,链接后使用目录/usr/local/Mysql将会指向/usr/local/Mysql-8.0.25-Linux-glibc2.12-x86_64。[root@Mysqlserveropt]#cd/usr/local[root@Mysqlserverlocal]#ln–s/usr/local/Mysql-8.0.25-Linux-glibc2.12-x86_64Mysql创建数据库所需的其他目录和指定目录属性。[root@Mysqlserverlocal]#cd/usr/local/Mysql[root@MysqlserverMysql]#mkdirMysql-files[root@MysqlserverMysql]#chownMysql:MysqlMysql-files[root@MysqlserverMysql]#chmod750Mysql-files3、安装系统程序包1)将操作系统安装包ISO文件挂载虚拟机虚拟光盘,重新装载cdrom设备。[root@Mysqlserver/]#umount/dev/sr0[root@Mysqlserver/]#mount-tiso9660/dev/sr0/mnt2)编辑文件/etc/yum.repos.d/redhat.repo。[root@Mysqlserver/]#vi/etc/yum.repos.d/redhat.repo/etc/yum.repos.d/redhat.repo文件的内容如下:[server]name=serverbaseurl=file:///mntenable=1gpgcheck=03)使用yum安装程序包ncurses。在/lib64目录上只能找到libtinfo.so6.1文件,找不到文件libinfo.so5,检查/lib64/libtinfo.so.6.1属于哪个程序包的文件。[root@Mysqlserver/]#rpm-qf/lib64/libtinfo.so.6.1ncurses-libs-6.1-7.20180223.el8.x86_64可以看到libtinfo.so.6文件属于程序包ncurses,用yum安装程序包ncurses。[root@Mysqlserver/]#yuminstallncurses[root@Mysqlserver/]#rpm-qa|grepncursesncurses-base-6.1-7.20180223.el8.noarchncurses-libs-6.1-7.20180223.el8.x86_64[root@Mysqlserver/]#cd/lib64[root@Mysqlserverlib64]#ls-l|greplibtinfolrwxrwxrwx.1rootroot15Jan162019libtinfo.so.6libtinfo.so.6.1-rwxrwxrwx.1rootroot208616Jan162019libtinfo.so.6.14、初始化数据库。指定用户为Mysql,数据存放目录为/Mysqldata。[root@Mysqlserver/]#mysqld--initialize--user=mysql--basedir=/usr/local/mysql--datadir=/Mysqldata
[root@mysqlsserveryum.repos.d]#mysqld--initialize--user=mysql--basedir=/usr/local/mysql--datadir=/mysqldata2021-08-11T08:40:42.695854z0[system][MY-013169][server]/usr/local/mysql-8.0.25-linux-gl1bc2.12-x86_64/bin/mysqla(mysqld8.0.25)initializingofserverinprogressasprocess34712021-08-11T08:40:42.706257z1[system][My-013576][InnoDB]InnoDBinitializationhasstarted.2021-08-11T08:40:43.584656z1[system][My-013577][InnoDB]InnoDBinitializationhasended.2021-08-11T08:40:44.450389z6[Note][My-010454][Server]Atemporarypasswordisgeneratedforroot@loocalhost:pp9tx!Y?Ied<[root@mysqlsserveryum.repos.d]连接数据库报错,需要libtinfo.so.5,但系统的文件版本为libtinfo.so.6.1,因此将新版本文件进行链接。[root@Mysqlserver/]#mysql-uroot-p[root@Mysqlserveryum.repos.d]#mysql-uroot-pMysql:errorwhileloadingsharedlibraries:libtinfo.so.5:cannotopensharedobjectfile:Nosuchfileordirectory[root@Mysqlserveryum.repos.d]#ln-s/usr/lib64/libtinfo.so.6.1/usr/lib64/libtinfo.so.5[root@Mysqlserver/]#ln-s/usr/lib64/libtinfo.so.6.1/usr/lib64/libtinfo.so.55、启动数据库,指定用户、基本目录和数据目录[root@Mysqlserver/]#Mysqld_safe--user=Mysql--basedir=/usr/local/Mysql--datadir=Mysqldata&6、登录数据库和修改密码[root@Mysqlserver/]#Mysql-root-pMysql>alteruser‘root’@‘localhost’IDENTIFIEDBY‘sqlserver’;Mysql>flushprivileges;7、查看数据库Mysql>useMysqlMysql>showtables;8、关闭数据库[root@Mysqlserver/]#Mysqladmin-uroot-pshutdown9、编辑数据库配置文件,指定用户,端口,基本目录,数据目录[root@Mysqlserver/]#vi/etc/f/etc/f文件的内容如下:[Mysqld]user=Mysqlport=3306basedir=/usr/local/Mysqldatadir=/Mysqldata[client]port=33064.4任务思考对于后缀名为“.tar.gz”的压缩包文件和后缀名为“.tar.bz2”的压缩包文件,在进行解压缩时,既可以采用一步解压缩的方法,也可以采用分步解压缩(先解压,再解包)的方法,试分别写出对当前目录下的压缩包文件
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 年产9000吨有机硅泡沫材料生产项目可行性研究报告
- 天然胶粘剂项目可行性研究报告
- 电站体系运营方案
- 既有已运营线路保障方案
- 食堂运营管理评价方案
- 高尔夫教练组运营方案
- 钢琴房运营营销方案
- 天猫超市基础运营方案
- 工艺品直播运营方案
- 系统运营维护解决方案
- 校家社协同育人家长培训
- 急诊科运用PDCA循环降低急诊危重患者院内转运风险品管圈QCC专案结题
- 学位英语4000词(开放大学)
- GB/T 9799-2024金属及其他无机覆盖层钢铁上经过处理的锌电镀层
- 中医是怎样治疗动脉硬化的
- 产品漏装改善报告
- 悬挑式卸料平台监理实施细则
- 铸件(原材料)材质报告
- 提货申请单表
- 脑与认知科学概论PPT(第2版)完整全套教学课件
- 【初中化学】中国化学家-李寿恒
评论
0/150
提交评论