软件安装包格式类型
rpm
软件后缀为.rpm,redhat linux (suse centos redhat)
可以使用在红帽的Linux系统中,但是不能指定安装路径
类似这种文件,是由官方提供的安装包,有认证可以直接使用
deb
后缀为.deb是Debain Linux提供的一种包封装格式,对于我们当前的红帽系统是不适用的
tar
可以指定安装路径
-
绿色软件
直接使用安装命令就可以完成安装程序,并且可以打开使用
我们进入这个安装包,里面有一个README文件vim 进入查看内容,在How to Run描述里可以看到
并且这个软件就在我们拆解开的目录包里,直接找到双击就可以运行
这样的软件我们就成为绿色软件 -
源码编译
我们这里用ntfs-3g这个软件来看,这是U盘读取的软件
可以看到这里面也存在README文件,我们来查看
这里描述了安装的步骤,"./configure" 检测系统环境要先去看符不符合要求,然后才可以编译、安装
检测的结果报错,是缺少acceptable C compiler这个环境,所以我们先去安装这个环境,这个安装我们在下面的yum软件仓库搭建会讲到,这里只看效果,安装完后再进行检测
检测完后会多出一个Makefile文件,表明我们检测成功了,然后再执行上面安装步骤说的 “make” 命令,最后执行 “make install” 命令完成安装。
rpm软件包分析
我们找一个安装包来做解析,dhcp安装包,上面我们展示了在系统中显示为红色,并且是系统镜像带的
< dhcp >-<4.2.5-68>.<el7_5.1>.<x86_64>.< rpm >
< dhcp >:软件名称
<4.2.5-68>:软件版本
<el7_5.1>:软件授权
<x86_64>:软件多少位
< rpm >:软件后缀表示软件包是rpm类型的
管理rpm软件包时用rpm命令
rpm
| 参数 | 说明 |
|---|---|
| -ivh | 安装 |
| -v | 显示过程 |
| -h | hash 检测查看软件中的hash值是否有改变 |
| -i | install 安装 |
| -e | 卸载 |
| -q | 查看 |
| -a | #所有 |
| -qa | 查看所有安装过的软件 |
| -l | 列出安装然后在系统中生成的文件 |
| -p | 操作对象为软件包 |
| - -scripts | 查看软件在安装或卸载时在系统中执行的脚本 |
| - -force | 强制安装 |
| -nodeps | 忽略软件依赖性安装 |
| -K | 检测软件是否是原版软件 |
实验演示
首先我们将镜像重新挂载到我们新建立的目录上
- mkdir /test
- 在虚拟机光驱中添加系统匹配景象
- 挂载景象到/westos
在vm虚拟机中:“mount /dev/cdrom /test”
注意:在linux 系统中的虚拟机执行 :“mount /xxx/xxxxxxx.iso /test”
完成挂载后,我们来演示参数现象
- -ivh
- -qa
也可以用管道符过滤出我们刚安装的dhcp软件
-
-e
上面查看到安装的dhcp软件,我们可以用-e命令删除 -
-l
-
-p
-
–scripts
这里我们用两个脚本来做实验
可以看到A软件在安装是会添加用户并且设置用户id为0,0是我们超级用户的id,而且还会删除我们的 “/” 目录
所以可以得到–scripts命令可以查看软件预安装的一个情况 -
–force
强制安装可以应用于我们在某个rpm类型的软件有损坏无法使用使,我们使用来覆盖安装时文件回复使用
可以看到第一遍我们安装时检测显示我们已经安装过了,所以我们加–force来强制安装 -
-nodeps
在安装软件时有的软件是存在依赖性的,需要安装其他的软件后才可以安装,如果要跳过这个阻拦,-nodeps
但是因为软件本身存在依赖性,所以即使安装了也是不能够使用的 -
-K
检测软件,加参数v显示过程
MD5显示OK,表示没有问题,然后我们篡改这个软件包再检测
然后看到MD5显示的是BAD,就是软件包有问题不可用
软件包如何拆解
命令:rpm2cpio dhcp-4.2.5-68.el7_5.1.x86_64.rpm | cpio -id
因为软件包使用cpio方式压缩的,所以用来解压缩,参数-id,i表示input,d表示解压到当前目录
yum软件仓库
软件仓库搭建
因为rpm不能自动解决软件依赖关系
所以搭建yum仓库可以解决此问题
搭建软件仓库的步骤
- 得到与当前系统匹配的系统安装景象文件
用光驱载入镜像 - 建立系统安装景象挂载点:
mkdir /softwaresource - 挂载景象到景象挂载点:
linux系统中虚拟机
mount /rhel*-xxxxxx.xxxxxx.iso /softwaresource
Windows系统中虚拟机
mount /dev/cdrom /softwaresource - 配置系统访问软件路径(yum仓库指向文件)
切换路径 “cd /etc/yum.repos.d”
删除原本存在的所有文件 “rm -fr *”
在rhel7中:
vim test.repo
解释:
| 配置 | 说明 |
|---|---|
| [testrhel7] | #仓库名 |
| name=test rhel7 source | 仓库描述 |
| baseurl=file:///softwaresource | 资源路径 |
| gpgcheck=0\1 | 软件包授权检测开关,0表示关,1表示开 |
| gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release | 如果检测开关时1,软件包授权码路径 |
| enabled=1\0 | 仓库启用开关,0表示关,1表示开 |
完成后 “yum clean all”,重新加载
在rhel8中:
也是编辑vim test.repo
编辑配置文件里分别写AppSteam和BaseOS的配置,其他的内容类似
注意的是,命令yum在rhel8中被设置为了dnf的链接,所以可以用 “dnf clean all”
- 完成配置后,我们再去安装软件就会自动去安装所有需要的依赖性然后安装软件
yum命令
命令介绍
| 命令 | 说明 |
|---|---|
| yum install | 安装 |
| yum remove | 卸载 |
| yum reinstall | 重新安装 |
| yum list installed\available\all\软件名称 | 列出 |
| yum update | 更新 |
| yum repolist | 列出仓库信息 |
| yum history | 查看yum历史 |
| yum info | 查看软件包信息 |
| yum clean all | 清除yum缓存 |
| yum search | 根据软件信息搜索 |
| yum whatprovides | 根据软件包含文件搜索 |
| yum groups install | 组安装 |
| yum groups remove | 组卸载 |
| yum groups info | 组信息 |
实验演示
- yum install
上面安装httpd是演示的样子 - yum remove
- yum list
yum list all 列出所有软件包
yum list httpd - yum ropolist
- yum info
yum info dhcp-server - yum search
搜索dhcp信息,会列出所有dhcp 的软件包
第三方软件仓库
操作步骤
-
把所有rpm结尾的软件包存放到一个目录/software中
-
vim /etc/yum.repos.d/test.repo
清空缓存:yum clean all / dnf clean all -
createrepo -v /sorftware ##生成软件数据库存放软件属性
-
完成后我们就可以安装第三方软件了,如果添加新的软件到第三方软件仓库里,那就需要重新执行createrepo -v /sorftware 命令,生成数据库