RedHat Linux 8 软件管理

软件安装包格式类型

rpm

软件后缀为.rpm,redhat linux (suse centos redhat)
可以使用在红帽的Linux系统中,但是不能指定安装路径
RedHat Linux 8 软件管理
类似这种文件,是由官方提供的安装包,有认证可以直接使用

deb

后缀为.deb是Debain Linux提供的一种包封装格式,对于我们当前的红帽系统是不适用的

tar

可以指定安装路径

  • 绿色软件
    直接使用安装命令就可以完成安装程序,并且可以打开使用
    RedHat Linux 8 软件管理
    我们进入这个安装包,里面有一个README文件vim 进入查看内容,在How to Run描述里可以看到
    RedHat Linux 8 软件管理
    并且这个软件就在我们拆解开的目录包里,直接找到双击就可以运行
    RedHat Linux 8 软件管理
    这样的软件我们就成为绿色软件

  • 源码编译
    我们这里用ntfs-3g这个软件来看,这是U盘读取的软件
    RedHat Linux 8 软件管理
    可以看到这里面也存在README文件,我们来查看
    RedHat Linux 8 软件管理
    这里描述了安装的步骤,"./configure" 检测系统环境要先去看符不符合要求,然后才可以编译、安装
    RedHat Linux 8 软件管理
    检测的结果报错,是缺少acceptable C compiler这个环境,所以我们先去安装这个环境,这个安装我们在下面的yum软件仓库搭建会讲到,这里只看效果,安装完后再进行检测
    RedHat Linux 8 软件管理
    RedHat Linux 8 软件管理
    RedHat Linux 8 软件管理
    检测完后会多出一个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”
    RedHat Linux 8 软件管理
    注意:在linux 系统中的虚拟机执行 :“mount /xxx/xxxxxxx.iso /test”

完成挂载后,我们来演示参数现象

  • -ivh
    RedHat Linux 8 软件管理
  • -qa
    RedHat Linux 8 软件管理
    也可以用管道符过滤出我们刚安装的dhcp软件

RedHat Linux 8 软件管理

  • -e
    上面查看到安装的dhcp软件,我们可以用-e命令删除
    RedHat Linux 8 软件管理

  • -l
    RedHat Linux 8 软件管理

  • -p
    RedHat Linux 8 软件管理

  • –scripts
    这里我们用两个脚本来做实验
    RedHat Linux 8 软件管理
    可以看到A软件在安装是会添加用户并且设置用户id为0,0是我们超级用户的id,而且还会删除我们的 “/” 目录
    所以可以得到–scripts命令可以查看软件预安装的一个情况

  • –force
    强制安装可以应用于我们在某个rpm类型的软件有损坏无法使用使,我们使用来覆盖安装时文件回复使用
    RedHat Linux 8 软件管理
    可以看到第一遍我们安装时检测显示我们已经安装过了,所以我们加–force来强制安装

  • -nodeps
    RedHat Linux 8 软件管理
    在安装软件时有的软件是存在依赖性的,需要安装其他的软件后才可以安装,如果要跳过这个阻拦,-nodeps
    RedHat Linux 8 软件管理
    但是因为软件本身存在依赖性,所以即使安装了也是不能够使用的

  • -K
    检测软件,加参数v显示过程
    RedHat Linux 8 软件管理
    MD5显示OK,表示没有问题,然后我们篡改这个软件包再检测
    RedHat Linux 8 软件管理
    然后看到MD5显示的是BAD,就是软件包有问题不可用

软件包如何拆解

命令:rpm2cpio dhcp-4.2.5-68.el7_5.1.x86_64.rpm | cpio -id
因为软件包使用cpio方式压缩的,所以用来解压缩,参数-id,i表示input,d表示解压到当前目录
RedHat Linux 8 软件管理

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
    RedHat Linux 8 软件管理
    解释:
配置 说明
[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
RedHat Linux 8 软件管理
编辑配置文件里分别写AppSteam和BaseOS的配置,其他的内容类似
注意的是,命令yum在rhel8中被设置为了dnf的链接,所以可以用 “dnf clean all”

  • 完成配置后,我们再去安装软件就会自动去安装所有需要的依赖性然后安装软件
    RedHat Linux 8 软件管理

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
    RedHat Linux 8 软件管理
  • yum list
    yum list all 列出所有软件包
    RedHat Linux 8 软件管理
    yum list httpd
    RedHat Linux 8 软件管理
  • yum ropolist
    RedHat Linux 8 软件管理
  • yum info
    yum info dhcp-server
    RedHat Linux 8 软件管理
  • yum search
    搜索dhcp信息,会列出所有dhcp 的软件包
    RedHat Linux 8 软件管理

第三方软件仓库

操作步骤

  • 把所有rpm结尾的软件包存放到一个目录/software中
    RedHat Linux 8 软件管理

  • vim /etc/yum.repos.d/test.repo
    RedHat Linux 8 软件管理
    清空缓存:yum clean all / dnf clean all

  • createrepo -v /sorftware ##生成软件数据库存放软件属性
    RedHat Linux 8 软件管理

  • 完成后我们就可以安装第三方软件了,如果添加新的软件到第三方软件仓库里,那就需要重新执行createrepo -v /sorftware 命令,生成数据库

共享软件安装仓库