Linux网络操作系统项目化教程 课件 项目5 管理软件包_第1页
Linux网络操作系统项目化教程 课件 项目5 管理软件包_第2页
Linux网络操作系统项目化教程 课件 项目5 管理软件包_第3页
Linux网络操作系统项目化教程 课件 项目5 管理软件包_第4页
Linux网络操作系统项目化教程 课件 项目5 管理软件包_第5页
已阅读5页,还剩86页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

项目5管理软件包《Linux网络操作系统项目化教程》学习目标/Target了解RPM软件包管理工具,能够说出RPM管理工具如何管理RPM软件包掌握rpm命令的使用,能够熟练使用rpm命令完成软件安装、查询、升级、卸载了解YUM/DNF管理工具,能够说出YUM/DNF管理工具的管理机制掌握dnf命令的使用,能够熟练使用dnf命令实现软件的安装、查询、升级与卸载学习目标/Target熟悉源码包管理,能够说出源码编译过程掌握make工具,能够使用make工具完成软件的安装掌握dnf命令的使用,能够熟练使用dnf命令完成MySQL8的安装掌握软件源码安装方式,能够使用源码方式完成nginx1.18的安装项目导入销售部要在部门内部搭建一个小型网站,需要技术支持,上级领导派安安带上邦小苑去帮助销售部同事完成网站的搭建。安安根据销售部的需求,设计了小型网站的架构图,具体如下:邦小苑需要做的任务有如下两个。任务5-1:安装MySQL8。任务5-2:安装nginx

1.18。目录/Contents010203RPM概述rpm命令管理软件包YUM与DNF概述04dnf命令管理软件包目录/Contents050607源码包管理任务5-1安装MySQL8任务5-2安装nginx1.18RPM概述5.15.1RPM概述

先定一个小目标!了解RPM软件包管理工具,能够说出RPM管理工具如何管理RPM软件包5.1RPM概述RPM(RedHatPackageManager)是由RedHat公司开发的一款软件包管理工具,因遵循GPL协议且功能强大而广受欢迎,很多Linux发行版(如CentOS、Fedora、SUSE等)都使用RPM工具管理软件包。5.1RPM概述二进制包源码包封装的是编译后生成的可执行文件,类似于Windows操作系统下的.exe文件,此种软件包可使用rpm命令直接安装。封装的是源代码,在安装前需先安装源码包以生成源码,再对源码编译生成后缀为.rpm的RPM包,之后才能安装软件本身。RPM的软件包分为两种:二进制包与源码包。5.1RPM概述name表示软件包名。version表示软件版本号,版本号通常遵循“主版本号.次版本号.修正号”格式。arch表示软件包的适用平台,RPM包支持的平台有i386、i586、i686、sparc、aplha。.rpm与.src.rpm是RPM包的后缀,后缀.rpm表示二进制包,后缀.src.rpm表示源码包。name-version-arch.rpmname-version-arch.src.rpmRPM的包常用的命名格式如下:acl-2.2.39-1.1.i386.rpmjdk-8u144-linux-x64.src.rpm示例示例5.1RPM概述除上述内容外,用户也可能在RPM包名中看到如下信息。el*:表示软件包的发行商版本,如el5表示软件包在RHEL5.x/CentOS5.x下使用。devel:表示当前软件包是一个开发包。noarch:表示当前软件包适用于任何平台。manual:表示当前软件是手册文档。mysql-community-release-el7-5.noarch.rpmepel-release-latest-7.noarch.rpm示例rpm命令管理软件包5.25.2.1安装软件

先定一个小目标!掌握rpm命令的使用,能够熟练使用rpm命令安装软件rpm命令安装RPM软件包的基本格式如下:5.2.1安装软件rpm命令常用安装选项选项含义-i安装指定的一个或多个软件包-v显示安装过程-h以#号显示安装进度rpm选项RPM软件包格式5.2.1安装软件案例5-1在CentOSStream9操作系统中安装JDK软件包。[root@localhost~]#rpm-ivhjdk-8u151-linux-x64.rpmVerifying...#########################[100%]准备中...#########################[100%]正在升级/安装...1:jdk1.8-2000:1.8.0_151-fcs###################[100%]UnpackingJARfiles... tools.jar... ... localedata.jar...5.2.1安装软件rz命令与sz命令在下载JDK安装包时,可以从CentOSStream9的浏览器中下载,也可以从Windows桌面上传到CentOSStream9操作系统。在Windows系统和Linux系统之间传递文件,除了远程工具之外,Linux系统还提供了两个命令rz和sz来实现此功能。(1)rz命令用于将文件上传到Linux服务器,在运行rz命令时,会弹出一个文件选择窗口用于选择要上传的文件。(2)sz命令用于将Linux服务器上的文件下载到本地。5.2.1安装软件CentOS

