Linux系统中的软件管理

本文详细介绍了Linux系统中的软件包类型,如RPM和DEB,以及它们的安装与管理。重点讲解了RPM命令的使用,包括查询、安装、卸载和软件仓库的本地搭建,以及DNF软件管理工具的操作,如安装包管理、网络仓库的共享与第三方仓库的构建。
摘要由CSDN通过智能技术生成

1. Linux中软件包的类型

DEB ——适用于 UBlinux DEBlinux
RPM ——适用于 redhat centOS fadora
bz2/gz/xz ——有两种类型:需要源码安装需要编译;绿色软件,直接可用
注:
需要源码安装需要编译类的软件:先对相应的软件进行解压缩,解压后进入该文件生成的目录,可以看到有一个叫Read me 的文件,该文件中记录了该软件的安装方式
1)“./configure”:检测软件的安装环境
2)make
3)make install
4) make uninstall:卸载
绿色软件,直接可用类的软件:只需要 相对应的格式进行解压,解压完成后,会产生对应的脚本,直接去输入“./脚本名”,该软件就可以正常运行了
在rhel8中只能使用绿色软件,源码编译软件和rpm软件

2.软件包的名称结构

以dhcp-server软件为例:[dhcp-server]-[4.3.6-30].[el8].[x86_64].[rpm]

dhcp-server ——软件名称
4.3.6-30 ——软件版本
el8 ——软件的授权协议版本
x86_64 ——软件架构
rpm ——软件类型后缀

3.rpm命令管理软件包

-ivh ——安装参数组合 -i install -v verbose -h hash
-a 所有
-f ——文件;rpm -qf 文件, 查询某文件属于哪个安装包
-p ——软件包;在企业七之前的版本里,查询一个安装包时,前面要加p参数, rmp -pq 安装包,现在企业八里面,加不加p都可以
-q ——查询
-e ——卸载
-c ——查看某个软件的配置文件
-l ——软件安装文件列表,即软件安装完后,会产生什么样的文件
-d ——说明,查看帮助文件
- -info ——软件信息;该参数可以在前面写-i,或者在最后加上- -info
- -force ——软件安装一次后,想再安装一次,系统会提示,已经安装过不能再安装。当软件包里的文件丢失时,想要恢复它,可以使用该参数强制再安装一次
- -nodeps ——忽略依赖性
- -script ——查询软件在安装或卸载过程中的运行脚本,可以用于检测软件
-Kv ——检测软件md5校验码;使用该参数时,可以看到该软件md5校验玛为ok。篡改:比如说在该软件包里追加了一份文件,此时再用该参数去校验,会失败,表示软件被篡改,不属于原厂软件
-V ——检测已安装软件在系统中的文件被修改信息
在这里插入图片描述安装qq:
在这里插入图片描述启动成功:
在这里插入图片描述查询所有:
在这里插入图片描述查询QQ是否安装:
在这里插入图片描述查看该软件在系统中生成了什么文件:
在这里插入图片描述查询软件包所安装的文件:
在这里插入图片描述卸载:
在这里插入图片描述查询软件信息:
在这里插入图片描述查询软件在安装或卸载过程中的运行脚本:
在这里插入图片描述

4 本地软件仓库的搭建

4.1 系统软件仓库的作用

在系统中对软件进行管理

rpm命令是不能解决依赖关系的,如果需要软件在安装过程中自动解决依赖关系,需要搭建系统软件仓库

当有网络时,可以进入阿里云或官方去找软件仓库,以阿里云为例可以www.aliyun.com–>开放者–>镜像战–>centos–>在里面找需要的文件,然后按照其做法即可

当无网络时,可以采用镜像文件搭建本地仓库,注意使用镜像文件时系统版本和镜像文件的版本必须相同

当镜像文件版本和系统版本不同时,可以选择去官网找到匹配的镜像文件,也可以设置一个和已有镜像版本相同的虚拟机进行实验

可以使用u盘,右击选择第一个直接挂载;也可以建立一个目录,把它挂载到该目录下,比如 mkdir /westos; mount 镜像文件 /westos/

进入镜像文件,ls查看,其中appstream是应用软件、baseos是基础组件

搭建软件仓库必须在该目录下cd /etc/yum.repos.d/

4.2 搭建方法

编写软件仓库文件:

/etc/yum.repos.d/ ——软件源指向文件配置目录,在此目录中不能有无法访问的源指向
vim /etc/yum.repos.d/xxxx.repo ——软件仓库指向文件,xxxx处文件名自定义
进入镜像文件查看:
在这里插入图片描述
在这里插入图片描述
编辑文件内容:
在这里插入图片描述

