软件测试-Linux05

352 阅读6分钟

第六章 软件包的安装

一、软件包的分类

1、软件包分类:源码包和二进制包

2、源码包:开放的源程序包

2.1、可自由选择所需要的功能

2.2、软件是编译安装,所以更加是适合自己的系统,更加稳定也下奥率更高

2.3、卸载方便

缺点:	
1、安装过程步骤多,容易出现拼写错误

2、编译时间比二进制长

3、一旦报错,新手不容易掌握(建议使用谷歌)

3、二进制包

3.1、二进制包分类

1、DPKG包:是由Debian Linux编译安装 ,主要是ubuntu

2、RPM:是由Red Hat 主要是Centos、

3.2、特点

1、RPM:安装简单、速度快。但是不能看看到源代码、也不能选择所需要的功能

2、软件包选择建议:

源码包:如果服务是给大量客户端提供服务的,源码包使用效率更高

RPM:少量域用户使用,或者本地使用,建议RPM,因为管理方便

依赖性:

3.3、RPM包依赖

1、树形依赖:
2、环形依赖:
3、模块依赖:rpm -ivh mysql??????????.rpm	.so.2点so数字结尾是函数=库

www.rpmfind.net (可以用yum在线安装)

二、RPM包手工安装(yum不需要手动解决依赖性)

1、命名规则:

httpd-2.2.15-15.e16.centos.1.i686.rpm (httpd软件包名。

2.2.15软版本,15发布次数,e16软件发行商,i686都可以安装)

包全名:如果操作的是未安装软件安装包,则使用包全名,而且需要绝对路径

包名:如果操作的是已经安装的安装包,则使用包名即可,系统会生成RPM包的数据库ls /var/lib/rpm

而且可以再任何路径下使用

3.2、安装

1、rpm -ivh 包全名
2--prefiix:安装路径(建议不指定安装路径,默认位置就可以):rpm -ivh 包全名 --prefix=/usr/local/httpd
        1、默认位置是系统的习惯位置
        2、RPM包管理系统内是有卸载命令的(数据库记录安装位置)
3--nodeps:不检测依赖性安装:(没啥用,但是在卸载的时候会用上)	
4--force:不管是否安装,都重新安装一遍
5--test:测试安装,不会实际安装,只是检测一下依赖性

3.3、RPM包安装的

1、启动
    1、service httpd restart(用netstat 查看80端口	可以直接访问主机的Ip,前提是setup关闭防火墙)
    2、/etc/rc.d/init.d/httpd	start/stop(标准方法)
    cd /etc/rc.d/init.d就有httpd这个文件
2、网页位置	/var/www/html下	默认是index.html

3、配置文件	/etc/httpd/conf/httpd.conf

3.3、RPM升级

1、rpm -Uvh 包全名(升级+安装)

2、rpm -Fvh 包全名(必须有旧版本,才能升级)

3.4、rpm卸载

1、rpm -e 包名(初学者最好不用用yum卸载)
2、rpm --nodeps 

3.5、查询

1、查询软件包是否安装
        rpm -q 包名(-q	query查询  :查询的是客户端	yum查询的是服务端)
查询系统中所有已安装的包
    rpm -=qa(rpm -qa | wc -l总数)	
    (rpm -qa | grep httpd搜索阿帕奇)	
2、查询软件包的详细信息()
        rpm -qi 包名
    查询未安装的软件包的信息
        rpm -qip 包全名
*3、查询软件包中的文件列表
        rpm -ql 包名
查询未安装的软件包以及打算安装的位置
        rpm -qlp 包全名
4、查询系统文件属于哪个软件包
        rpm -qf 系统文件名
5、查询包的依赖包(用处比较少)
	rpm -qR 包全名

3.6、验证--MDS助手

1、基本命令

1、rpm -Va  验证本机已安装的所有软件包
2、rpm -V 已安装的包名	校验指定rpm包的文件
3、rpm -Vf 系统文件名  	检验某个系统文件是否被修改
	S 	M	 5	D	L	U	G	

3.7、数据证书

如果rpm包首先就被修改过,那么3.6校验就不可能通过。所以需要首先安装数据证书
必须先自己写一个用户手册
1、数据证书位置
        ll /mnt/cdrom/RPM-KEY-Centos-6

3.8、RPM中文件的提取(一般修改文件内容,一般需要备份,

例子一般是加一个.bak文件:cp /etc/a.txt /etc/a.txt.bak)

1、cpio -o[vcB] > [文件|设备]	#备份(不建议实用这种方法做备份还原,但是rpm包只能用cpio进行提取)
   cpio -i			#还原

2、rpm2cpio 包全名 | cpio -idv .文件绝对路径
    将rpm软件包格式修改为cpio    
    /mnt/cdrom/packages/httpd???????????

三、rpm在线安装(yum安装)

1、yum源文件解析 ls /etc/yum.repos.d/

2.、搭建本地光盘yum源

1、挂载光盘
    mkdir /mnt/cdrom
    mount /dev/cdrom /mnt/cdrom/
2、修改其他地方的文件扩展名
    cd /etc/yum.repos.d
    mv Centos-Base.repo Centes-Base.repo.bak
    mv Centos-Debuginfo.repo Centos-Debuginfo.repo.bak
    mv Centos-Vault.repo CentOS-Vault.repo.bak
3、修改光盘
    vim CentOS-Media.repo

    baseur=file:///mnt/cdrom
    #file:///media/cdrom
    #file:///media/cdrecoder/ 注释
    gpcheck=1
    enable=1

yum list 查看是否搭建成功

3、yum命令

1、查询yum源的包
    yum list
    yum search (找关键字)
    例子:yum search ifconfig(redhat7.0 之后需要手动安装才能实用这个命令)
    yum info查看详细信息
2、安装
    yum -y install 包名
    例子:yum -y install gcc     !!!!一定 要安装		
3、升级
    yum -y update 包名(不加包名升级所有软件包)
4、卸载
    yum remove 包名

4、yum组管理命令

4.1、yum grouplist查询可用的软件包组

4.2、yum -y groupinstall  安装(用来装语言包)

四、源码包安装

1、常见问题

1、建议:如果是给大量的用户访问,建议实用源码包,效率更高

如果少量客户访问,建议实用rpm,因为rpm包简单

2、源码包来源:rpm光盘中直接包含,源码包的,源码包是网站下载,

3、源码包和rpm的安装位置不一样,源码包一般安装
在/usr/local(大部分基本上需要指定位置),rpm是默认位置
配置文件:/usr/local/apache2/conf/httpd.conf
网页文件:/usr/local/apache2/htdocs
日志文件:/usr/local/apache2/logs
启动方法:/usr/local/apache2/bin/apachectl start	

4、无法同时安装两个apache,可以修改端口,但是大量客户访问的服务器不建议更改端口
如果服务是给内部人员实用,因为更加安全

2、安装过程

1、下载软件包
2、解压
3、进入解压目录
4、./configure 	--prefix= /usr/local/apache2/	
编译前准备(1、检测安装是否负荷需求2、指定需要的功能选项

3、功能选项写入makefile)

源码包报错:
    1、安装过程必须停止、
    2、是否出现error、none、no、warning(实用的C语言安装,所以必须安装gcc)
如果报错,首先需要make clean

5make 	编译
6make install 编译安装

3、删除,直接删除安装目录就行

(ps aux)

4、打入补丁

4.1补丁的产生

diff 选项 old new比较新旧文件的不同

4.2、打入补丁

patch -pn < 补丁文件(n为数字,可以从1一直试到4)