Stream

9如果没有安装rz命令和sz命令,使用之前,需要先安装。rz命令与sz命令root@localhost~]#dnfinstalllrzsz-yrz命令与sz命令只能在Xshell远程工具中使用,在虚拟机终端中无法使用。5.2.2查询软件

先定一个小目标!掌握rpm命令的使用,能够熟练使用rpm命令查询软件信息5.2.2查询软件rpm命令查询RPM软件包的基本语句格式如下:格式rpm选项RPM软件包5.2.2查询软件rpm命令常用的查询选项选项含义-q查询软件包信息-a查询已安装的包-c显示软件包的配置文件列表(后面是已经安装的软件名称)-d显示软件包的文本文件列表(后面是已经安装的软件名称)-p查询软件包文件,通常和其他选项组合使用-g查询所属组的软件包-f查询文件属于哪个软件包-l列出已安装的软件包内所有文件(后面是已经安装的软件名称)-s列出软件包内所有文件状态(后面是已经安装的软件名称)5.2.2查询软件案例5-2查询jdk-8u151-linux-x64.rpm软件安装包中的文件。[root@localhost~]#rpm-qpjdk-8u151-linux-x64.rpmjdk1.8-1.8.0_151-fcs.x86_64如果包名太长,可以使用TAB键补全包名jdk-8u151-linux-x64.rpm软件包中的文件为jdk1.8-1.8.0_151-fcs.x86_645.2.2查询软件案例5-3查询jdk是否已经安装。[root@localhost~]#rpm-qa|grepjdkjdk1.8-1.8.0_151-fcs.x86_645.2.2查询软件案例5-4查看已经安装的jdk的配置文件。[root@localhost~]#rpm-qcjdk1.8/usr/java/jdk1.8.0_151/.java/.systemPrefs/.system.lock/usr/java/jdk1.8.0_151/.java/.systemPrefs/.systemRootModFile┄/usr/java/jdk1.8.0_151/jre/lib/rt.pack/usr/java/jdk1.8.0_151/lib/tools.pack5.2.3升级软件

先定一个小目标!掌握rpm命令的使用,能够熟练使用rpm命令升级软件rpm命令升级RPM软件的基本格式如下:5.2.3升级软件rpm命令常用的升级选项选项

义-U升级指定软件包-v显示升级过程-h以#号显示升级进度rpm选项RPM软件包格式若要升级软件,需要先下载一个软件对应的高版本软件包,使用rpm命令搭配-U选项(-U通常与-vh组合使用)安装高版本的软件包。在安装过程中,RPM会先将旧版本的软件从系统中移除,再安装新版本的软件,以实现版本更新。5.2.3升级软件5.2.3升级软件案例5-5下载更高版本的jdk-8u261-linux-x64.rpm软件包,更新jdk。[root@localhost~]#rpm-Uvhjdk-8u261-linux-x64.rpmVerifying...###########################[100%]准备中...###########################[100%]正在升级/安装...1:jdk1.8-2000:1.8.0_261-fcs########[50%]UnpackingJARfiles... ...正在清理/删除...2:jdk1.8-2000:1.8.0_151-fcs######################[100%][root@localhost~]#rpm-qa|grepjdk #查看安装的jdkjdk1.8-1.8.0_261-fcs.x86_645.2.4卸载软件

