Linux系统中的软件管理

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命令管理软件包

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检测已安装软件在系统中的文件被修改信息

1)查询软件:
在这里插入图片描述
查询所有软件:
在这里插入图片描述
查询软件包:
在这里插入图片描述
查询软件所安装的文件:
在这里插入图片描述
查询该文件属于哪个安装包:
在这里插入图片描述
查询软件包所安装的文件:
在这里插入图片描述
查询该软件的配置文件:
在这里插入图片描述
查看该软件的帮助文件:
在这里插入图片描述
2)查询软件信息:
在这里插入图片描述
查询软件信息:
在这里插入图片描述
3)强制安装已安装过的软件:
在这里插入图片描述
4)检测软件md5校验码:在这里插入图片描述
检测已安装软件在系统中的文件被修改信息:
在这里插入图片描述
注意:

  • 当下载软件时,软件是有依赖性的,可以使用上面的–nodeps参数去忽略依赖性,然后进行下载,但是下载完成后,软件是无法使用的,所以必须要解决依赖性的问题
  • 依赖性是指下载a软件需要下载b软件,下载b软件需要下载c软件,下载c软件需要下载a软件,形成一个死循环,如下图所示error后面显示的就是软件的依赖性:
    在这里插入图片描述
  • 要解决依赖性,需要dnf命令,在企业八之前也叫yum,在企业八中,既有yum也有dnf命令,但实际上查看 /bin/yum 里面的内容是个链接,直接链接到dnf,所以他们本质上还是一样的,如下图:
    在这里插入图片描述

4 本地软件仓库的搭建

4.1 系统软件仓库的作用

  • 在系统中对软件进行管理
  • rpm命令是不能解决依赖关系的,如果需要软件在安装过程中自动解决依赖关系,需要搭建系统软件仓库
  • 当有网络时,可以进入阿里云或官方去找软件仓库,以阿里云为例可以www.aliyun.com–>开放者–>镜像战–>centos–>在里面找需要的文件,然后按照其做法即可
  • 当无网络时,可以采用镜像文件搭建本地仓库,注意使用镜像文件时系统版本和镜像文件的版本必须相同
  • 当镜像文件版本和系统版本不同时,可以选择去官网找到匹配的镜像文件,也可以设置一个和已有镜像版本相同的虚拟机进行实验
  • 可以使用u盘,右击选择第一个直接挂载;也可以建立一个目录,把它挂载到该目录下,比如 mkdir /lhy ; mount 镜像文件 /lhy/
  • 进入镜像文件,ls查看,其中appstream是应用软件、baseos是基础组件
  • 搭建软件仓库必须在该目录下cd /etc/yum.repos.d/

4.2 搭建方法

1)在系统中加载安装系统时使用的安装镜像:
在这里插入图片描述
进入镜像文件查看:
在这里插入图片描述
2)编写软件仓库文件:

命令含义
/etc/yum.repos.d/软件源指向文件配置目录,在此目录中不能有无法访问的源指向
vim /etc/yum.repos.d/xxxx.repo软件仓库指向文件,xxxx处文件名自定义

在这里插入图片描述
3)编辑文件内容:
在这里插入图片描述
注意:

  • name=AppStream,存放软件的文件名
  • baseurl=要访问的路径,即 file:// (写完该地址后,可以输入 curl +地址,查看地址是否可以访问,不能访问时会显示不能打开,可以时没有报错;或者复制到浏览器也查看)
    在这里插入图片描述
  • gpgcheck=0 表示在发布系统时,要签订协议,如果系统安装完成后,用户安装了未经授权的第三方软件,出现问题后概不负责;如何看软件是否是授权过的,若该值为1,表示安装软件时会做授权检测,没有授权的软件会被拒绝;若该值为0,表示不会去检测该软件是否经过授权
  • enabled=1,表示仓库启用,=0表示不启用(默认的值是1,也就是说该值可以不写)
  • 可以一次在文件中配置多个仓库,方法一样

