Linux操作系统基础------8.Linux系统中的软件管理

2021/7/30 7:37:59

本文主要是介绍Linux操作系统基础------8.Linux系统中的软件管理,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Linux系统中的软件管理

  • 前言
  • 一、Linux中软件包的类型
    • 1.DEB
    • 2.RPM
    • 3.z2|gz|xz
  • 二、软件包的名称
  • 三、rmp命令管理软件包
  • 四、本地软件仓库的搭建
    • 1.系统软件仓库的作用
    • 2.搭建方法
  • 五、dnf 软件管理命令
    • 1.安装包管理
    • 2.下载安装包
  • 六、网络软件仓库搭建
    • 搭建方法
    • 1.利用镜像搭建本地软件仓库
    • 2.安装共享软件
    • 3.启用共享软件Apache
    • 4.建立共享目录,挂载镜像到共享目录
    • 5.在远程主机中访问资源并书写repo文件
  • 七、第三方软件仓库的搭建方法

前言

一、Linux中软件包的类型

1.DEB

适用于UBlinux和DEBlinux系统
DEB是Debian软件包格式的文件扩展名。DEB包在Linux操作系统中类似于Windows中的软件包(exe)。

2.RPM

RPM(Red Hat Package Manager),是基于Red hat的Linux Distribution的包管理系统,同时也指rpm包本身,RPM用于rpm包的管理(诸如安装、卸载、升级等),像Mandrake和SuSE这些基于RPM的发行版通常有自己特定的rpm包,如果混合安装可能不会正常工作,而对于第三方发行的rpm包一般都能在基于RPM的系统上正常安装。

3.z2|gz|xz

Linux下的一种常见压缩包类型,分为两种:
1.解压缩后需要源码安装,#ntfs-3g_ntfsprogs-2017.3.23.tgz
2.绿色软件,解压缩后可可直接使用,#Firefox-latest-x86_64.tar.bz2
注意:在rhel8中只能使用绿色软件,源码编译软件和rpm软件

二、软件包的名称

 [dhcp-server] -  [4.3.6-30]. [el8].            [x86_64].   [rpm]
    1软件名称        2软件版本 3软件的授权协议版本     4软件架构    5软件类型后缀

三、rmp命令管理软件包

rpm -ivh  ##安装参数组合 -i install -v verbose -h hash
     -a    ##所有
     -f    ##文件
     -p    ##软件包
     -q    ##查询
     -l    ##软件安装文件列表
     -e    ##卸载
     -c    ##配置文件
     -d    ##说明
  --info   ##软件信息
  --force  ##强制
  --nodeps ##忽略依赖性(依赖性:安装/卸载a之前必须安装/卸载a依赖的所有软件)
  --script ##查询软件在安装或卸载过程中的运行脚本
     -Kv   ##检测软件md5校验码
     -V    ##检测已安装软件在系统中的文件被修改信

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

四、本地软件仓库的搭建

1.系统软件仓库的作用

在系统中对软件进行管理,有些安装包在安装过程中需要解决依赖性才能进行安装,rpm命令是不能解决依赖关系的。如果需要软件在安装过程中自动解决依赖关系(自动搜索到需要的安装包进行安装,需要搭建系统软件仓库)。

2.搭建方法

(1)加载安装系统时使用的安装镜像
在真实主机中挂载安装镜像:
建立/iso用来存放安装镜像(可看作一个U盘),此安装镜像中有官方提供的大部分软件;
建立/westos目录,将镜像挂载到该目录下,利用/westos目录来读取镜像,此时/westos可作为本地软件仓库。
具体操作如下:
在这里插入图片描述在这里插入图片描述
(2)编写软件仓库文件
软件仓库搭建完成后需要编写软件源指向的配置文件使得系统知晓。

/etc/yum.repos.d/           ##软件源指向文件配置目录 (默认为空目录,不空需要清空)

/etc/yum.repos.d/xxxx.repo  ##软件仓库指向文件
                            ## 在此目录中不能有无法访问的源指向,文件名后缀必须为.repo

在这里插入图片描述编写完成后用curl命令检测,无报错时说明软件源可以进行访问。
在这里插入图片描述

(3)检测是否搭建成功

软件仓库指向文件编写完成后,先清空已经加载的仓库缓存信息,然后用dnf repolist 或 dnf list all 进行查看,或者安装某个软件(如gcc编辑器,gcc在安装时需要解决依赖性),具体操作如下:
在这里插入图片描述
在这里插入图片描述

(4)开机后自动挂载
上述挂载方法在系统关机后会被自动卸载,而重新启动后又不会自动挂载。
为了解决此问题,需要在系统开机自运行脚本(/etc/rc.d/rc.local)中添加挂载命令以实现安装镜像的开机自动挂载;同时需要添加执行权限(x)给 /etc/rc.d/rc.local

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