先定一个小目标!掌握rpm命令的使用,能够熟练使用rpm命令卸载软件5.2.4卸载软件rpm命令使用-e选项卸载软件。在卸载软件时,rpm命令可以一次卸载多个软件,卸载成功,rpm命令没有输出结果,如果卸载失败,rpm命令会给出提示信息。案例5-6删除安装的JDK。[root@localhost~]#rpm-ejdk1.8[root@localhost~]#rpm-qa|grepjdk5.2.4卸载软件一些软件包不是独立使用的,它可能与其他软件包存在依赖关系,在操作某个软件包时,需要同时处理与其有依赖关系的软件包。但是RPM无法处理有依赖关系的软件包,因此一般不使用RPM管理存在依赖关系的软件包。YUM与DNF概述5.35.3YUM与DNF概述

先定一个小目标!了解YUM/DNF管理工具,能够说出YUM/DNF管理工具的管理机制5.3YUM与DNF概述YUM是Yellowdogupdater,Modified的缩写,它是RedHat公司发行的一款高级软件包管理工具,与RPM相比,YUM最大的优势就是可以自动解决软件包之间的依赖关系。YUM维护了一个软件仓库,称为YUM源。YUM源类似于手机系统中的应用商店,它管理着Linux发行版本中的应用程序,并维护着这些应用程序之间的依赖关系。5.3YUM与DNF概述YUM源中的软件源(下载软件的地址)可以是HTTP站点、FTP站点,也可以是本地软件仓库,这些软件源必须要包含软件包的各种信息,如软件包描述、软件功能、提供的文件、依赖关系等,正是由于这些信息,YUM才可以快速理清软件包之间的依赖关系并自动安装软件。YUM提供了一个命令yum,用于实现对RPM软件包的管理。一直以来,CentOS

Linux

5/6/7系统默认使用YUM管理RPM软件包。5.3YUM与DNF概述由于YUM长期存在一些问题,如性能低下、内存占用高以及依赖包解决方案不佳等,降低了用户体验,为此,人们在YUM的基础上开发了DNF包管理工具。DNF(DandifiedYUM)是YUM的扩展版本,它克服了YUM存在的一些瓶颈问题,改进了用户体验。CentOSStream9操作系统使用DNF(DandifiedYUM)代替YUM成为新一代软件包管理工具。DNF提供了dnf命令用于实现软件包的管理,dnf的用法、选项、命令与yum相同。在CentOSStream操作系统中,yum命令是dnf命令的软链接,两个命令可以相互替换使用。5.3YUM与DNF概述由于DNF是CentOSStream9默认的包管理工具,所以本书后面以dnf命令为例进行讲解。dnf命令的基本格式如下所示。dnf命令常用选项选项含义-h显示帮助信息-y全部问题自动回答为“yes”-v详细模式dnf选项命令软件名称格式dnf命令管理软件包5.45.4.1安装软件

先定一个小目标!掌握dnf命令的使用,能够熟练使用dnf命令完成软件的安装dnf的安装命令为install,使用install安装软件时,系统会查询软件仓库。如果软件仓库有相应的软件包,则检查软件包的依赖关系,如果没有依赖关系冲突,则下载安装软件包;如果有依赖关系冲突,则询问用户是否要安装依赖,或删除有冲突的软件包。5.4.1安装软件5.4.1安装软件案例5-7使用dnf命令安装telnet命令。[root@localhost~]#dnfinstalltelnet…依赖关系解决。============================================

软件包

架构

版本

仓库

大小============================================…确定吗?[y/N]:y下载软件包:telnet-0.17-73.el8_1.1.x86_64.rpm344kB/s|72kB00:00…已安装:telnet-1:0.17-73.el8_1.1.x86_64完毕!5.4.2查询软件

先定一个小目标!掌握dnf命令的使用,能够熟练使用dnf命令完成软件的查询dnf常用的查询命令有2个,分别为list和info。5.4.2查询软件dnflist:用于列出软件仓库中的软件包,如果dnflist后面指定软件包,则列出该软件包的信息;如果dnflist后面没有指定软件包,则列出软件仓库中所有软件包。dnfinfo:用于显示软件包的详细信息,如果dnfinfo命令后面没有指定软件包,则列出软件仓库中所有软件包的详细信息。5.4.2查询软件案例5-8使用dnflist命令查询telnet软件包。[root@localhost~]#dnflisttelnet…已安装的软件包telnet.x86_64 1:0.17-73.el8_1.1@AppStream5.4.2查询软件案例5-9使用dnfinfo命令查询telnet软件包。[root@localhost~]#dnfinfotelnet…已安装的软件包名称:telnet时期:1版本:0.17发布:73.el8_1.1…描述:Telnetisapopularprotocolforloggingintoremotesystemsover:theInternet.ThepackageprovidesacommandlineTelnetclient5.4.3检测升级软件

