01.RPM工具管理rpm包

发布于 2020-03-13  110 次阅读


  1. 1.RPM包管理

    RPMRPM Package Manager缩写, 由红帽开发用于软件包的安装升级卸载与查询

    1.软件包类型

    分类

    安装

    版本

    rpm

    预先编译打包,安装简单

    软件版本偏低

    源码包

    手动编译打包,安装繁琐

    软件版本随意

    二进制包

    解压即可使用, 安装简单

    不能修改源码

    2.常见的软件包

    注意: 不管是源码包,还是二进制包,安装时都可能会有依赖关系!

    系统平台

    包类型

    工具

    自动解决依赖

    RedHat/Centos

    RPM

    rpm

    yum

    Ubuntu/Debian

    DPKG

    dpkg

    apt

    3.RPM获取途径

    1.RedHat光盘或官方网站 
    2.
    RPM查询官网网站
    3.
    Nginx软件官方网站

    4.RPM软件包命名规则

    RPM包命名以-将软件分成了若干部分bash-4.2.46-28.el7.x86_64.rpm

    name: 软件包名称
    version:
    版本号, 主版本, 重大更新. 次版本, 子功能更新. 修订号, 修复bug
    release:
    发布版本 el6, el7 (hostnamectl)
    arch:
    系统平台, i386x86_64(hostnamectl)

    rpm包的组成:

    安装释放的文件
    软件包的元数据(版本,发布号,架构,描述,要求,更改日志等)
    脚本:安装前执行的脚本和安装后的脚本

    5.查看系统光驱中RPM软件包

    如果你的系统中还有系统的安装盘,首先我们让虚拟机链接上我们的系统安装盘,然后我们可以通过 mount /dev/cdrom /mnt命令把光驱挂载到/mnt目录下,那么你会在/mnt/Packages目录下看到很多.rpm的包文件。

    [root@localhost ~]# mount /dev/cdrom /mnt/

    mount: block device /dev/sr0 is write-protected, mounting read-only

    [root@localhost ~]# ls /mnt/

    CentOS_BuildTag Packages RPM-GPG-KEY-CentOS-Security-6

    EULA RELEASE-NOTES-en-US.html RPM-GPG-KEY-CentOS-Testing-6

    GPL repodata TRANS.TBL

    images RPM-GPG-KEY-CentOS-6

    isolinux RPM-GPG-KEY-CentOS-Debug-6

    [root@localhost ~]# ls /mnt/Packages/|head

  2. 1.1.RPM包安装

    使用rpm命令安装软件包, 需要了解如下参数:

    -i: 安装

    -v: 详细信息

    -h: 安装进度

    --test: 测试是否能够安装成功

    --force: 强制重新安装

    --nodeps: 忽略依赖关系

     

    //安装软件包, 需要指定软件包绝对路径

    [root@lxgyw ~]# rpm -ivh /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm

    [root@lxgyw ~]# rpm -ivh /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm

     

    //在软件包所在目录下可以不指定绝对路径

    [root@lxgyw ~]# cd /mnt/Packages/

    [root@lxgyw Packages]# rpm -ivh zsh-5.0.2-28.el7.x86_64.rpm

     

    //测试一个软件包是否能在该系统上安装

    [root@lxgyw ~]# rpm -ivh --test /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm

     

    //如果软件包存在, 强制再次安装

    [root@lxgyw ~]# rpm -ivh --force /mnt/Packages/tree-1.5.3-3.el6.x86_64.rpm

     

    //安装samba服务需要依赖其他组件, 使用--nodeps可重新强制安装

    [root@lxgyw ~]# rpm -ivh --nodeps /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm

  3. 1.2.RPM包查询

    使用rpm命令查询已安装好的rpm, 需要了解如下参数:

    rpm -q //查看指定软件包是否安装

    rpm -qa //查看系统中已安装的所有RPM软件包列表

    rpm -qi //查看指定软件的详细信息

    rpm -ql //查询指定软件包所安装的目录、文件列表

    rpm -qc //查询指定软件包的配置文件

    rpm -qd //查询指定软件包的帮助文档

    rpm -qf //查询文件或目录属于哪个RPM软件

    rpm -q --scripts //查询rpm包安装前和安装后执行的脚本

     

     

    //查询未安装的软件包信息

    rpm -qip //查询未安装的rpm包详细信息

    rpm -qlp //查询未安装的软件包会产生哪些文件

     

     

    //查询vsftpd这个rpm包是否安装

    [root@lxgyw ~]# rpm -q vsftpd

     

    //模糊查找系统已安装的rpm

    [root@lxgyw ~]# rpm -qa |grep ftp

     

    //查询vsftpd软件包的相关信息

    [root@lxgyw ~]# rpm -qi vsftpd

     

    //查询rpm包所安装的文件

    [root@lxgyw ~]# rpm -ql vsftpd

     

    //查询rpm包相关的配置文件

    [root@lxgyw ~]# rpm -qc vsftpd

     

    //查询配置文件或命令来自于哪个rpm

    [root@lxgyw ~]# rpm -qf /etc/vsftpd/vsftpd.conf

    [root@lxgyw ~]# rpm -qf /usr/sbin/vsftpd

     

     

    //查询未安装的软件包会产生哪些文件

    [root@lxgyw ~]# rpm -qlp /mnt/Packages/samba-3.6.23-41.el6.x86_64.rpm

     

    //查询未安装的软件包会产生哪些文件

    [root@lxgyw ~]# rpm -qip /mnt/Packages/samba-3.6.23-41.el6.x86_64.rpm

  4. 1.3.RPM包升级

    -U 如果老版本不存在,就全新安装,如果存在有新版即升级
    -f
    老版本必须存在

    //如果有新版则升级, 软件升级不要跨操作系统主版本号

    [root@lxgyw ~]# rpm -Uvh /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm

  5. 1.4.RPM包卸载

    卸载包时需要先把依赖的包卸载掉,如果依赖的包是系统所必须的,那就不能卸载这个包,否则会造成系统崩溃。

    //先查询, 然后卸载

    [root@lxgyw ~]# rpm -qa |grep sh

    [root@lxgyw ~]# rpm -e zsh

  6. 1.5.RPM包校验

    软件相关的数据库存放于/var/lib/rpm目录

    [root@lxgyw ~]# rpm -V vsftpd

    S.5....T. c /etc/pam.d/vsftpd

    .......T. c /etc/vsftpd/ftpusers

    S.5....T. c /etc/vsftpd/vsftpd.conf

    .M....... /var/ftp/pub

     

     

    S
    //
    文件的容量大小是否被改变

    M
    //
    文件的类型或者文件的属性是否被修改

    5
    //MD5
    这一种指纹加密的内容已经不同

    D
    //
    装置的主/次代码已经改变

    L
    //
    路径已经被改变

    U
    //
    文件的所属主已被修改

    G
    //
    文件的所属组已被修改

    T
    //
    文件的创建时间已被改变

  7. 1.6.RPM包小结

    如何查询 util-linux 软件包安装了哪些文件? 
    如何查询 mkdir 命令是由哪个 RPM 软件包安装的?
    安装 .rpm 软件包时,-i-U、选项有何区别?

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

        


一沙一世界,一花一天堂。君掌盛无边,刹那成永恒。