在这里插入图片描述列出仓库信息:
在这里插入图片描述

在这里插入图片描述

注意:

name=AppStream,存放软件的文件名

baseurl=要访问的路径,即 file:// (写完该地址后,可以输入 curl +地址,查看地址是否可以访问,不能访问时会显示不能打开,可以时没有报错;或者复制到浏览器也查看)

gpgcheck=0 表示在发布系统时,要签订协议,如果系统安装完成后,用户安装了未经授权的第三方软件,出现问题后概不负责;如何看软件是否是授权过的,若该值为1,表示安装软件时会做授权检测,没有授权的软件会被拒绝;若该值为0,表示不会去检测该软件是否经过授权

enabled=1,表示仓库启用,=0表示不启用(默认的值是1,也就是说该值可以不写)

可以一次在文件中配置多个仓库,方法一样

5.dnf 软件管理命令

5.1 安装包管理

repolist ——列出仓库信息
clean all ——清除系统中已经加载的仓库缓存信息。清除的实际文件是/var/cache/dnf里的内容。删除的目的是为了让系统在识别的时后可以识别到新的源
list all ——列出所有软件
list available ——列出未安装软件
list installed ——列出已安装软件
install ——安装,安装和卸载时加-y参数可以避免互动
remove ——卸载
reinstall ——重新安装 。同rpm命令的安装一样也是安装过,再使用install安装会提示已安装,所以可以使用该命令
search ——搜索
whatprovides ——搜索包含文件的软件包。同rpm 查文件属于哪一个安装包是一样的 ,dnf whatprovides /bin/ls
history dnf——执行历史
history info dnf——执行历史详细信息。后面加history里面显示的数字,还可以 dnf info 软件名
group list ——列出软件组
group list --installed ——列出已安装软件组
group list --available ——列出未安装软件组
group list --hidden ——列出隐藏软件案组
group install ——安装软件组 。后面加一个组名,用双引号引起来,会安装一个组的所有组件
group info ——查看软件组信息。后面加组的名称
group remove ——卸载组

列出仓库信息:
在这里插入图片描述清理系统中已经加载的仓库缓存信息:
在这里插入图片描述列出所有软件:
在这里插入图片描述在这里插入图片描述

5.2 下载安装包

用dnf install 软件名 这种方式安装一个软件,安装完后,是没有软件包的。当不需要安装,只下载时,用该参数。查找yumdownloader命令软件包的位置等信息可以使用: dnf whatprovides */yumdownloader

yumdownloader ——载软件包到本机指定位置
yumdownloader httpd ——下载仓库中指定软件的安装包到当前目录
yumdownloader httpd --destdir=/mnt ——下载仓库中指定软件的安装包到指定/mnt目录
yumdownloader httpd --destdir=/mnt --resolve ——下载仓库中指定软件安装包和软件依赖性到/mnt目录
注:前面两种方法下载是无法将软件的依赖性也下载的,最后一种方法可以

6.网络软件仓库的搭建

在一台主机中已经搭建好软件仓库,在其他主机中是无法访问的。在企业中,我们维护的系统数量庞大,当我们需要在每个系统安装软件管理软件时,可以在每个系统中各自搭建软件仓库。但是这样管理软件会浪费大量的资源,如何节省这部分重复的资源。需要把大家都要使用的资源共享到互联网中,这样大家就可以利用网络访问资源,不需要在每一台主机中独立建立软件资源了。
1)利用镜像搭建本地软件仓库,见前面本地软件仓库搭建
2)安装共享软件,用于提供超文本传输协议,共享文件:

共享方式:http:// 超文本传输协议
提供此协议的软件: Apache
软件包名称:httpd
共享位置:/var/www/html
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

7.第三方软件仓库的搭建方法

之前建立的软件仓库是官方授权了的软件,现在第三方软件仓库是用来存放未授权过的软件。可以使用dnf命令管理第三方软件,并使第三方软件在网络中共享。注意,该仓库中只能存在rpm类型的文件,压缩包是不能使用dnf管理的
1)同本地仓库搭建一样,安装httpd,关火墙,开httpd协议

2)建立共享目录,把第三方软件到考到共享目录里,此时进入网页看到自己的软件。但它还不是一个软件仓库,需要进行数据采集

3)采集第三方软件数据生成repodate目录

安装采集工具:dnf install createrepo -y
进入到共享目录:cd /var/www/html/software
对共享目录中进行扫描生成repodate数据目录:createrepo -v /var/www/html/software
扫描完成后,查看,该目录下会生成一个 repodata文件,里面存放数据,可以说生成这个文件就是软件仓库的标识,此时就可使用了

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值