先定一个小目标!掌握dnf命令的使用,能够熟练使用dnf命令完成软件的检测升级5.4.3检测升级软件dnf可以更新软件,它常用的检查更新命令有多个,如下表所示。命令作用dnfupdate软件名称升级指定软件。如果不指定软件名称,则升级所有可升级的软件。update命令已过时,逐渐被upgrade命令替代dnfupgrade软件名称升级指定软件。如果不指定软件名称,则升级所有可升级的软件dnfcheck-update软件名称检查可以升级的RPM软件包。如果没有指定软件名称,则列出软件仓库中所有可用的软件包更新。dnfgroupupdate用户组升级用户组里面的所有软件包5.4.3检测升级软件案例5-10更新安装的telnet命令。[root@localhost~]#dnfupgradetelnet…依赖关系解决。无需任何处理。完毕!5.4.4卸载软件

先定一个小目标!掌握dnf命令的使用,能够熟练使用dnf命令完成软件的卸载5.4.4卸载软件dnf卸载软件的命令为remove,remove可以从系统中卸载一个或多个软件。dnfremove命令在卸载软件时也会自动解决软件之间的依赖关系。5.4.4卸载软件案例5-10卸载telnet命令。[root@localhost~]#dnf-yremovetelnet依赖关系解决。==============================================

软件包

架构

版本

仓库

大小==============================================移除:telnetx86_641:0.17-73.el8_1.1@AppStream153k…已移除:telnet-1:0.17-73.el8_1.1.x86_64完毕![root@localhost~]#telnet-bash:/usr/bin/telnet:没有那个文件或目录5.4.4卸载软件除了remove命令,dnf还提供了clean命令用于清除过期无用的缓存数据。在使用dnfclean清除缓存时,必须要指定软件包名称,如果要清除所有过期无用的缓存数据,则使用all选项。示例[root@localhost~]#dnfcleanall20文件已删除YUM源5.4.4卸载软件CentOSStream9之前的操作系统默认使用YUM管理软件包,YUM维护了一个BaseOS仓库,用于提供各种软件包,包括操作系统软件与用户空间的软件。但是用户空间的组件通常比操作系统软件更新的要频繁,DNF就将操作系统软件与用户空间的软件分成了两部分,引入了AppStream仓库用于维护用户空间的软件,而BaseOS仓库维护操作系统软件。因此,DNF主要维护了两个软件仓库。虽然DNF与YUM不同,但因为DNF兼容YUM,所以DNF维护的仓库在习惯上仍然称为YUM源。5.4.4卸载软件读者可以通过dnfrepolist命令查看DNF可用的软件仓库。YUM源[root@localhost~]#dnfrepolist仓库标识

仓库名称AppStreamCentOS-8-AppStreamBaseOSCentOS-8-BaseextrasCentOS-8-Extras用于维护其他第三方软件5.4.4卸载软件软件仓库中保存软件下载地址的文件都存储在/etc/yum.repos.d目录下,使用ls命令可查看该目录下的软件源文件。YUM源[root@localhost~]#ls/etc/yum.repos.dCentOS-AppStream.repoCentOS-Debuginfo.repoCentOS-HA.repoCentOS-Vault.repoCentOS-Base.repoCentOS-Devel.repoCentOS-Media.repoCentOS-centosplus.repoCentOS-Extras.repoCentOS-PowerTools.repoCentOS-CR.repoCentOS-fasttrack.repoCentOS-Sources.repo5.4.4卸载软件CentOSStream9默认配置了13个YUM源文件,这些文件都以.repo为扩展名,因此这些软件源也称为repo文件。在repo文件中,每个以[]开始的部分都是一个源。YUM源5.4.4卸载软件以CentOS-Base.repo文件为例,该文件中的一个源如下所示。YUM源[root@localhostyum.repos.d]#catCentOS-Base.repo[BaseOS]name=CentOS-$releasever-Basemirrorlist=/?release=$releasever&arch=$basearch&repo=BaseOS&infra=$infra#baseurl=/$contentdir/$releasever/BaseOS/$basearch/os/gpgcheck=1enabled=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficia源码包管理5.55.5.1源码编译过程

