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

Linux系统中的软件管理

前言

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

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

四、本地软件仓库的搭建

1.系统软件仓库的作用

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

2.搭建方法

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

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

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

Linux操作系统基础------8.Linux系统中的软件管理编写完成后用curl命令检测,无报错时说明软件源可以进行访问。
Linux操作系统基础------8.Linux系统中的软件管理

(3)检测是否搭建成功

软件仓库指向文件编写完成后,先清空已经加载的仓库缓存信息,然后用dnf repolist 或 dnf list all 进行查看,或者安装某个软件(如gcc编辑器,gcc在安装时需要解决依赖性),具体操作如下:
Linux操作系统基础------8.Linux系统中的软件管理
Linux操作系统基础------8.Linux系统中的软件管理

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

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

五、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
Linux操作系统基础------8.Linux系统中的软件管理安装完成后访问主机IP可看到Apache页面
Linux操作系统基础------8.Linux系统中的软件管理

3.启用共享软件Apache

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

关闭火墙开启httpd服务

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

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,并将安装镜像挂载至此;
永久挂载:同搭建本地软件仓库一样,开机时自动挂载。

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

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

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

在软件仓库指向文件中修改软件源地址
Linux操作系统基础------8.Linux系统中的软件管理
对于共享主机,软件源寻址方式有 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系统中的软件管理

上一篇:VDO虚拟数据优化 分层存储 Stratis 卷管理文件系统


下一篇:[Warning] Using a password on the command line interface can be insecure.