软件安装方式

了解软件的安装方式

软件包分类

1)	# 源码软件包
2)	# 二进制软件包
3)	# 附带安装程序的软件包
4)	# 绿色免安装版(不是很常见~)

源码软件包安装过程

安装原理
1)# 自定义软件的功能{前提:懂源码、能写源码}
2)# 安装编译工具,使用编译工具编译源代码
3)# 编译后产生的二进制放到指定位置,就相当于是安装完成了
例:# 源码安装httpd
1)下载源码包
	$ wget https://mirrors.bfsu.edu.cn/apache//httpd/httpd-2.4.43.tar.gz
2)安装前的检查和记录
	# README  软件的使用手册
 	# INSTALL  软件的安装手册
 	# 检查功能:
		1 记录软件即将安装的位置
		2 检查编译所需编译器是否安装(gcc gcc-c++ make cmake)
		3 检查软件的依赖关系
			# 依赖关系存放目录在 httpd -2.2.9/srclib目录下
		4 声明开启该软件的哪些功能(- -enable-*** )--enable-ssl加密
		5 指定和其他软件之间的关联(- -with-**)
		6 最终将上述信息汇总生成Makefile文件
	$ tar -xf httpd-2.4.43.tar.gz 
	$ cd httpd-2.4.43/
	$ vim INSTALL 
	$ ./configure --prefix=/usr/local/apache2
3)编译产生二进制文件,并安装
	$ make && make install
4) 源码软件包的删除
	源码包httpd的相关路径
	主目录:/usr/local/apache2
	配置文件:/usr/local/apache2/conf
	网页文件:/usr/local/apache2/htdocs
	日志文件:/usr/local/apache2/logs
# 直接删除安装时{--prefix }指定的目录即可完全删除

源码和二进制软件包的比较

# 源码软件包
	# 优点:
		# 开源软件,如果有足够的能力,可以修改源代码;
		# 可以自由选择所需的功能;
		# 软件是编译安装,所以更加适合自己的系统,更加稳定、效率更高;
		# 卸载方便;
	# 缺点:
		# 安装过程步骤较多,尤其安装较大的软件集合时(如LAMP搭建),容易出现拼写错误;
		# 编译过程时间较长,安装比二进制安装时间长;
		# 因为是编译安装,安装过程中一旦报错新手很难解决;
# 二进制软件包
	# 优点:
		# 包管理系统简单,只通过几个命令就可以实现包的安装、升级、查询和卸载;
		# 安装速度比源码包安装快的多;
	# 缺点:
		# 经过编译,不再可以看到源代码;
		# 功能选择不如源码包灵活;
		# 依赖性;

二进制软件包安装-rpm命令

1、rpm软件包的命名规范

# 格式:软件名-主版本-修订次数-适用系统-硬件平台.后缀
	# tree-1.6.0-10.el7.x86_64.rpm
# 注意:
	# 包全名:安装之前一般用包全名操作管理{tree-1.6.0-10.el7.x86_64.rpm}
	# 包	名:安装后的一般使用包名操作管理{tree}

2、rpm软件包的依赖关系

# 软件包的依赖对象有两种,第一种是明确告诉你依赖哪一个软件,第二种只会告诉要依赖的文件名叫什么(函数文件)
# 查询指定文件属于哪个软件包:http://www.rpmfind.net/

3、软件的默认安装路径

软件安装相关目录 目录内保存内容
/etc/ 配置文件保存位置
/usr/bin/ 软件命令保存位置
/usr/lib/ 函数文件保存位置
/usr/share/doc/ 使用手册保存位置
/usr/share/man/ 帮助文档保存位置

4、 rpm软件包的相关管理命令

1) 安装命令
$ rpm  -ivh  软件包全名
	 -i	# 安装一个新的rpm软件包
	 -v	# 显示安装过程中的详细信息
	 -h	# 以“#”号显示安装的进度
	 --test	# 测试安装,不真正安装,检测软件依赖关系
	 --force # 强制安装某个已安装了的软件(覆盖安装,当软件文件丢失时,可强制安装修复)
2) 卸载命令
$ rpm 	-e   软件名 
	# -e	卸载软件(注意卸载顺序)
3) 升级命令
$ rpm -Uvh 软件包全名
	-U	# 升级安装,若没安装,则直接安装,若安装有旧版本,则升级安装
	-F	# 升级安装,若没安装,则不安装,必须有旧版本,才进行升级安装
	--nodeps	# 升级安装时不检测依赖关系
4) 查询已经安装的软件信息
$ rpm  -q[子选项]  软件名
	-q # 查看指定软件是否安装
	-qa # 查看系统中所有已安装的软件
	-qi	# 查看指定软件的详细信息(已安装的)
	-ql	# 查看指定软件安装的目录和文件列表
	-qR	# 查看指定软件的依赖关系
5)查询未安装的软件包信息
$ rpm  -qp[子选项]  软件包全名
	-qpi # 查看指定未安装软件的详细信息
	-qpl # 查看指定未安装软件的默认安装位置(预览)
	-qpR # 查看指定未安装软件的依赖关系
6)查询文件或目录属于哪个软件包
$ rpm -qf 文件或者目录
	# which ifconfig(查看命令的存放位置)
	# rpm -qf /usr/sbin/ficonfig

二进制安装包-yum管理命令