先定一个小目标!熟悉源码编译,能够说出源码编译过程5.5.1源码编译过程源码包就是未经过编译的源程序,相对于二进制形式的RPM软件包,源码包需要经过配置、编译过程,操作过程比较繁琐,但通过源码包能够获取最新版本的软件,并且源码包的移植性很好,能够适用于各种操作系统体系架构,更符合软件一次编写,到处编译的原则。5.5.1源码编译过程程序源码的编译过程程序源码无法直接运行,只有通过一些了编译链接过程生成可执行的二进制文件,才可以运行。5.5.1源码编译过程下面以C语言编写的程序为例演示源码编译运行过程。示例#include<stdio.h> //包含stdio.h头文件#include<stdlib.h> //包含stdlib.h头文件intmain() //定义main()函数{ printf("helloworld\n"); //输出helloworld语句 return0;}5.5.1源码编译过程编译C语言源文件,需要使用gcc命令。gcc是GNUCompilerCollection(GNU编译器套件)的缩写,它可以编译很多种编程语言,包括C、C++、Objective-C、Fortran、Java等。如果系统中没有安装gcc,可以使用dnf命令安装。gcc命令基本格式如下所示。gcc选项源文件–o目标文件格式5.5.1源码编译过程gcc命令常用选项选项含义-o生成目标文件-E预处理文件,即对文件进行预处理,展开头文件、宏定义等-S编译预处理文件,生成汇编代码-c编译文件(汇编文件或源文件),生成最终可执行的二进制文件-Wall显示警告信息5.5.1源码编译过程(1)预处理:预处理过程由-E选项完成,生成的目标文件为预处理文件,预处理文件以.i为扩展名。(2)编译:编译过程由-S选项完成,生成的目标文件为汇编文件,汇编文件以.s为扩展名。(3)汇编:汇编过程由-c选项完成,生成目标文件,目标文件以.o为扩展名。(4)链接:链接过程不需要选项,直接由gcc命令执行,生成的目标文件为最终执行的二进制文件。gcc对C程序的编译过程大体可以分为以下4个步骤。预处理编译汇编链接5.5.1源码编译过程使用gcc命令编译运行hello.c文件。案例5-12[itheima@localhost~]$gcc-Ehello.c-ohello.i #预处理[itheima@localhost~]$gcc-Shello.i-ohello.s #编译[itheima@localhost~]$gcc-chello.s-ohello.o #汇编[itheima@localhost~]$gcchello.o-ohello

#链接[itheima@localhost~]$./hello

#执行helloworld [itheima@localhost~]$ls #查看生成的中间文件公共

视频

文档

音乐hellohello.ihello.s模板

图片

下载

桌面hello.chello.ousr生成的中间文件5.5.1源码编译过程对于只有一个文件的简单程序,gcc其实可以一次性完成编译。例如,将hello.c直接编译生成最终可执行文件,可以通过如下命令实现。[itheima@localhost~]$gcchello.c-ohello

#一次编译完成[itheima@localhost~]$ls

#查看最终生成的hello文件公共

模板

视频

图片

文档

下载

音乐

桌面

hellohello.cusr[itheima@localhost~]$./hello

#执行hello文件helloworld5.5.2make工具

先定一个小目标!掌握make工具,能够使用make工具完成软件的安装对于简单的程序,可以直接使用gcc命令编译,但是当一个程序中源文件特别多时,如果再使用gcc命令逐个文件编译,工作量会特别大,而且源文件之间存在相互依赖关系,很容易出现编译错误。为此,Linux操作系统提供了编译工具make完成复杂程序的编译。5.5.2make工具Makefile文件用于存储编译命令,执行Makefile文件就可以完成程序的编译。为了自动生成某个程序的Makefile文件,Linux系统定义了一个configure脚本文件,用于获取操作系统环境、程序源文件依赖关系、编译参数等信息。运行configure脚本文件,系统就可以根据获取到的信息自动生成Makefile文件。5.5.2make工具1.

