Linux软件包管理(RPM,YUM)

16-软件包管理(RMP命令管理)

源码包

  • 脚本安装

二进制包(RPM包,系统默认包)

RPM包命名规则

httpd-2-2-15-15.e16.centos.1.i686.rpm

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

RPM包依赖性(重要!)

  • 树形依赖:a->b->c

  • 环形依赖a->b->c->a

  • 模块依赖:模块依赖(查询网址www.rpmfind.net)

包名和包全名的使用

包全名:操作的包是没有安装的软件包时使用包全名(安装和升级时)

包名:操作已经安装的软件包时使用包名(是搜索/var/lib/rpm中的数据库)

RPM安装

  • rpm -i 安装
  • rpm -v 显示详细信息
  • rpm -h 显示进度
  • rpm -nodeps 不检查依赖性
  • rpm -U 升级
  • rpm -e 卸载
  • rpm -Uvh 包全名(常用的升级命令)
  • rpm -ivh 包全名 (常用的安装命令)

RPM查询方式

  • rpm -q 包名 查询包是否安装

  • rpm -qa 查询所有已安装的包

  • rpm -qi 查询未安装包信息

  • rpm -qp 查询未安装包信息

  • rpm -ql 查询未安装包列表

  • rpm -qf [系统文件名] 查询系统文件属于哪个软件包

  • -R 查询软件包依赖性

RPM校验

使用校验的方式来判断系统文件是否被修改

  • rpm -V [已安装的包名]

    Linux软件包管理(RPM,YUM)

    • S 文件大小改变

    • M文件类型或文件权限改变

    • 5 文件MD5校验和改变(文件内容改变)

    • D 设备的中,从代码改变

    • L文件路径改变

    • U文件的属主(所有者)改变

    • G文件属组改变

    • T文件修改时间改

    • c 配置文件

    • d 普通文档

    • g “鬼文件”(该文件不应该被这个RPM包包含)

    • l 授权文件

    • r 描述文件

RPM包文件提取

  • rpm2cpio 包全名 | \ cpio -idv.文件绝对路径

    • rpm2cpio 将rpm包转换为cpio格式的命令
    • cpio 是一个标准工具,它用于创建软件档案文件和从档案文件中提取文件
  • cpio 选项<[文件|设备]

    • -i 还原
    • -d 还原时自动新建目录
    • -v 显示还原过程

Linux软件包管理(RPM,YUM)

将 coreutils这个包转换成cpio格式,并将转换后的cpio内容提取到 ./bin/ls目录中

Linux软件包管理(RPM,YUM)

17-软件包管理(yum在线管理)

要保证可以连接到互联网上!或者使用本地光盘作为yum源。

centos 的网卡默认是不启动的

要改成ONBOOT="yes"来启动网卡w

网络yum源

网络yum源在/etc/yum.respos.d/CentOS-Base.repo

vim进入/etc/yum.respos.d/CentOS-Base.repo后

  • [base] 容器名称,一定要放在中括号内
  • name 容器说明,可以随便写
  • mirrorlist 镜像站点,可以注释
  • enablcd 此容器是否生效,如果不写或写成enable=1都是生效,写成enable=0就是不生效的
  • gpgcheck如果是1是指RPM的数字证书生效,如果是0则不生效
  • gpgkey数字证书的公钥文件保存位置。不用修改

yum 命令(查询,安装,升级,卸载)

  • yum list 查询所有可用软件包列表

  • yum search [关键字]

    yum中没有包全名这个概念

  • yum -y install 包名

    • install 安装

    • -y 自动回答yes

  • yum -y update 包名

    • 注意!如果不加包名会自动升级所有的文件,包括内核配置等,升级完内核配置需要本地进行配置,如果不配置服务器是打不开的!!!!!
  • yum -y remove 包名 卸载

    尽量不要卸载!!!!!只装不卸!!!!卸载也要rpm手工卸载!!!

    yum卸载会将一系列的依赖包都给卸载!!可能系统也依赖某个你卸载了的包,会导致系统崩溃!!!!

  • yum grouplist 列出所有可用的软件组列表

  • yum groupinstall [软件组名] 安装指定软件组

  • yum groupremove [软件组名] 卸载指定软件组

光盘yum源搭建

步骤1 挂载光盘

mounrt /dev/sr0 /mnt/cdrom/

​ 将dev下的sr0挂载到mnt下的cdrom

步骤2 让网络yum源失效

方法1:vim /etc/yum.respos.d/CentOS-Base.repo 将enable改为0

方法2:进入/etc/yum.respos.d,将所有网络yum源改名

步骤3 修改光盘yum源

vim CentOS-Media

[容器名]

name=容器说明

baseurl=file:///mnt/cdrom

#这个地址为光盘挂载的实际地址

#不存在的地址1

#不存在的地址2

#将上面两个不存在的地址注释掉

gpgecheck=1

enable=1