Linux学习—8—软件管理

Linux软件管理


一.软件包的类型

  • DEB   适用于ubuntuUBlinux DEBlinux
  • RPM  适用于redhat centOS fc
  • bz2|gz|xz
    1. 源码编译软件
      例:ntfs-3g_ntfsprogs-2017.3.23.tgz 需要源码安装编译,当解压后出现“configure”则表示其为源码编译软件
    2. 绿色软件
      例:Firefox-latest-x86_64.tar.bz2 直接可用,可用rmp命令安装,也可以解压后目录直接运行

注意:在rhel8中只能使用绿色软件,源码编译软件和rpm软件

二.软件包的名称结构

[ ntfs-3g ]-[ 2017.3.23-11 ].[ el8 ].x[ 86_64 ].[ rpm]
 1      2     3   4   5

  • 1 软件名称

  • 2 软件版本号

  • 3 软件的授权协议版本(修正版本)

  • 4 软件架构

  • 5 软件类型后缀

三.rpm命令管理软件包

RPM软件管理程序:是以一种数据库记录的方式来将你所需要的软件安装到你的Linux系统的一套软件管理机制。

RPM优点

  • RPM内包含已经编译过的的程序与配置文件等数据,用户不需要重新编译
  • RPM在被安装之前,会先检查系统的硬盘容量、操作系统版本等,可避免文件被错误安装
  • RPM文件本身提供软件版本信息、依赖属性检查、软件用途说明、软件所含文件信息,便于了解软件
  • RPM管理的方式使用数据库记录RPM文件相关参数,便于升级、删除、查询与验证

RPM默认安装路径

  • /etc   一些配置文件放置的目录     例:/etc/crontab
  • /usr/bin  一些可执行文件
  • /usr/lib  一些程序使用的动态函数库
  • /usr/share/doc   一些基本软件使用手册与说明文件
  • /usr/share/man  一些man page 文件

RPM安装(install)

rpm -ivh package_name
rpm -Uvh package_name

  • -U : upgrade 升级

  • -i : install 安装程序

  • -v :verbose 查看更详细的安装信息

  • -h :hash 显示安装进度

  • -e  卸载

  • - -force  强制安装软件 (使用时机:直接覆盖已安装文件,重复安装时,谨慎使用!)

  • - -nodeps   忽略依赖性,安装软件 (使用时机:当软件发生属性依赖问题而无法安装,但执意安装时,可能造成软件无法正常使用。)

RPM查询(query)

rpm

  • -q  仅查询,后面接的软件名称是否有安装
  • -qa  列出已安装在本机Linux系统上所有软件名称
  • -qi  列出该软件的详细信息(information)
  • –info  显示软件详细信息
  • -ql  列出该软件所有文件与目录所在完整文件名(list)
  • -qc   列出该软件所有配置文件 (即 找出在 /etc/下面的文件名)
  • -qd    列出该软件所有说明文件 (即 找出与man有关的文件)
  • -qR  列出与该软件所有依赖软件所含有的文件 (Required 依赖)
  • -qf  有后面接的文件名,找出该文件属于哪一个已安装的软件
  • -qp [icdlR]  未安装的某个文件名称 —— 查看RPM文件
  • - -scripts  查询软件在安装或卸载过程中需要执行的脚本文件

RPM验证(Verify)

rpm

  • -V  后面跟软件名,若该软件所含的文件被修改过才会显示修改信息
  • -Kv  检测软件md5校验码
    Linux学习—8—软件管理

四.RPM属性依赖的解决方式:YUM在线升级

YUM机制:RPM文件内部会记录依赖性数据,将这些依赖属性的软件先建立一份清单列表,在有安装需求的时候,先到这个列表去找,同时与系统内已安装的软件比较,再将没有安装的依赖软件,一次性安装 —— 为了重复利用既有软件的功能

软件仓库(repository)或 软件源:软件所在的本机或者网络上的位置与软件相关性的列表数据(软件开发商(CentOS等)将发布的软件放置到YUM服务器内,分析软件依赖属性问题并将软件内的记录信息记录下来,再将这些信息分析记录成软件相关性的列表数据)

本地软件仓库搭建

搭建方法:

  1. 在系统中加载安装系统时使用的安装镜像
    并挂载到指定位置:
    mount /mnt/hgfs/share/rhel-8.0-x86_64-dvd.iso   /long/
  2. 编写软件仓库文件
    /etc/yum.repos.d/ 软件源指向文件配置目录
    注:在此目录中不能有无法访问的源指向
    vim /etc/yum.repos.d/long.repo 编辑软件仓库指向文件
    Linux学习—8—软件管理

网络软件仓库搭建

  在企业中,我们维护的系统数量庞大,当我们需要在每个系统安装软件管理软件时可以在每个系统中各自搭建软件仓库但是这样会浪费大量的资源。

  为了节省这部分重复的资源,需要把大家都要使用的资源共享到互联网中,这样大家就可以立用网络访问资源,不需要在每一台主机中独立建立软件资源了。

搭建方法:

  1. 利用镜像文件搭建本地软件仓库
    dnf repolist 查看是否搭建好
    Linux学习—8—软件管理

  2. 安装共享软件

  • 共享方式 —— http:// 超文本传输协议
  • 提供此协议的软件 —— Apache (阿帕奇 网页服软件 Apache HTTP Server )
  • 软件包名称 —— httpd
  • 网络共享位置 —— /var/www/html/
  • 安装命令 —— dnf install httpd -y
    Linux学习—8—软件管理
  1. 启用共享软件Apache
  • systemctl disable --now firewalld  关闭防火墙
  • systemctl enable --now httpd  开启http
  1. 建立共享目录
  • mkdir /var/www/html/long
  1. 挂载镜像到共享目录
  • mount /dev/cdrom /var/www/html/long  当使用光驱读取镜像
  • mount /****.iso /var/www/html/long   当镜像在系统中存在
  1. 编辑.repo文件并访问测试
    Linux学习—8—软件管理
    也可以同时使用阿里云的镜像站
    Linux学习—8—软件管理
    测试:
    Linux学习—8—软件管理
    Linux学习—8—软件管理

第三方软件仓库搭建

可以使用dnf命令管理第三方软件
并使第三方软件在网络*享
搭建方法:

  1. 建立共享目录
  • mkdir /var/www/html/software
  1. 把所有第三方软件存放到software目录中
  • cp * /var/www/html/software
    Linux学习—8—软件管理
  1. 采集第三方软件数据生成repodata目录
  • dnf install createrepo -y 安装采集工具
    Linux学习—8—软件管理
  • cd /var/www/html/software
  • createrepo -v /var/www/html/software 对共享目录扫描生成repodata数据目录
  1. 在测试主机westos_linux中指定第三方共享源
  • vim /etc/yum.repos.d/long.repo
    Linux学习—8—软件管理
  1. 检测
    Linux学习—8—软件管理

五.dnf 软件管理命令

dnf是新一代的rpm包管理器,取代了Yum包管理器
dnf 命令

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