Makefile文件make命令用于执行Makefile文件,即执行Makefile文件中的编译命令。5.5.2make工具makeinstall命令的作用就是安装生成的二进制文件。makeinstall命令其实也是读取Makefile文件中的指令安装软件。2.

make命令3.

make

install命令通过源码安装软件时,可以先执行configure脚本生成Makefile文件,再执行make命令进行编译,最后通过makeinstall命令完成安装。5.5.2make工具安装MySQL8任务5-1任务5-1安装MySQL8

先定一个小目标!掌握dnf命令的使用,能够熟练使用dnf命令完成MySQL8的安装创建MySQL8安装目录。STEP01任务5-1安装MySQL8[root@localhost~]#mkdir/etc/mysql[root@localhost~]#cd/etc/mysqlSTEP02任务5-1安装MySQL8[root@localhostmysql]#wget/get/mysql80-community-release-el7-1.noarch.rpm正在解析主机()...1正在连接()|1|:443...已连接。…mysql80-community-release-el7-1.100%[=====================>]25.21K164KB/s用时0.2s2022-05-1711:11:27(164KB/s)-已保存“mysql80-community-release-el7-1.noarch.rpm”[25820/25820])[root@localhostmysql]#lsmysql80-community-release-el7-1.noarch.rpm下载MySQL8的RPM软件包。安装配置MySQL8的yum源。STEP03任务5-1安装MySQL8[root@localhostmysql]#dnflocalinstallmysql80-community-release-el7-1.noarch.rpmCentOSStream9-BaseOS

…依赖关系解决。…确定吗?[y/N]:y下载软件包:…已安装:mysql80-community-release-el7-1.noarch完毕!安装MySQL8。STEP04任务5-1安装MySQL8[root@localhostmysql]#dnfsearchmysql[root@localhostmysql]#dnfinstallmysql-server.x86_64依赖关系解决。…确定吗?[y/N]:y…确定吗?[y/N]:y导入公钥成功…已安装:完毕!启动MySQL8。STEP05任务5-1安装MySQL8[root@localhostmysql]#systemctlstatusmysqld #查看mysqld服务程序状态○mysqld.service-MySQL8.0databaseserver

…[root@localhostmysql]#systemctlstartmysqld #启动mysqld服务程序[root@localhostmysql]#systemctlstatusmysqld #再次查看●mysqld.service-MySQL8.0databaseserverLoaded:loaded(/usr/lib/systemd/system/mysqld.service;disabled;vendorpreset:disabled)…登录MySQL8。STEP06任务5-1安装MySQL8[root@localhostmysql]#mysql-uroot-pEnterpassword: #初始无密码,直接按回车键登录…

Type'help;'or'\h'forhelp.Type'\c'toclearthecurrentinputstatement.mysql>showdatabases; #查看数据库+--------------------+|Database|+--------------------+|information_schema||mysql||performance_schema||sys|+--------------------+4rowsinset(0.01sec)mysql>设置密码。STEP07任务5-1安装MySQL8mysql>alteruser'root'@'localhost'identifiedby'123456'; #设置密码QueryOK,0rowsaffected(0.01sec)mysql>exit #退出登录Bye[root@localhostmysql]#mysql-uroot-p #重新登录Enterpassword: #输入密码WelcometotheMySQLmonitor.Commandsendwith;or\g.…mysql> 安装nginx1.18任务5-2任务5-2安装nginx1.18

先定一个小目标!熟悉源码安装方式,能够通过源码方式编译安装nginx1.18配置环境。STEP01任务5-2安装nginx1.18[root@localhost~]#dnf-yinstallgcc-c++ #安装gcc、g++环境[root@localhost~]#dnf-yinstallpcrepcre-devel #安装正则表达式库[root@localhost~]#dnf-yinstallzlibzlib-devel #安装压缩用的库[root@localhost~]#dnf-yinstallopensslopenssl-devel#安装安全通信的库[root@localhost~]#dnf-yinstallmake #安装make下载nginx1.18源码包。任务5-2安装nginx1.18STEP02生成Makefile文件。任务5-2安装n

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论