3)把之前读取过的信息清理dnf clean all ,实际上清理的是/var/cache/dnf文件:
在这里插入图片描述
4)使用dnf从软件仓库里安装gcc软件:
在这里插入图片描述
删除该软件:
在这里插入图片描述5)启动开机镜像挂载。手动挂载后,系统重启挂载就会消失。所以可以把挂载命令写道开机自运行脚本里面,即编辑 vim /etc/rc.d/rc.local ,把挂载指令复制到该文件,然后 sh /etc/rc.d/rc.local 执行该文件。最后必须给该文件一个可执行权限,即chmod +x /etc/rc.d/rc.local,这样就可以启动开机镜像挂载:
在这里插入图片描述
文件为编辑时的内容:
在这里插入图片描述

5 dnf 软件管理命令

5.1 安装包管理

dnf命令的参数含义
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
historydnf执行历史
history infodnf执行历史详细信息。后面加history里面显示的数字,还可以 dnf info 软件名
group list列出软件组
group list --installed列出已安装软件组
group list --available列出未安装软件组
group list --hidden列出隐藏软件案组
group install安装软件组 。后面加一个组名,用双引号引起来,会安装一个组的所有组件
group info查看软件组信息。后面加组的名称
group remove卸载组

1)列出仓库信息:
在这里插入图片描述
清理系统中已经加载的仓库缓存信息:
在这里插入图片描述
列出所有软件:
在这里插入图片描述
2)安装软件:
在这里插入图片描述
安装已安装的软件,显示不同再次安装:
在这里插入图片描述
重新安装:
在这里插入图片描述
删除该软件并不交互:
在这里插入图片描述
3)搜索:
在这里插入图片描述
搜索包含文件的软件包:
在这里插入图片描述
4)dnf执行历史:
在这里插入图片描述
dnf执行历史第三条的详细信息:
在这里插入图片描述

5)列出软件组:
在这里插入图片描述
列出已安装软件组:
在这里插入图片描述
列出隐藏软件组:
在这里插入图片描述
查看软件组信息:
在这里插入图片描述

5.1 下载安装包

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

命令参数
yumdownloader载软件包到本机指定位置
yumdownloader httpd下载仓库中指定软件的安装包到当前目录
yumdownloader httpd --destdir=/mnt下载仓库中指定软件的安装包到指定/mnt目录
yumdownloader httpd --destdir=/mnt --resolve下载仓库中指定软件安装包和软件依赖性到/mnt目录

注意:前面两种方法下载是无法将软件的依赖性也下载的,最后一种方法可以
1)查找yumdownloader命令软件包:
在这里插入图片描述
下载该软件包:
在这里插入图片描述
2)下载仓库中指定软件的安装包到当前目录:
在这里插入图片描述
下载仓库中指定软件的安装包到指定/mnt目录:
在这里插入图片描述
下载仓库中指定软件安装包和软件依赖性到/mnt目录:
在这里插入图片描述

6 网络软件仓库的搭建

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

  • 共享方式:http:// 超文本传输协议
  • 提供此协议的软件: Apache
  • 软件包名称:httpd
  • 共享位置:/var/www/html
  • 安装命令:在westos_node1: dnf install httpd -y

在这里插入图片描述
3)启用共享软件Apache,使用下面前两条任意一个命令关闭防火墙,然后打开httpd,该服务开了的效果是,可以通过网页的形式来访问这台主机:
在这里插入图片描述
在这里插入图片描述
4)建立共享目录,并非把整个系统共享出去,而是共享特定目录下的文件:
在这里插入图片描述
5)挂载镜像到共享目录:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
6)在远程主机中访问资源并书写repo文件:
在这里插入图片描述
在这里插入图片描述
7)开启镜像文件开机自动挂载:
在这里插入图片描述

在这里插入图片描述

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文件,里面存放数据,可以说生成这个文件就是软件仓库的标识,此时就可使用了
    在这里插入图片描述
    在这里插入图片描述
    4)在测试主机中指定第三方共享源
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值