1、软件包管理04榆林职业技术学院 杨浩与应用实践1学习目标1.了解Linux系统中软件包的两种基本类型,源码包和二进制包。2.了解RPM包的命名规则、RPM包名、包全名及其依赖性等概念。3.掌握RPM包的安装、升级、卸载、查询及其校验的基本方法。4.掌握yum源的基本概念以及yum源常用查询命令及安装、升级、卸载命令的使用方法。5.掌握光盘yum源的搭建方法。6.掌握源码包的基本概念及其安装、卸载的基本方法。7.了解脚本安装包的基本概念及其安装过程。本章学习目标24.1 软件包简介3源码包二进制包Linux软件包 源码包就是通常所说的源代码包,如脚本安装包就是源码包,由于源码包开放源代码,所以任
2、何用户都可以根据需要修改、优化源代码,也可以自由选择所需功能。源码包安装过程很容易报错,一旦报错,就需要通过分析源代码的方法来解决,由于新手一般不具备必要的Linux知识基础和编程技巧,所以很难解决。不过,源码包的卸载非常方便(把安装目录删了即可,不会留下任何垃圾文件),虽然如此,现在也很少使用源码包了。二进制包是Linux默认包,是源码包经过编译后的可执行程序包,即通常所说的RPM(Red-Hat Package Manager,red-hat软件包管理器)包。二进制包执行速度很快,但是不能对程序进行修改。对二进制包管理的非常简单,包的安装、升级、查询以及卸载非常方便,只需执行几条命令即可。
3、小知识:Window软件都不能在Linux系统上运行,所以基于Window系统的病毒对Linux系统没有任何威胁,所以所有的基于Window的应用,要在Linux上实现,必须专门开发。4.2 用rpm命令管理RPM包 通常RPM包的文件名称由六个段组成,其命名遵循如下格式:第1段-第2段-第3段.第4段.第5段.第6段 第1-3段之间用“-”号分割,第3-6段之间用“.”号分割。第1段用于指定软件包名称;第2段用于指定-软件版本号;第3段用于指定-软件发布次数;第4段用于指定可运行的Linux平台;第5段用于指定可运行的硬件平台;第6段就是RPM包扩展名(.rpm)。例4.1 从“httpd-
4、2.2.15-15.e16.centos.1.i686.rpm”文件名,可以获取哪些信息?虽然RPM包管理器是以Red-Hat命名的,但是其设计理念是开放式的,在几乎所有的Linux的发行版本中都支持RPM包管理器。44.2.1 RPM包命名规则 解答:根据RPM包命名规则可知,该文件是RPM包文件,其软件名称是httpd,软件版本是2.2.15,该软件已发布15次,适合在e16和centos两种linux系统上安装,需要硬件平台i686支持。注意:RPM包的包名和包全名是不一样,在软件包的管理中,有时候需要用包名,有时候需要用包全名。在例4.1中,RPM包的包名是httpd,包全名是http
5、d-2.2.15-15.e16.centos.1.i686.rpm。小知识:Linux系统并不要求为文件设置扩展名,Linux也不认识扩展名,Linux系统的文件扩展名是用户为了自己管理方便而额外添加的。4.2 用rpm命令管理RPM包 RPM包的依赖性是指相关软件包的安装有一定的先后次序,而且后续安装的RPM包依赖于先前安装的RPM包,只有被依赖的RPM包成功安装了,后续RPM包才能顺利安装,否则就会报错,提示被依赖的RPM包没有安装,需要首先安装被依赖RPM包。当被依赖的RPM包以“so.2”为“扩展名”时,表明这是一个库依赖包,而不是一个独立的RPM包,库依赖包包含于RPM包中,此时需要
6、安装相应的RPM包。那么如何知道特定的库依赖于哪个RPM包呢?我们可以通过 网址非常方便地查询到特定库所依赖的RPM包。54.2.2 RPM包的依赖性010302环形依赖 模块依赖树形依赖 RPM包依赖性4.2 用rpm命令管理RPM包 每个RPM包都有包名和包全名,当我们操作的包没有被安装时,就用使用包全名,例如,在安装、升级RPM包时,就要使用包全名。当我们操作的包已经被安装好时,就使用包名,因为RPM包安装后,会被在/var/lib/rpm目录下的数据库中记录相应的信息,系统会自动搜索该目录下的相应数据库。rpm命令的完整路径是/usr/bin,用于对RPM包的安装、所属包查询、依赖性查
7、询、包校验及卸载等管理操作。不同的操作,其命令格式不同,下面详细介绍rpm命令功能:64.2.3 RPM包的安装、卸载与查询 rpm命令可以用来安装或升级指定的RPM包。命令格式:rootlocalhost#rpm 选项 包全名 选项说明:-i 安装(install)-v 显示详细信息(verbose)-h 显示进度(hash)-U 升级包(upgrade)-nodeps 不检测依赖性(no dependency),如果找不到包的依赖关系,可以用该选项强制安装。1.RPM包的安装、升级命令4.2 用rpm命令管理RPM包 例4.2 从光盘安装yum软件包。第一步:检查光盘是否已挂载:rootl
8、ocalhost#mount 如果光盘没有被挂载,执行以下操作完成挂载:首先:进行虚拟机设置,选择“使用IOS映像文件(M)”单选按钮,选择合适的Linux映像文件(如:centos-6.5-x86_64-bin-dvd1.ios),同时选中“已连接”复选框。相当于把光盘放入光驱。其次,建立光盘挂载点/mnt/cdrom,并挂载,同时检测是否挂载:rootlocalhost#mkdir/mnt/cdromrootlocalhost#mount/dev/sr0/mnt/cdromrootlocalhost#mount74.2.3 RPM包的安装、卸载与查询 执行上述命令后,如显示如下信息,说明光
9、盘挂载成功:/dev/sr0 on/mnt/cdrom type iso9660(ro)第二步:安装yumrootlocalhost#rpm ivh/mnt/cdrom/Packages/yum-3.2.29-40.e16.centos.noarch.rpm yum文件中的“noarch”表示该yum包可以安装到任何硬件系统,输入上述命令后按回车键开始安装,若出现如下信息,说明安装成功:package yum-3.2.29-40.e16.centos.noarch is already installed 注意:在安装过程中如出现依赖问题,需要先安装被依赖包,如果依赖的是.so.2库依赖文件,
10、则通过网址查找所在的RMP包并安装。4.2 用rpm命令管理RPM包 rpm命令也可以用来卸载指定的RPM包。命令格式:rootlocalhost#rpm 选项 包名 选项说明:-e 卸载(eraser)-nodeps 不检测依赖性(no dependency)卸载RPM包时使用的是包名,如果被卸载的包是其它包的依赖包,则不能被卸载。84.2.3 RPM包的安装、卸载与查询 rpm命令的包查询功能用于查询指定的RPM包是否已被安装。命令格式:rootlocalhost#rpm 选项 包名 包全名 选项说明:-q 查询(query)。-a 查询所有已安装的包,不能单独使用,与q选项配合使用。-i
11、 查询软件包的详细信息,不能单独使用,与q选项配合使用。-p 在当前目录下获取未安装包的相关信息,不能单独使用,与q选项配合使用。-l 查询包中文件的安装位置,不能单独使用,与q选项配合使用。参数说明:包名或包全名 如果查询已安装包,就需要用包名;如果查询未安装的包,则用包全名。2.RPM包的卸载3.RPM包查询命令4.2 用rpm命令管理RPM包 例4.3 可用如下命令查询Linux系统将把setup软件包中的文件安装在哪些目录下(setup 软件包未安装):rootlocalhost#rpm qpl/mnt/cdrom/Packages/setup-2.8.14-20.e16-4.1.no
12、arch.rpm 例4.4 可用如下命令查看所有未安装的RPM包:rootlocalhost#rpm qp/mnt/cdrom/Packages/*.rpm 例4.5 可用如下命令在未安装的RPM包中查找java软件包:rootlocalhost#rpm qp/mnt/cdrom/Packages/*.rpm|grep i java 例4.6 可用如下命令查看setup软件包是否已安装:rootlocalhost#rpm qa|grep i setup94.2.3 RPM包的安装、卸载与查询 例4.7 可用如下命令查看yum软件包的包全名(yum包已安装):rootlocalhost#rpm
13、q yum例4.8 可用如下命令查看yum软件包的基本信息:rootlocalhost#rpm qi yum#yum包已安装,所以用包名例4.9 可用如下命令查看zip软件包的基本信息(未安装):rootlocalhost#rpm qip/mnt/cdrom/Packages/zip-3.0-1.e16.x86_64.rpm#zip包未安装,所以用包全名 例4.8和例4.9利用“i”命令选项分别查看已安装包和未安装包的基本信息,包括包名称、版本号、Linux发布版本、硬件平台、是否安装及安装时间等。4.2 用rpm命令管理RPM包 rpm命令的所属包查询功能用于查询指定系统文件属于哪个RPM包
14、。命令格式:rootlocalhost#rpm 选项 系统文件名 选项说明:-q 查询(query)-f 查询指定系统文件属于哪个RPM包,不能单独使用,与q选项配合使用。系统文件名要使用绝对路径或相对路径。104.2.3 RPM包的安装、卸载与查询例4.10 可用如下命令查看useradd命令属于哪个RPM包:rootlocalhost#whereis useradd#获得useradd命令的目录位置rootlocalhost#rpm qf/usr/sbin/useradd#查看所在RPM包执行结果为:shadow-utils-4.1.4.2-13.e16.x86_644.系统文件所属RPM
15、包查询4.2 用rpm命令管理RPM包 rpm命令的包依赖性查询功能用于查询指定RPM包的依赖关系。命令格式:rootlocalhost#rpm 选项 包名包全名 选项说明:-q 查询(query),查询指定包(包名)是否安装,如果已安装,则显示对应的包全名,否则提示指定的软件包未安装。-R 查询已安装的指定RPM包的依赖性,不能单独使用,与q选项配合使用。-p 查询未安装的指定RPM包的依赖性,不能单独使用,与qR选项配 合使用。114.2.3 RPM包的安装、卸载与查询 参数说明:包名或包全名 如果查询已安装包,则用包名;如果查询未安装的包,则用包全名。例4.11 可用如下命令查询已安装软
16、件包yum的依赖关系:rootlocalhost#rpm qR yum 例4.12 可用如下命令查询未安装软件包zip的依赖关系:rootlocalhost#rpm-qpR/mnt/cdrom/Packages/zip-3.0-1.el6.x86_64.rpm5.查询RPM包的依赖性4.2 用rpm命令管理RPM包 rpm命令的包校验功能用于判断系统文件是否被修改过,如果软件包中的文件被修改过,那么将显示被修改的文件和修改细节,如果文件未被修改,则不显示任何信息。命令格式:rootlocalhost#rpm V 已安装的包名 选项说明:-V 校验指定RPM包中的文件(verify)124.2.
17、3 RPM包的安装、卸载与查询 例4.13 可用如下命令依次校验yum包和httpd包中的文件是否被修改过:rootlocalhost#rpm V yum#校验yum包 因为yum包中的文件没有被修改,所以不显示任何信息。rootlocalhostrpm V httpd#校验httpd包 显示如下信息:S.5.T.c/etc/httpd/conf/httpd.conf 该信息中的前八位“S.5.T”对应八位修改代号,如果相应内容被修改,则对应位显示相应的修改代号,否则显示“.”符号。该例中,该文件的大小、内容、修改时间发生了变化。6.RPM包校验4.2 用rpm命令管理RPM包 修改代号的详细
18、说明如表4.1所示.134.2.3 RPM包的安装、卸载与查询 该信息中的第十位是标志文件类型的类型代码,文件类型代码及其含义如表4.2所示。此例中,文件的类型是配置文件(c)。6.RPM包校验表4.1 RPM包修改代号及其含义对照表表4.1 RPM包文件类型代号及其含义对照表文件类型代号说明c配置文件(config file)d普通文件(documentation)g“鬼”文件(ghost file),很少见,就是该文件不应该被这个RPM包包含l授权文件(license file)r描述文件(read me)修改代号说明S文件大小的修改M文件类型或文件权限(rwx)的修改5文件MD5校验和是
19、否改变(可以看做是文件内容的修改)。D设备L文件路径是否改变U文件的属主(所有者)是否改变G文件的属组是否改变T文件的修改时间是否改变4.2 用rpm命令管理RPM包 当系统文件受到损坏后,可以从RPM包中提取对应文件来进行修复。命令格式:rootlocalhost#rpm2cpio 包全名|cpio idv .文件绝对路径 选项说明:rpm2cpio:将RPM包转换为cpio格式;cpio:是一个标准工具,用于创建软件档案文件或从档案文件中提取文件。-div:是命令cpio的命令选项,有关cpio命令及选项请查阅相关技术文档,这里不再详述。注意:“.”和“文件绝对路径”之间无空格!例4.14
20、 假设/bin/ls文件被损坏,请从Linux安装文件的映像文件的RPM包中抽取相应文件予以修复。第一步:查看/bin/ls文件所在的RPM包:rootlocalhost#rpm qf/bin/ls#查看/bin/ls的RPM包文件名144.2.3 RPM包的安装、卸载与查询执行结果为:coreutils-8.4-31.el6.x86_64第二步:设置/bin/ls文件被破坏的实验环境(移动到/root/temp目录):rootlocalhost#mv/bin/ls/root/temp#移除/bin/ls文件第三步:验证/bin/ls文件的确不存在:rootlocalhost#dir/bin/
21、ls#确认/bin/ls文件不存在,注意ls命令失效第四步:将/bin/ls所在RPM软件包转换为cpio格式,并从中提取/bin/ls文件到当前目录:rootlocalhost#rpm2cpio/mnt/cdrom/Packanges/coreutils-8.4-19.e16.i686.rpm|cpio idv./bin/ls#从RPM包中抽取/bin/ls文件的到当前目录第五步:将当前目录下的/bin/ls拷贝到/bin目录:rootlocalhost#cd binrootlocalhost#cp ls/bin/7.从RPM包中提取文件4.3 用yum命令管理RPM包 第一步:运行下列se
22、tup命令:rootlocalhost#setup 进入图像界面窗口,选择“网络配置”,分别配置IP地址、子网掩码、网关、DNS地址,然后保存退出。第二步:执行下列命令启动网卡:rootlocalhost#vi/etc/sysconfig/network-scripts/ifcfg-eth0 修改ONBOOT的值为“yes”154.3.1 yum源简介 第三步:运行下列命令,重启网络服务,使配置生效:rootlocalhost#sevice network restart 第四步:检查与互联网的连通性,如:rootlocalhost#ping 2网络yum源简介 通常,在/etc/yum.re
23、pos.d目录下有四个yum源。执行如下命令可以看到这些yum源:rootlocalhost#cd/etc/yum.repos.d/rootlocalhost yum.repos.d#lsCentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo 上述四个yum源中,最常用的是网络yum源(Centos-Base.repo)和本地yum源(Centos-Media.repo),默认情况下网络yum源生效,在没有网络的环境下,使用本地yum源。1.配置IP地址 yum是为了解决RPM命令中的依赖性问题而产生
24、的一种在线管理工具,用yum命令安装RPM包,会自动在线监测特定RPM依赖关系,并自动完成安装过程。4.3 用yum命令管理RPM包 下面以网络yum源为例,对yum源做如下解释:rootlocalhost yum.repos.d#vi Centos-Base.repo#显示yum源信息 执行结果如下:basename=CentOS-$releasever-Basemirrorlist=http:/mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os#baseurl=http:/mirror.centos.org/c
25、entos/$releasever/os/$basearch/gpgcheck=1gpgkey=file:/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6164.3.1 yum源简介 对Centos-Base.repo文件解释如下:base yum源(软件包)所在的容器名称,一定要用一对方括号括起来,可以修改为别的任意名称。name 容器说明信息,也可以任意修改。mirrorlist 站点镜像,它与baseurl有其中一个生效即可,此例中站点镜像生效。baseurl yum源服务器地址,默认是官方yum源服务器地址,它与mirrorlist有其中一个可用即可,此例中,
26、该地址被注释掉了,所以该地址无效。enabled 容器是否生效,值为“1”表示生效,值为“0”表示无效,缺省值为“1”。gpgcheck 数字证书是否生效,“1”表示生效,“0”表示不生效。gpgkey 数字证书的公钥文件保存位置。1.配置IP地址4.3 用yum命令管理RPM包 yum list 命令用来在远程服务器上查询可用的(可安装的或可升级的)软件包。命令格式:rootlocalhost#yum list 参数 参数说明:无参数时 在远程服务器上查询所有可用的软件包列表。update 在远程服务器上查询所有可更新的软件包。installed 在远程服务器上查询所有可安装的软件包。软件包
27、名 在远程服务器上查询所指定的软件包。174.3.2 yum常用命令 该命令在执行过程中,如果出现站点不可用的提示信息,需要对Centos-Base.repo文件进行修改,选择使用实际服务器地址还是使用镜像站点。1.常用查询命令 1)yum list 命令小知识:包名和包全名是RPM命令中的概念,在yum命令中不存在包名和包全名的概念。例4.15 可用如下命令查询远程服务器上所有可更新的软件包:rootlocalhost#yum list update 例4.16 可用如下命令查询本机上所有已安装的软件包:rootlocalhost#yum list installed4.3 用yum命令管理
28、RPM包 yum search 命令用来在服务器上查找所有与关键字相关的所有软件包。命令格式:rootlocalhost#yum search 关键字 例4.17 可用如下命令在远程服务器上查询与“zip”关键字相关软件包信息:rootlocalhost#yum search zip184.3.2 yum常用命令 3)yum info 命令 yum info命令在远程服务器上查询指定包的信息。命令格式:rootlocalhost#yum info 参数 参数说明:软件包 在远处服务器上查询指定包的信息。installed 在远处服务器上查询已安装的软件包的信息。例4.18 可用如下命令在远程服
29、务器上查询shadow包的基本信息:rootlocalhost#yum info shadow1.常用查询命令 2)yum search 命令4.3 用yum命令管理RPM包 yum命令可用于安装、升级、卸载软件包。命令格式:rootlocalhoset#yum y install|update|upgrade|remove 包名 选项说明:-y 出现询问时,自动回答:yes,缺省为由用户选择回答。参数说明:install 安装软件包upgrade 只升级软件包,不升级系统软件和系统内核。remove 表示卸载软件包,连所依赖的包全部卸载,极有可能影响到其它命令包的正常使用,所以必须慎用rem
30、ove!194.3.2 yum常用命令 update 升级软件包,如果缺省包名,表示升级所有的软件包,且同时升级系统软件和系统内核。升级Linux内核需要对Linux重新进行配置后才能启用,所以不建议远程升级Linux软件包,那样会导致无法远程登录Linux系统,而且有可能直接导致服务崩溃,所以一定慎用update参数,使用时切记指定要升级的软件包!例4.19 可用如下命令安装C语言编译器。rootlocalhost#yum y install gcc2.安装、升级、卸载软件包小知识:Linux软件包采用最小安装原则,最好不使用yum卸载命令,以免系统其它功能受到影响,甚至瘫痪。4.3 用yu
31、m命令管理RPM包 第一步:设置虚拟机,将相应的光盘镜像“放入光驱”,选中“已连接”复选框,单击“确定”按钮,然后执行如下光盘挂载命令:rootlocalhost#mount/dev/sr0 /mnt/cdrom204.3.4 光盘yum源搭建 第二步:使网络yum源无效。将/etc/yum.repos.d目录下的CentOS-Base.repo、CentOS-Debuginfo.repo和CentOS-Vault.repo三个文件全部失效(也就是只让本地源CentOS-Media.repo生效)。方法一:yum源文件中有个参数“enabled”,其值为“1”时表示该yam源有效,其值为“0”
32、时表示该yum源失效。所以可以通过将上述三个yum源的“enabled”值设为“0”使其失效。方法二:也可以通过改名使其失效,因为yum命令执行操作时,只把以“.repo”为后缀名的文件作为yum源,所以只要修改上述三个文件的后缀名也可以使其失效(注意:任务完成后要还原文件名)。inux系统在默认情况下是以网络yum源作为默认yum源的,但是在网络条件不太好的环境下,从网络安装RPM包会浪费很多时间,甚至会因网络超时而失败。这时我们就要考虑使用光盘yum源,即本地yum源。下面详细说明光盘yum源的搭建方法:4.3 用yum命令管理RPM包214.3.4 光盘yum源搭建 第三步:使光盘yum
33、源生效 通过vi命令进入CentOS-Media.repo文件,修改光盘地址参数“baseurl”的值为光盘实际物理地址如(file:/mnt/cdrom),同时注释掉其它无效地址,修改参数“enabled”的值为“1”:rootlocalhost yum.repos.d#vi CentOS.Media.repo#编辑该文件Baseurl=file:/mnt/cdrom#修改文件地址为本地光盘挂载地址#file:/media/cdrom/#注释掉无效的光盘地址Enabled=1#设置光盘yum源有效执行如下改名操作rootlocalhost#cd/etc/yum.repos.drootloca
34、lhost yum.repos.d#mv CentOS-Base.repo CentOS-Base-repo.txtrootlocalhost yum.repos.d#mv CentOS-Debuginfo.repo CentOS.Debugino.repo.txtrootlocalhost yum.repos.d#mv CentOS.Vault.repo CentOS.Vault.repo.txt4.3 用yum命令管理RPM包224.3.4 光盘yum源搭建第四步:验证光盘yum源生效rootlocalhost yum.repos.d#yum list 可以看到yum源的标记都变成了c6-
35、media,说明我们使用的是本地光盘yum源。小知识:任何配置文件的注释,必须顶格注释,“#”前不能有任何空格,否则会报错。在上节内容中,我们使用的是网络yum源,yum源的标记是base。通过查看网络yum源(CentOS-Base.repo)和光盘yum源(CentOS-Media.repo)的文件内容,可以看到这两个yum源的容器依次是“base”,“c6-media”。4.4 源码包管理234.4.1 源码包与RPM包的区别 源码包是开源的,任何人都可以对它进行修改,也正因为这个原因,源码包安装速度更慢,而且容易报错,对于新手来说非常难于解决安装过程中出现的错误,而RPM包是经过编译的
36、,用户不能看到其源代码,虽然不利于人们优化软件包,但其安装简单,在安装过程中出现的问题也较易解决。源码包和RPM包不仅在概念上有区别,在安装位置上和管理上也有区别。表4.3 RPM包默认安装目录表RPM包默认安装目录包默认安装目录说说 明明/etc/配置文件安装目录/usr/bin/可执行命令安装目录/usr/lib/程序使用的函数库保存位置/usr/share/doc/基本的软件使用手册保存位置/usr/share/man/帮助文件保存位置 RPM包的安装位置都是由系统提前规划好的(虽然安装位置可以改变,但我们不建议修改安装目录),RPM包的默认安装位置如表4.3所示,而源码包的安装位置是由
37、用户手工指定,一般的安装位置是“/usr/local/具体软件名/”。4.4 源码包管理244.4.1 源码包与RPM包的区别 由于RPM包和源码包的安装位置不同,使得它们在管理方面也不同:RPM软件包安装在Linux默认的安装目录,可以让Linux准确定位文件所在目录,所以可以通过服务管理命令(service)命令来管理.例如,我们启动Apache服务可以使用如下命令:rootlocalhost#/etc/rc/d/init.d/httpd start#绝对路径法或rootlocalhost#service httpd start#service命令法小知识:/usr目录不是用户目录!而是L
38、inux的系统资源目录(Unix System Resource)!Service命令会自动到RPM包的默认安装目录中搜索相应的命令(如 httpd),所以不需要用绝对地址。然而,Service并不知道源码包的安装位置(如/usr/local),所以service命令不能管理源码包,所以要启动源码包安装的程序,必须使用绝对路径。假如,Apache服务的源码包安装在了/usr/local/apache2/bin/,则必须用如下方法启动该服务:rootlocalhost#/usr/local/apache2/bin/apachectl start 注意:service命令是Red系列Linux专用
39、命令,其它系列Linux不一定能用!4.4 源码包管理254.4.2 源码包安装过程 如果在向外提供服务时,对程序执行效率有更高要求,就建议采用源码包安装,因为源码包在安装时已经编译,执行率更高。1源码包的安装过程 第一步:安装C语言编译器。用rpm q gcc 命令检查C语言编译器gcc是否被安装,如果没有安装,可用yum y install gcc命令安装。第二步:下载源码包。以安装Apache为例,在http:/ httpd-2.2.9.tar.gz 解压缩后,/root目录下就会出现一个解压缩目录/httpd-2.2.9。第五步:进入解压缩目录(不能省略):rootlocalhost#
40、cd httpd-2.2.9rootlocalhost httpd-2.2.9#ls 可以看到有两个大写的文件名INSTALL(安装说明)和README(使用说明),用户可以查看这两个文件的相关帮助信息。第六步:软件配置与检测。定义需要的功能选项,检测系统环境是否符合安装要求,把定义好的功能选项和检测系统环境的信息都写入Makfile文件,用于后续编译。4.4 源码包管理264.4.2 源码包安装过程 软件配置与检测命令configure有很多参数,这里我们只用prefix参数指定Apache的安装目录/usr/local/apache2,其中的“apache2”是用户自定义目录。rootlo
41、calhost httpd-2.2.9#./configure-prefix=/usr/local/apache2 第七步:编译。调用make命令编译源码包:rootlocalhost httpd-2.2.9#make 这时makefile文件就生成了,即把定义好的功能选项和检测系统环境的信息就都写入Makfile文件了。注意:make命令和configure命令并没有真正向安装目录写入数据,也就是说/usr/local目录下并没有apache2目录,如果这时安装过程报错,无法安装下去,用make clean命令即可彻底清除残余文件。第八步:编译安装。真正向/usr/local/apache2
42、目录写入文件:rootlocalhost httpd-2.2.9#make install 这样源码包就安装结束了。注意:在安装过程中可能会出现error、warning或no等等之类的报错,不过,只要如果安装过程没有停止,则可以不理睬,但是如果安装过程停下来了,则需要处理安装错误。2源码包的卸载 源码包的卸载不需要命令直接删除安装目录即可,而且不会留下任何残留文件。例4.21 可用如下命令删除已安装的apache程序:rootlocalhost#rm fr/usr/local/apache24.5 脚本安装包安装过程274.4.2 源码包安装过程 Linux系统中软件包主要有RPM安装包和源
43、代码包两种类型,而脚本安装包不是一种独立的软件包类型,它是人们基于源码包编写的自动安装脚本,所以脚本安装包的安装过程非常简单,只要执行安装脚本、进行简单的参数定义,就可以自动完成安装过程,非常类似于Windows系统下的软件安装。Webmin是一个基于Web的Linux系统管理界面,是Linux的图形化界面管理工具,对于不熟悉Linux系统命令的初学者,可以利用Webmin方便地对Linux系统进行基本管理维护。Webmin工具可以从http:/ src#tar zxvf webmin-1.700.tar.gz 第三步:进入解压缩目录/webmin-1.700:rootlocalhost src#cd/webmin-1.700 第四步:执行setup.sh脚本程序,进行安装:rootlocalhost webmin-1.700#./setup.sh#使用绝对路径 注意:Webmin的安装需要perl支持,需要先使用yum y install perl命令安装perl程序。安装结束后,我们就可以利用Webmin来对Linux系统进行管理和维护了。28