【Linux】③软件包的管理,rpm命令,yum命令

改动时间2020-03-12 19:30:23

软件包分类

  • 源码包
    脚本安装包(不常用,不多)
    1
    2
    3
    4
    5
    6
    7
    8
    9
    * 优点
    + 开源,C语言编写,可以查看修改源码
    + 自由选择所需功能
    + 编译安装,效率高
    + 卸载方便,把安装位置直接删除
    * 缺点
    + 安装步骤多
    + 编译时间长
    + 安装时出错,新手解决不了
  • 二进制包
    也称RPM包,系统默认包
    1
    2
    3
    4
    5
    6
    7
    8
    * 优点
    + 包的管理系统简单,几个命令就可以安装,升级,查询,卸载
    + 安装速度比源码包快得多
    * 缺点
    + 不能看到源码
    + 功能选择没有源码包灵活
    + 依赖性
    + 例如a让我先装b,b让我先装c 所以装包顺序 c b a 卸载与装包相反

rpm命令管理

RPM包管理-rpm命令管理

包命名与依赖性

命名规则

RPM包命名规则
httpd-2.2.15-18.e16.centos.1.i686.rpm

  • httpd软件包的名称
  • 2.2.15软件版本
  • 18软件发布的次数
  • e16.centos适合Linux的平台
  • i686适合的硬件平台
  • rpmrpm包的扩展名

依赖性

RPM包依赖性

  • 树形依赖a->b->c 安装顺序 c b c 卸载与装包相反
  • 环形依赖a->b->c->a 安装一条命令安装a b c即可解决
  • 模块依赖模块依赖查询网址www.rpmfind.net
    在这里插入图片描述

安装升级与卸载

包全名与包名

  • 包全名
    • 没有安装的包
    • 挂载目录的Packages目录下的文件名称
    • 需指定路径
  • 包名
    • 安装过的包
    • 搜索/var/lib/rpm下的数据库
    • 无需指定路径

RPM安装

rpm -ivh 包全名

  • -iinstall 安装
  • -vverbose 显示详细信息
  • -hhash 显示进度
    在这里插入图片描述
    需要一步步来安装依赖,比较麻烦推荐yum安装

RPM包升级

rpm -Uvh 包全名

卸载

rpm -e 包名

查询

是否安装

  • rpm -q 包名查询是否安装 -qquery查询
    在这里插入图片描述
  • rpm -qa查询所有安装的RPM包,管道符查询
    在这里插入图片描述

包信息

  • rpm -qi 包名查询包信息 -iinformation信息
    在这里插入图片描述
  • rpm -qip 包全名了解即可,查询未安装的包信息 -ppackage
    在这里插入图片描述

包安装位置

  • rpm -ql 包名查询包安装位置 -llist列表
    在这里插入图片描述
  • rpm -qlp 包全名查询为安装包的安装位置,要安装到哪儿
    在这里插入图片描述

包依赖

  • rpm -qR 包名查询软件包的依赖性 -Rrequires需要
    在这里插入图片描述
  • rpm -qRp 包全名查询未安装软件包的依赖性
    在这里插入图片描述

属于哪个包

  • rpm -qf 系统文件名查询系统文件属于哪个RPM包
    在这里插入图片描述

检验和文件提取

校验

RPM包校验

  • rpm -V 已安装包名检验指定RPM包中的文件 -Vverify验证
  1. S文件大小是否改变
  2. M文件类型或权限(rwx)被改变
  3. 5文件MD5校验是否改变(也可以看成内容是否被改变)
  4. D代码是否改变
  5. L路径是否改变
  6. U所有者是否改变
  7. G所属组是否改变
  8. T文件修改时间是否改变
    在这里插入图片描述

文件提取

RPM包中文件提取

跳过学习

yum命令管理

RPM包管理-yum在线管理

IP配置和网络yum源

IP配置配置联网
设置Linux之CentOS7的网络的两种方式动态IP+静态IP
网络yum源不需要进行配置
在这里插入图片描述
vi /etc/yum.repos.d/CentOS-Base.repo可以进行查看配置

yum命令

查询

  • yum list查询所有软件包
  • yum search 包名查询指定包
    在这里插入图片描述

安装

  • yum -y install 包名安装指定软件包 install安装 -y自动回答yes

例如,安装gcc
在这里插入图片描述
在这里插入图片描述

升级

  • yum -y update 包名升级指定软件包 update升级

卸载

不推荐使用

软件组管理

  • yum grouplist列出所有可用软件组列表
  • yum groupinstall "软件组名"安装软件组
  • yum groupremove "软件组名"卸载指定软件组

光盘yum源

  • 除了CentOS-Media.repo,全部都把后缀名.repo改为.repo.1使其失效
    在这里插入图片描述
  • 进入vi CentOS-Media.repo
    在这里插入图片描述
    • 把16行改为baseurl=file:///mnt/cdrom这里的/mnt/cdrom为你的挂载目录
    • 把17,18行注释
    • 把20行0改为1表示开启
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      # CentOS-Media.repo
      #
      # This repo can be used with mounted DVD media, verify the mount point for
      # CentOS-7. You can use this repo and yum to install items directly off the
      # DVD ISO that we release.
      #
      # To use this repo, put in your DVD and use it with the other repos too:
      # yum --enablerepo=c7-media [command]
      #
      # or for ONLY the media repo, do this:
      #
      # yum --disablerepo=\* --enablerepo=c7-media [command]
      # 这个内容为`yum list`显示第三列内容
      [c7-media]
      name=CentOS-$releasever - Media
      # file表示文件系统中查找 而不是联网的http
      # file:/ 后面跟的是挂载路径
      baseurl=file:///mnt/cdrom/
      # file:///media/cdrom/
      # file:///media/cdrecorder/
      gpgcheck=1
      enabled=1
      gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

源码包管理

源码包和RPM包区别

安装前:概念区别
安装后:安装位置区别

  • RPM包默认安装位置
    1
    2
    3
    4
    5
    `/etc/`配置文件路径
    `/usr/bin/`可执行命令路径
    `/usr/lib/`程序所使用的函数库路径
    `/usr/share/doc/`基本的软件使用手册路径
    `/usr/share/man/`帮助文件路径
  • 源码包安装位置
    一般是在/usr/local/软件名/
  • 位置不同的影响
    1
    2
    3
    4
    5
    6
    RPM包可以使用系统管理命令service来管理
    例如:重启网卡
    绝对路径启动:/etc/rc.d/init.d/network restart
    简化启动:service network restart
    源码包没有安装默认路径中,只能使用绝对路径来启动
    例如启动Apache:/usr/local/apache2/bin/apachectl start

源码包安装过程

安装准备

安装注意事项

  • 源代码保存位置/usr/local/src/
  • 软件安装位置/usr/local/
  • 安装过程出错
    • 安装过程停止
    • 并且出现error warning no的提示

安装过程

演示用,但不能成功安装,因为我这里会出错
在这里插入图片描述

  • 把文件传入到/root/目录下
    在这里插入图片描述
  • 解压tar -zxvf httpd-2.4.41.tar.gz
    在这里插入图片描述
  • 进入解压目录
    在这里插入图片描述
  • 进行安装,vi INSTALL查看安装说明
    在这里插入图片描述
    • 安装所需
    • ./configure --prefix=/usr/local/apache2定义安装目录
    • 检测系统环境是否符合安装要求,这里需要安装gcc,联网安装yum -y install gcc
    • 定义好的功能和检测的系统环境写入Makefile文件
    • 执行make进行编译
    • make install安装
    • /usr/local/apache2/bin/apachectl start启动

卸载

直接删除/usr/local/下的包就行了