软件安装方式
了解软件的安装方式
软件包分类
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 ./命令绝对路径
注:本文为博主查阅多方资料整理而成,如有侵权请留言联系博主删除。
学习新东西,不要忘记复习旧知识,这样你才能更好!