




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、文档模板01文档副标题文档标题文档模板01Version 1.02015-03-01DEV-07-0018Copyright2015 ZTEsoft Integration Runtime Environment日期编写/修改人版本记录2015-03-01IREVer 1.0创建日期审阅人版本密级状态意见2015-03-05IREVer 1.0内部公开发布无审阅文档控制页面编写/修改 RHEL6 软件包的安装与管理 飞翔学习目标:x了解linux执行文件的种类学习传统方法安装、管理软件包学习通过rpm来安装、管理软件包学习yum服务器的配置,安装管理软件包一、 首先我们来介绍linux下的可执
2、行文件的种类在redhat enterprise linux中执行命令,大部分室执行文件。执行文件可以分如下种类1、 程序(program)程序一种存储cpu指令的机器码的特殊文件,由于存储在程序文件中得极其指令都是采用二进制编码,直接交给cpu执行。所以我们习惯陈可执行文件为二进制文件。一般来说程序执行的速度比较快,。但是最大缺点室程序文件无法在不同的cpu中执行2、 链接库(library)链接库与程序类似,也是一个存储机器码的二进制文件;但链接库与程序文件的不同之处在于,程序文件会存储执行进入点。所以linux系统会知道从哪里开始执行文件的内容;而连接库则没有存储执行进入点得信息,因而无
3、法直接启动redhat linux中得链接库3、 脚本(script)脚本就是以文本的格式存储要cpu执行的命令。支持脚本类型的程序语言都会提供一个编译器(interpruter)程序。每次执行一个脚本时,redhatlinux都会吧脚本中的命令交由编译器,转译成cpu可以执行的机器码,然后才让cpu去执行这些机器码。通常情况下脚本的好处就是平台无关性,只要你得机器提供适当的编译器,就可以直接执行脚本,缺点就是执行速度远远,慢于程序文件。产生机机器命令的方法为了让cpu可以顺利的执行高级语言开发出来的应用软件,必须把高级语言的转译成机器码,这个动作成为编译,而负责执行编译工作的程序就成为com
4、plier(编译器)编译的几个步骤:1、 检查成语代码的正确性2、 把程序代码转换成为机器码3、 程序代码中如果使用其他链接库的机器码,则将其链接4、 产生操作系统的相关信息5、 存储为可执行文件。其中不管理员较为密切的可能是连接程序库的这个动作链接:链接室指把存储在链接库中得机器码存储在程序中,这样开发人员就不用重复编写相同的程序代码以加快程序的开发速度。链接分为两种:动态链接和静态链接静态链接:在进行链接时,把执行程序执行期间需要用到的机器码复制到可执行文件中,这种链接方法称为静态链接“static link”.静态链接而成的程序有如下几个特性:1、产生的执行文件体积庞大:使用静态链接产生
5、的程序必须吧所有用到的机器码复制一份出来,存储在执行文件中,这样使程序文件的体积比较庞大。2、执行时需要较多的空间:在程序执行时加载程序文件需要更多的空间。3、可以独立使用:静态链接的程序已经存储了程序执行期间所需的机器码,不会因为某些链接库不存在或者版本不符合而无法执行。动态链接:在进行链接时,编译器不会把链接库的机器码复制到程序文件中,而只是存储执行文件执行时需要的链接库,该链接库的版本,以及函数的符号等信息。当执行这个程序时,便可以根据执行文件中所记录的链接信息,加载所需要的链接库以及机器码。这样的链接方式就称为dynamic link 动态链接。动态链接的特性:体积小:使用动态链接产生
6、的执行文件,因为只需要存储机器码的信息,所以执行文件的体积小。需要内存空间少:由于动态链接执行文件小,所以执行这个程序需要的内存空间就少无法独立使用:执行动态链接而成的程序时,会依赖所需要的链接库。如果两台机器上得链接库信息不一致,就会使执行文件无法在另外一台机器上执行查寻执行文件的链接方法如果想知道某个程序的链接方式,我们可以使用file来查看,file查询到一个文件时,会显示该程序的文件中得机器码和链接方法等信息;如果是statically linked就是静态,如果显示dynamic linked就是动态下面来看一个例子这个信息就是显示的/bin/ls 采用elf格式,存储者64位lsb
7、标准执行文件采用动态链接库并且已经提出了(stripped)当中的调试信息查询链接库ldd来完成Ldd的每条记录的显示格式library=>library_file(memory_address)注意ldd命令只能查询采用动态链接而成的程序文件软件的依赖性如果采用动态连接库的方式制造出来的执行文件,那么管理这些软件时就要特别注意是否会有依赖性的问题。所谓依赖性,就是指软件执行时需要用到其他的组件,这个时候该软件就与其他的组件有了依赖性了。我们还是以ldd /bin/grep为例这个程序需要linux-vdso.so.1 libpcre.so.0 动态链接库。如果删除动态库就无法使用不管删
8、除多少下面这个例子我讲Libc.so.6重命名了,结果很多程序会出问题了传统管理软件的方法:在unix世界,不同的unix系统的system call可能不一样,即使是相同的呼叫系统,不同的unix之间的提供的链接库可能不一样,甚至链接库一样,不同平台的机器码不一样。这样就造成了应用软件的困扰。因为在不同的平台,不同的链接库的unix系统,提供数百份版本的软件。为了解决这个问题,传统的unix软件提供者,多半选择将软件源代码提供给用户。用户取得源代码后只需要在自己的机器上重新编译一次,即可产生在该系统上得可执行程序。这就解决了unix软件提供者的麻烦。Redhat linux既然是兼容unix
9、同,那么也具备这种特性。不同的软件的在安装过城中步骤根据编写者的爱好,可能不相同,但是通常的步骤如下:1、 获取软件2、 编译前的工作准备3、 开始编译4、 安装和部署假如我们有一份原代码我们以ntfs-3g源代码为例编译前的准备工作1、 详细阅读文件2、 准备编译所需要的组件3、 设置编译参数详细阅读READMEREADME 通常情况下提供软件的基本信息。包括作者,软件实现的功能,遇到问题向随报告等INSTALL这个文件就是交你如何安装这个软件Change log Changes这个文件一般都是软件版本的修改记录。比如增加了那些功能,何时修正等等信息准备编译所需要的组件某些软件在编译期间或者
10、执行期间可能会依赖其他的软件或者链接库,如果有这样的情况,那么你就得在开始前确认系统上是否存在这些软件。大部分的install和readme都会提供说明设置编译参数:软件编译前也必须设置好编译的参数,以配置软件的编译环境,启用那些功能。现在大部分软件都提供由autoconf /automake 产生的configure ,通过configure 这个shell脚本来可以很方便的获得编译参数执行configure 时,可能需要提供额外的参数,不同的软件提供的configure需要的配置可能不一样。如果想要知道这个软件configure 参数的话,可以执行./configure help来查看 下
11、面我们以ntfs-3g为例首先用我们学过的解压缩命令tar 来完成解压我们可以看到这个源代码包里面有很多文件下面我们通过./configure help来获取参数上面我只截取去了一部分参数。常见的参数含义-prefix=指要安装到那个目录,不使用这个参数的户就自动默认将可执行文件和库都分别放到/usr/local/bin 和usr/local/lib 或者/usr/lib 或者/lib。头文件就放到/usr/local/include或者/usr/include 等目录。如果指定了目录这些文件都会安装到你得而当前目录下。如果是64位的,库都会放到lib64这个文件夹这些参数都可以自行指定,也可
12、以使用默认的或者直接指定一个prefix=directory下面我们开始配置参数通过configure的默认值来完成,上面的错误是由于我没有安装c编译器造成的安装好编译器后我们来做如下操作完成参数的配置后下面我们开始编译程序Configure 产生的Makefile文件,常见的targetall 编译所有的程序和链接库,产生Info,man等,all通常是configure 产生的Makefile中得一个target,也可以说是默认值clean 就是清除上次编译的记录distclean 清除所有东西。包括Makefile 。执行distclean后你得重新设置编译参数,再进行编译install
13、 安装所有的程序,链接库,执行文件引入文件等uninstall 卸载文件makefile文件的格式TARGET:DEPENDENCE_TARGETACTION下面我们开始编译ntfs-3g如果想看它的编译信息和错误信息可以将其重导向到指定的文件以方便检查直接执行make 就行成功完成编译下面我们看是安装在这个安装中刚开始我制定了prefix=/usr/local/ntfs-3g在安装时报错,后来我讲./configure直接运行,没有指定prefix。是由于我制定了安装过程中会覆盖源文件导致的报错。上面要是没有出现错误信息就表明你已经成功安装了这个ntfs-3g安装完成后就可以关在ntfs分区
14、了#mount t ntfs-3g /dev/sdb1 /mnt/sdb1这样就完成了下面我们卸载掉程序这样就卸载了一个程序了要使用make unstall 必须源代码存在才行否者不行。上面我们简单的完成了一个叫ntfs-3g的源代码包得安装。这只是一个简单的范例,不是通用范例,每个程序都有自己的安装方式,还是得看作者的喜好和使用习惯。不过大致的过程都是这样安装按成后我们如果还有帮组文档我就需要将帮组的路劲写入到/etc/man.config,如果值使用默认的参数,帮组文档就会放到指定的目录下如下如果是自定义安装的话就需要讲范例帮助加入到/etc/man.config 中格式如上面图像显示的格
15、式在linux中我们如何来管理库连接了应用软件一般都会提供一些库连接,以便给其他开发人员开发应用软件使用或者作为软件动态模块加载静态链接库static-link library 是提供给软件编译时静态链接使用的。一般说来静态链接库的文件命名为libNAME.A动态链接库则是程序在执行期间,动态加载链接库提供的功能,习惯的命名凡是libNAME.so.VERSIONREDHAT ENTERPRISE 通常链接库存放的位置lib目录如果是64位的话,则为lib和lib64一个是lib是支持32,lib64支持64位。通过file 查看链接库的示范管理动态连接器动态链接器主要是将动态链接库加载到内核
16、当中,提供给采用动态链接方式产生的执行文件的呼叫使用。/etc/ld.so.conf是动态连接器的配置文件这个文件会指定了一个ld.so.conf.d的目录用来存放自己自定义的内容我们会看到上面的这些内容下面我们可以查看一下其中一个的内容,我们以mytsql这个为例在配置文件当中使用如何配置ld.so.conf,如下配置如果是自己自定义的话下面我们还是以ntfs-3g为例,我后来讲ntfs-3g指定到了/usr/local/ntfs#./configrue prefix=/usr/local/ntfs#make#make && make install现在我向正常调用某些库时我
17、必须指定他的路径然后使其生效通过指定的ldconfig来完成。或者我在ld.so.conf.d目录下建立一个ntfs.conf然后执行ldconfig如果要删除指定的动态链接库的话就直接在指定的目录删除指定的文件就可以了然后执行ldconfig就完成了。下面我们介绍rpm管理软件包传统的unix系统管理软件到方法很复杂,那怪有人说,要成为unix系统的管理者,就得具有开发软件的能力才行。如果redhat 的系统管理者要管理系统上所有的软件的话,并且通过传统方法的话,那么使用红帽的人就疯了,对于初学者来说基本上就放弃了linux的学习了。为了减轻管理者在管理软件上得不变,红帽开发了rpm软件包管
18、理器。通过rpm 可以很方便的管理系统上得软件。Rpm的介绍首先rpm包得组成部分RPM 软件包文件Rpm是一种特殊的文件,里面封装了软件的程序,配置文件,说明文件,链接库以及源代码RPM 管理工具红帽提供了一个叫做rpm 的管理工具以及其他的程序共工具。利用这些工具可以查询,安装,升级,删除和更新软件包网络资源因特网上有很多提供rpm软件包的服务器,我们可以通过这些服务器取得rpm包,也有部分网站提供搜索rpm软件包得功能,你可以利用这些网站搜索你需要的软件包,红帽的官方RHN站,让管理者可以更新和远程管理REDHAT LINUXRPM数据库Rpm数据库会记录安装过的软件信息。这些信息会保存
19、在/var/lib/rpm目录如果rpm 的资料库不见了,那么我们也就查不到相关的rpm包得信息了。所以注意保存Rpm包可以分为源代码包和二进制包两种二进制rpm包封装着可以直接执行的执行文件,以及执行程序相关的文件等。不过二进制rpm的提供是与cpu有关的程序文件,只能安装在你得计算机可以可以使用的版本源代码rpm包这种rpm封装者的应用软件的源代码,所以称作源代码软件包。原代码软件包rpm主要是用来制作build其他种类的rpm软件包文件,安装源代码rpm包文件后,软件会安装在/usr/src/RedHat/SOURCE中。除非你要自己编译二进制软件包Rpm包得命名规则PACKAGE-VE
20、RSION-RELEASE.TYPE.rpmPACKAGE 这是软件的名称VERSION:软件的版本RELEASE 软件包释放的号码TYPE 这个字段标示这个rpm软件包得文件类型:常见的类型如下I386,i486,i586,i686 这些都是针对interl80*86兼容cpu所编译的binaryrpm包Ia32 ,ia64 这是针对interl ia32与ia64架构编译的binary rpm包Alpha 这是针对dec alpha 平台编译的Sparc 这是针对sunsparc的Src 就是源码rpm包Noarch 标示独立的rpm软件包下面我们来介绍一下rpm工具首我们来介绍一下相关r
21、pm的选项说明1、安装语法:#rpm i 选项 file.rpm file2.rpm-h 安装时输出hash记号(“#”),显示安装进度-test 指对安装进行测试,不安装-percent 以百分比的形式来输出安装得进度-excludedocs 不安装软件包中得文件文件-includedocs 安装文档-replacepkgs 强制重新安装的软件包-replacefiles 替换属于其他软件包的文件-force 忽略软件包以及文件冲突强制安装-noscript 不运行安装和后脚本安装-ignorearch 不校验软件包的结构-ignoreos 不检查软件运行的操作系统-nodeps 不检查依赖
22、性-ftpproxy <host> 用host作为代理-ftport <port> 指定ftp端口-v 显示附加信息-vv显示调试信息-root <path> 让rpm包执行路径作为根目录,这样原装和后安装程序都会安装在这个目录下。-dbpath <path>设定rpm资料库的所在路径2、删除#rpm e 选项 pkg1 pkg2-test 只执行删除的测试-noscript 不运行预安装和后安装脚本程序-nodeps 不检查依赖性-vv 显示调试信息3|升级#rpm U or(-upgrade) 选项 file.rpm file2.rpm-h输
23、出hash号-oldpackage 允许升级到一个老版本-test 只进行升级测试-F 更新软件包,如果软件包新就更新到新版本,如果一样就不安装-v显示附加信息4、 查询#rpm q or(query) -p查询软件包的文件-f 查询某个文件所属的软件包-a 查询所有安装的软件包-g 查询属于组的软件包-whatrequires查询所有需要x功能的软件包-i显示概要信息-l 显示软件包中得文件列表-c显示配置文件的列表-d显示文档列表-v显示附加参数5、 校验已安装软件包#rpm V or(query)-p 查询验证指定的软件包-f 校验file所属的软件包-a 校验所有软件包-g校验所属组的
24、软件包-v显示附加信息6、 校验软件包的文件#rpm K or(-checksig )选项 file.rpm file2.rpmCHECKSIG 检查签名认证是否正确-nopgp不校验pgp签名其他的rpm选项-rebuild重建rpm资料库-initdb 创建一个新的rpm资料库-quiet尽量减少输出-version 显示当前rpm的版本下面就是范例:1、我们这些安装都是以来安装zsh这个包2、测试不安装软件包3、强制重新安装软件包在此执行就提示软件包已经安装4、强制安装软件包忽略文件的冲突5、 指定路径安装软件包由于指定路径就直接报错找不到库文件,所以最好默认安装软件包6、 如果存在依赖
25、该如何安装了依赖于python-deltarm,下面我们来安装python-deltarm查询已安装的软件包1、 直接带q参数查询2、 查询所有的软件包找出zsh3、 查询某个文件所属的软件包4、 查询zsh软件包包含那些文件5、 查看软件包的配置文件6、 显示软件的文档表7、查看概要信息7、 查询软件所需要的文件8、 查询软件的修改记录9、 查看某个软件包的信息,没安装的软件包信息更新软件如果版本比较低就升级安装1、 如果升级版本相同将提示已经安装,可以使用强制升级安装2、 刷新软件包,只要版本相同就不更新,即使强制也不更新校验软件包1、 校验软件包,如果没变化不显示任何信息2、如果我们直接
26、touch一下zsh,修改其时间卸载软件包1、 直接卸载软件包2、 如果我们卸载软件包由依赖性该如何完成了。以卸载deltarpm为例有依赖来那个软件包就先卸载那个软件包src.rpm包得安装方法一:直接安装软件包,以ksh.src.rpm为例在过去RHEL5以及之前的版本会在/usr/src/redhat下SOURCE 和SPECS这两个目录现在rhel6是找不到这个目录的默认情况下会在/root/下生成一个rpmbuild的目录这个下面就有SOURCE 和SPECS着两个目录安装软件包后就会到这两个目录中去rootrhelserver opt# rpm -ivh bind-9.7.0-1.
27、el6.src.rpm warning: bind-9.7.0-1.el6.src.rpm: Header V3 RSA/SHA256 Signature, key ID f21541eb: NOKEY1:bind # 100%安装完成后到指定的目录rootrhelserver src# cd /root/rpmbuild/rootrhelserver rpmbuild# lsSOURCES SPECSrootrhelserver rpmbuild# cd SOURCES/rootrhelserver SOURCES# lsbind-9.3.1rc1-sdb_tools-Makefile.in
28、 bind-96-libtool2.patchbind-9.3.2b1-fix_sdb_ldap.patch bind-96-old-api.patchbind-9.3.2b2-sdbsrc.patch bind-9.7.0.tar.gz看到这个目录下的文件了吧下面的安装就和之前的一样了下面就将其打包成为rpm包,前提你首先要安装rpm-build工具#cd SPECS#rpmbuild -bb bind.specwarning: Could not canonicalize hostname: Wrote: /root/rpmbuild/RPMS/x86_64/bind-9.7.0-1.el
29、6.x86_64.rpmWrote: /root/rpmbuild/RPMS/x86_64/bind-sdb-9.7.0-1.el6.x86_64.rpmWrote: /root/rpmbuild/RPMS/x86_64/bind-libs-9.7.0-1.el6.x86_64.rpmWrote: /root/rpmbuild/RPMS/x86_64/bind-utils-9.7.0-1.el6.x86_64.rpmWrote: /root/rpmbuild/RPMS/x86_64/bind-devel-9.7.0-1.el6.x86_64.rpmWrote: /root/rpmbuild/R
30、PMS/x86_64/bind-chroot-9.7.0-1.el6.x86_64.rpmExecuting(%clean): /bin/sh -e /var/tmp/rpm-tmp.JbocUf+ umask 022+ cd /root/rpmbuild/BUILD+ cd bind-9.7.0+ rm -rf /root/rpmbuild/BUILDROOT/bind-9.7.0-1.el6.x86_64+ :+ exit 0rootrhelserver SPECS# 完成后会在RPMS下生成需要的指定的rpm包了rootrhelserver RPMS# cd x86_64/rootrhe
31、lserver x86_64# lsbind-9.7.0-1.el6.x86_64.rpm bind-libs-9.7.0-1.el6.x86_64.rpmbind-chroot-9.7.0-1.el6.x86_64.rpm bind-sdb-9.7.0-1.el6.x86_64.rpmbind-devel-9.7.0-1.el6.x86_64.rpm bind-utils-9.7.0-1.el6.x86_64.rpmrootrhelserver x86_64# 成功完了编译了,后面的安装就自行解决二、 下面介绍yum的安装如果你没由登陆rhn那么你就不能使用yum源,那么你只有自己建立一个y
32、um源,可以使本地或者网络源yum的特点1、自动解决包的依赖性,能够方便安装,删除,更新软件包2、便于管理大量系统的更新问题3、可以同时配置多个yum源4、简洁的配置文件5、保持与rpm数据的一直性6、有一个比较详细的log7、使用方便8、yum是rhel/centos/fedora系统自带的建立yum源的步骤如下:1、 将所有的rpm文件放到同一个目录下2、 在该目录建立yum下载数据源3、 通过ftp或者http分享出去就行了4、 这样就建立好了一个yum源了下面我们首先来建立一个本地院适合于本地安装在做源之前安装createrepo 这个软件包,它依赖于deltram 和python-d
33、eltram两个软件包的安装1、 首先将源文件放到指定目录下我们以/var/ftp/pub/localsource将cd 包得所有内容拷贝到/var/ftp/pub/localsourcerootrhelserver pub# cp -ar /mnt/cdrom/Packages /var/ftp/pub/localsBource/2、 创建下载数据源完成创建3、 建立一yum下载源的文件#vim local.repoPackagesname=Packagesbaseurl=file:/var/ftp/pub/localsource/enabled=1gpgchecked=0gpgkey=fi
34、le:/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release清楚缓存中的头和文件FTPyum安装源首先安装vsftpd软件1、 将文件拷贝到/var/ftp/pub/ftpsource下2、下载数据源3、创建分组信息建立yum下载源定义文件rhel-Packagesname=Packagesbaseurl= 0/pub/ftpsource /Packagesenabled=1gpgcheck=0gpgkey=file:/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-releaserhel-Serverna
35、me=Serverbaseurl= 0/pub/ftpsource /Serverenabled=1gpgcheck=0gpgkey=file:/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-releaserhel-LoadBalancername=LoadBalancerbaseurl= 0/pub/ftpsource /LoadBalancerenabled=1gpgcheck=0gpgkey=file:/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-releaserhel-
36、HighAvailabilityname=HighAvailabilitybaseurl=0/pub/ftpsource /HighAvailabilityenabled=1gpgcheck=0gpgkey=file:/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-releaserhel-ResilientStoragename=ResilientStoragebaseurl=0/pub/ftpsource /ResilientStorageenabled=1gpgcheck=0gpgkey=file:
37、/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-releaserhel-ScalableFileSystemname=ScalableFileSystembaseurl=0/pub/ftpsource /ScalableFileSystemenabled=1gpgcheck=0gpgkey=file:/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release启动vsftpd服务#yum clean all#yum list配置文件yum.conf的设置内容rootstation20 pub# vim /etc
38、/yum.conf maincachedir=/var/cache/yum/$basearch/$releaseverkeepcache=0 指定缓存目录默认为/var/cache/yumdebuglevel=2 指定日志等级logfile=/var/log/yum.log 指定日志文件路径exactarch=1 是否升级与已安装的软件包cpu体系结构一致的包,默认为1表示可以不升级obsoletes=1 是否升级过时的软件包,默认1表示可以升级。0表示不升级gpgcheck=1 为所有软件仓库的软件包是否启用或者禁用,GPG签名,默认时签名认证1,0表示不认证plugins=1 是否启用插件
39、installonly_limit=3 安装内核型软件包的数量,默认3为RHEL6配置EPELrepo为了获得更高质量的,高性能,高可靠性,有需要方便易用的软件包的新功能。那么Fedora project退出的EPEL正好合适,这是有FEDORA社区打造,为RHEL的衍生发行般centos,linux等提供高质量的软件包项目,安装非常简单rootredhatlinux # rpm -ivh Retrieving Preparing. # 100%package epel-release-6-5.noarch is already installedrootredhatlinux #rootredhatlinux # rpm -Uvh Retrieving Preparing. # 100%package epel-release-6-5.noarch is already installedrootredhatlinux #下面就是来学习yum的用法:#yum options command args#yum常见的共享参数-y 表示yum需回答问题,一律为yes-c config_file 以config_file 取代默
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025国内借款合同范例
- 2025农业科技公司农药采购合同范例
- 2025汽车用品销售合同
- 2025艺人经纪合同范文
- 专利权质押合同书
- 二零二五版餐厅饭店转让合同书协议书
- 二零二五借调合同模板
- 2025有限责任公司合作协议合同范本
- 2025xy建筑工程施工合同
- 2025【合同模板】企业物业管理合同示范文本
- 高中英语高考读后续写巧用动作链专项练习(附参考答案和解析)
- 脑机接口与人工智能-第1篇
- MSOP(测量标准作业规范)测量SOP
- 小升初放弃学校分配申请书范文
- “三个代表”重要思想
- 科技论文写作第八章(讨论部分)课件
- 水平三(五年级)体育《篮球:单手肩上投篮》说课稿课件
- 链家买卖合同 链家买卖合同标准版(五篇)
- 上肢后区、脊柱区的局部解剖与操作-人体局解剖学-课件-07
- 医用计量器具目录(含强检)
- 年产3万吨乙酸乙酯-毕业设计说明书
评论
0/150
提交评论