• 第5章 软件包管理(1)_RPM包安装


    1. 软件包简介

    1.1 软件包分类

    (1)源码包:如C、C++源码包,脚本安装包执行后可以自动安装。

    (2)二进制包:Redhat系列(如CentOS):为RPM包,Debian系列(如ubuntu):为DEB包,这些都是各自的系统默认包),它们都是经过编译的文件

    1.2 源码包

    (1)源码包的优点

      ①开源,如果有足够的能力,可以修改源代码

      ②可以自由选择所需要的功能

      ③软件是编译安装,所以更加适合自己的系统,更加稳定,效率更高

      ④卸载方便

    (2)源码包的缺点

      ①安装过程步骤多,尤其安装较大的软件集合时(如LAMP环境搭建),容易出现拼写错误。

      ②编译过程时间较长,安装比二进制安装时间长

      ③因为是编译安装,安装过程中一旦报错,新手很难解决。

    1.3 RPM

    (1)二制包的优点

      ①包管理系统简单,只通过几个命令就可以实现包的安装、升级、查询和卸载

      ②安装速度比源码包安装快的多

    (2)二进制包的缺点

      ①经过编译,不再可以看到源代码

      ②功能选择不如源码包灵活

      ③依赖性问题如A→B→C,则安装时应先安装C,再安装B,最后安装A。卸载时先A,再B,最后C

    2. RPM包管理

    2.1 rpm命令管理

    (1)RPM包命名原则(如httpd-2.2.15-53.el6.centos.1.i686.rpm)

      ①httpd:软件包名

      ②2.2.15:软件版本

      ③53:软件发布的次数

      ④el6.centos:适合的Linux平台

      ⑤i686:适合的硬软平台

      ⑥rpm:rpm包扩展名

    (2)RPM包的依赖性

      ①树形依赖:A→B→C,安装时先C再B,最后A。卸载先A再B最后C)

      ②环形依赖:A→B→C→A,用命令将ABC同时安装。

      ③模块依赖:如库依赖。可到模块依赖网站查询:www.rpmfind.net

    (3)rpm包的安装、卸装与升级命令:rpm [选项] 包全名(或包名)

    选项

    含义

    备注

    -i

    安装软件包

    格式:rpm –ivh 包全名,如:

    #rpm –ivh httpd-2.2.15-53.el6.centos.1.i686.rpm

    -e

    卸载安装包

    格式:rpm –e 包名,如:

    #rpm –e httpd(但要注意依赖关系)

    -U

    升级安装包

    格式:rpm –Uvh 包全名

    -v

    verbose,显示详细信息

     

    -h

    hash,显示进度

     

    --nodeps

    不检测依赖性

     

    (4)rpm包查询:格式#rpm [选项] 包全名(或包名)

    选项

    含义

    备注

    -q

    (查询)

    -qa:所有己安装包

    -qi:查询软件信息

    -qip:查询未安装包信息

    -ql:以列表(list)显示

    -qlp:查询未安装包信息

    -qf:查询系统文件属于哪个包

    -qR:查询软件包的依赖性

    -qRp:查询未安装软件包的依赖性

    ①查询httpd包是否安装:

    #rpm –q httpd

    ②查询所有己安装的RPM包

    #rpm –q

    ③以列表形式查询httpd包软件信息

    #rpm –ql httpd

    ④查询系统文件属于哪个RPM包

    #rpm –qf /etc/yum.conf(系统文件名)

    ⑤查询httpd未安装包的依赖关系:

    #rpm –qRp /路径/httpd的包全名

    (5)RPM包的检验:格式:rpm –V 己安装的包名

    检验的项目

    含义

    验证内容中的

    8个信息位

    S:文件大小是否改变

    M:文件的类型或文件的权限(rwx)是否改变

    5:文件MD5校验和是否改变(可以看成文件内容是否改变)

    D:设备是否改变

    L:文件路径是被改变

    U:文件的属主(所有者)是否改变

    G:文件的属组是否改变

    T:文件的修改时间是否改变

    文件类型

    c:配置文件(config file)

    d:普通文件(documentation)

    g:"鬼"文件(ghost file),表示该文件不该出现在这个RPM包中,如果出现,表示该包可能是出现问题的了。

    l:授权文件(license file)

    r:描述文件(read me)

    备注

    ①只能用来校验己安装包是否被更改。

    ②案例分析:#rpm –V httpd

    【说明】运行该命令后,会将当前httpd包与刚安装时的包进行比较。如果没有被修改,则直接返回,如果己被修改的,会显示哪个文件被修改及被修改的项目(由8个信息位来表示)。如,

    S.5....T. c /etc/httpd/conf/httpd.conf,表示httpd.conf这个文件S、5、T被修改,其它不变。其中的c表示该文件是配置文件类型

    (6)RPM包中文件提取:格式:#rpm2cpio 包全名 | cpio –idv .文件绝对路径

      ①rpm2cpio:将rpm包转换为cpio格式

      ②cpio:是一个标准工具,它用于创建软件档案文件和从档案文件中提取文件。其命令格式如下:cpio [选项] < [文件|设备]

        A.其中 –i:copy-in模式,即还原、解压备份档。-o:copy-out模式,把文件复制到备份档中,即压缩。 -d:还原时自动新建目录。-v:显示还原过程。

        B.通过输入重定向<从指定的文件或设备中提取文件。

      ③应用举例

    #rpm – qf /bin/ls  //查询ls命令属于哪个软件包
    
    #mv /bin/ls /tmp/   //模拟ls命令被误删除情况。
    
    //提取RPM包中ls命令到当前目录的/bin/ls下
    #rpm2cpio /mnt/cdrom/Packages/coreutils-8.4-19.el6.i686.rpm | 
       cpio –idv ./bin/ls
    
    #cp /root/bin/ls /bin/  //把ls命令复制到/bin/目录,修复文件丢失。

    2.2 yum在线管理

    2.2.1 IP地址配置及网络yum源

    (1)IP地址配置:

      ①vi /etc/sysconfig/network-scripts/ifcfg-eth0

      ②将ONBOOT=“no”改为ONBOOT=“yes”

      ③重启网络服务:#service network restart

    (2)网络yum源

      ①#vi /etc/yum.repos.d/CentOS-Base.repo

    [base]      容器名称,一定要放在[]中
    
    name        容器说明,可以自己随便写
    
    mirrorlist  镜像站点,可以注释掉
    
    baseurl     yum源服务器的地址。默认是CentOS官方的yum源服务器
    
    enabled     此容器是否生效,如果不写或写成enable=1都是生效,enable=0不生效
    
    gpgcheck    如果是1是指RPM的数字证书生效,如果0则不生效
    
    gpgkey      数字证书的公钥文件保存位置。不用修改。

      ②yum源设置示例

     

    2.2.2 yum命令

    (1)查询所有可用软件包列表:#yum list

    (2)搜索服务器上所有和关键字相关的包:#yum search 关键字

    (3)安装:#yum –y install 包名  (其中-y自动回答yes),如#yum –y install gcc-c++

    (4)升级:#yum –y update 包名 (注意,如果不写包名,会将升级所有软件及linux内核!)

    (5)卸载:#yum –y remove 包名  (注意,卸载会将其依赖包也删除!)

    2.2.3 yum软件组管理命令

    (1)列出所有可用的软件组列表:#yum grouplist

    (2)安装指定软件组:#yum groupinstall 软件组名 (组名可由grouplist查询出来,yum不认识中文名称的软件组名,名称中有空格的,要用引号把整个名称引起来)

      ①切换英文:#LANG=en_US yum grouplist 或

            # LANG=en_US

            #yum grouplist

      ②切换中文:#LANG=zh_CN.utf8

    (3)卸装指定软件组:#yum groupremove 软件组名

    2.2.4 光盘yum源搭建

    (1)挂载光盘:#mount /dev/cdrom /mnt/cdrom/

    (2)让网络yum源文件失效:

    #cd /etc/yum.repos.d/
    
    #mv CentOS-Base.repo CenOS-Base.repo.bak  //改名
    
    #mv CentOS-Debuginfo.repo CenOS-Debuginfo.repo.bak
    
    #mv CentOS-Vault.repo  CentOS-Vault.repo.bak

    (3)修改光盘yum源文件:#vim CentOS-Media.repo

     

  • 相关阅读:
    [转]POI实现读写Excel2007完整示例
    理解maven的核心概念
    关于Unity中Cg的基本语法和使用
    关于Unity中Shader的使用
    关于Unity中坐标系的种类
    关于Unity中Shader的基础认识
    关于Unity中粒子效果的使用
    关于Unity中蒙皮网格和布料的使用
    关于Unity中关节的使用(二)
    关于Unity中关节的使用(一)
  • 原文地址:https://www.cnblogs.com/5iedu/p/6160837.html
Copyright © 2020-2023  润新知