1、yum源分类

1)光盘yum源
2)局域网yum源
3)互联网yum源

2、光盘yum源

1)将光盘挂载到指定的目录下
	# /etc/fstab 添加挂载
2) 修改本地yum源配置文件
	# 配置文件位置:/etc/yum.repos.d
	# CentOS-Base.repo 网络yum源配置文件
	#  CentOS-Media.repo 比本地yum配置文件
	vim  CentOS-Media.repo
	[c7-media]
	name=CentOS-$releasever - Media
	baseurl=file:///media	#此处填写光盘的挂载目录
	gpgcheck=0			#关闭安装时的软件校验功能(可不修改)
	enabled=1				#启动本地yum源开关 
	gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
3) 测试yum是否可用
	$ yum clean all		#清空原有的yum缓存数据
	$ yum makecache		#根据新的配置文件建立新的缓存数据

3、局域网yum源

4、互联网yum源

$ wget # 资源下载命令
# 常用互联网yum源:
	# 网易:http://mirrors.163.com/
	# 阿里:https://developer.aliyun.com/mirror/
$ cd /etc/yum.repos.d/
$ mkdir back
$ mv * back
$ wget http://mirrors.163.com/ .help/CentOS7-Base-163.repo

5、通过yum安装图形化

1)挂载带有图形化的光盘镜像
2)通过yum为纯字符系统,安装图形化桌面
	$ yum  -y  groupinstall  "X Window System" # 桌面组件
	$ yum  -y  groupinstall  "GNOME Desktop" # 安装工具
	$ yum  -y  groupinstall  "Graphical Administration Tools" # 支持中文
	$ startx 	#启动图形界面
3) 设置永久启动
	$ vim /etc/inittab	改成5 # 永久启动

二进制软件包的效验

1、安装前的效验

# 光盘镜像文件在发布的时候就已经集成了数字证书了(公钥),每当我们安装软件时,都会将软件当中的证书(私钥)取出来和公钥做校验,只要校验能通过则代表软件没有问题。
1)安装数字证书
	# 挂载光盘,并进入到挂载目录下查看内容
	# 安装证书
	$ rpm --import RPM-GPG-KEY-CentOS-7
	$ rpm -qa | grep gpg-pubkey
2) 开启数字证书校验-yum
	# cd /etc/yum.repos.d/
	# vim CentOS-Media.repo
	# gpgcheck=1 # 开启数字效验

2、软件安装后的校验

# 用rpm命令对某些软件进行校验,校验结果可以反映该软件哪些内容在安装后被修改。
$ rpm -V 软件名 #若安装后无任何修改,则此处什么都不显示
$ rpm -Vf 文件名(某软件的文件) # 显示结果分析
	# S.5....T.        c       /etc/httpd/conf/httpd.conf
	# 第一部分为验证结果;第二部分为文件类型;第三部分为文件位置
	验证结果具体的信息
	# s	文件大小是否改变
	# M	权限是否被改变
	# 5	文件的MD5校验和是否改变(即文件内容)
	# D	主从设备号是否改变(/dev/)
	# L	文件路径是否改变
	# U	文件的属主是否改变
	# G	文件的属组是否改变
	# T	文件的修改时间是否改变	
	文件类型具体分类
	# c	配置文件
	# d	普通文件
   # g	“ghost”文件,很少见,该文件不应在RPM包中
	# l	授权文件
	# r	描述文件

cpio命令

# cpio命令主要是用来建立或者还原备份的工具,cpio命令可以复制文件到压缩包,或者从压缩包中导出文件
1)cpio的备份模式(压缩)
$ cpio -ovcB > [文件|设备]
	# -o:进入copy-out模式(压缩)
	# -v:显示过程	
	# -c:使用portable format存储方式
	# -B:设定输入输出块为512bytes	
2)cpio的还原模式(解压)
$ cpio -idvcu < [cpio文件]
	# -i:进入copy-in模式(解压)
	# -d:恢复到指定位置(视压缩方式恢复)
	# -v:显示过程
	# -c:使用portable format存储方式
	# -u:替换所有文件,无提示
3)利用绝对路径备份&恢复
	# cpio备份: 
		$ find /etc | cpio -ocvB > /root/etc.cpio
		#利用find 找出/etc 然后备份到/root下
	# cpio还原:
		$ cpio -idvcu < /root/etc.cpio
		# 注:由于备份时备份的路径使用的是绝对路径,所有恢复时会按照绝对路径恢复回去,所以不会在/root下生成文件
4)利用相对路径备份&恢复
	# cpio备份:
		$ cd /etc		#切换到/etc下
		$ find  ./  |  cpio  -ocvB > /root/etc.cpio
		#以相对路径方式进行备份
	# cpio恢复:
		$ cd /root			#切换到/root
		$ mkdir test		#创建恢复目录
		$ cd  test			#进入恢复目录
		$ cpio  -idvcu  < /root/etc.cpio
		#恢复以相对路径备份的etc.cpio文件,内容会被恢复到/root/test/目录下。
4) 提取软件包文件修复
	# rpm2cpio 命令可以提取指定RPM软件包中的文件,实现文件恢复
	$ rpm2cpio  包全名 | cpio -idv ./命令绝对路径
posted @ 2020-04-08 09:44  候你已久  阅读(196)  评论(0)    收藏  举报