五、dnf 软件管理命令

1.安装包管理

dnf  repolist                 ##列出软件仓库信息
dnf  clean  all               ##清除系统中已经加载的仓库缓存信息
dnf  list  all                ##列出所有软件
dnf  list  available          ##列出未安装的软件
dnf  list  installed          ##列出已安装的软件
dnf  install                  ##安装软件
dnf  remove                   ##卸载软件
dnf  reinstall                ##重新安装软件
dnf  search                   ##搜索软件
dnf  whatprovides             ##查找包含指定文件的软件
dnf  history                  ##dnf执行历史
dnf  history  info            ##dnf执行历史的详细信息
dnf  group  list              ##列出软件组
dnf  group  list  --installed ##列出已安装的软件组
dnf  group  list  -available  ##列出未安装的软件组
dnf  group  list  --hidde     ##列出隐藏的软件组
dnf  group  install           ##安装软件组
dnf  group  info              ##查看软件组信息

2.下载安装包

yumdownloader                                     下载软件包到本机指定位置
yumdownloader  httpd                              下载仓库中指定软件的安装包到当前目录
yumdownloader  '软件名'  --destdir=/mnt            下载仓库中指定软件的安装包至指定目录(/mnt)
yumdownloader  '软件名'  --destdir=/mnt  --resolve 下载仓库中指定软件安装包和软件依赖性至指定目录(/mnt)

六、网络软件仓库搭建

我们在一台主机上面搭建好的软件仓库,在另一台主机上是无法访问的。在企业中,需要维护的系统数量庞大,当我们需要在每个系统安装软件管理软件时,可在每个系统中各自搭建软件仓库,但这样管理会浪费资源。因此,为了节省重复资源,需要把大家都需要使用的资源共享到互联网中,这样大家就可以利用网络访问资源。

搭建方法

1.利用镜像搭建本地软件仓库

2.安装共享软件

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

安装共享服务软件Apache的软件包httpd
在这里插入图片描述安装完成后访问主机IP可看到Apache页面
在这里插入图片描述

3.启用共享软件Apache

systemctl stop firewalld               关闭火墙
systemctl disable firewalld
systemctl enable --now httpd     直接开启软件并设置开机自启

关闭火墙开启httpd服务

在这里插入图片描述

4.建立共享目录,挂载镜像到共享目录

mkdir /var/www/html/rehl8.2
umount /xxxxxx.iso
mount /xxxxxxx.iso  /var/www/html/westos_8 当镜像在系统中存在
vim /etc/rc.d/rc.local    在开机时自动挂
mount /xxxx.iso   /var/www/html/westos_8
chmod 755 /etc/rc.d/rc.local

检测httpd服务启用后在此服务配置文件目录中新建一个目录rehl8.2,并将安装镜像挂载至此;
永久挂载:同搭建本地软件仓库一样,开机时自动挂载。

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

5.在远程主机中访问资源并书写repo文件

vim /etc/yum.repos.d/westos.repo

在软件仓库指向文件中修改软件源地址
在这里插入图片描述
对于共享主机,软件源寻址方式有 file:// 和 http://;对于远程主机,软件源寻址方式只有 http://

七、第三方软件仓库的搭建方法

可以使用dnf命令管理第三方软件,并使第三方软件在网络中共享

1.建立共享目录,把所有的第三方软件存放到/var/www/html/software中

 mkdir /var/www/html/software
/var/www/html/software中只能存在rpm类型的文件,压缩包是不能使用dnf管理的

在软件源指向文件/etc/yum.repos.d/xxxx.repo中指定第三方共享源,此时仍无法安装Linuxqq,这是因为该第三方软件仓库与官方的AppStream、BaseOS不同,dnf会将官方软件仓库中所有软件包的元数据预加载到/var/cache/dnf这个仓库信息目录中,生成repodata数据目录(repod.xml文件),执行dnf命令时,dnf不会去真正搜索这个软件包,而是扫描repodata数据目录中的这些元数据。 而我们建立的第三方软件仓库是没有对应的repodata数据目录的,因此无法所搜到相应的软件包元信息,不能安装第三方软件。
2.采集第三方软件数据生成repodate目录

  dnf install createrepo -y 安装采集工具
  cd /var/www/html/software 进入到共享目录
  createrepo . 对共享目录中进行扫描生成repodate数据目录

4.在测试主机中指定第三方共享源

 vim /etc/yum.repos.d/westos.repo

在这里插入图片描述



这篇关于Linux操作系统基础------8.Linux系统中的软件管理的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程