码迷,mamicode.com
首页 > 其他好文 > 详细

[9-5]Rpm与Yum安装包管理知识梳理

时间:2015-09-15 15:01:15      阅读:237      评论:0      收藏:0      [点我收藏+]

标签:yum   rpm   

本文旨在复习Linux上安装包管理rpm与yum工具

知识储备


  • 所谓的包管理是指在Linux平台上查询、校验、安装、升级、卸载以及打包package

  • 不同的Distribution Linux上包管理工具各不相同,最主流的有通吃RedHat/CentOS的RPM、YUM、DNF[新一代的前端管理工具],Debian上的APT管理工具

  • 一个程序包package通用组成部分

    • 二进制程序:/bin, /sbin,/, /usr/bin, /usr/sbin,

    • 库文件:/lib, /lib64, /usr/lib64

    • 配置文件:/etc

    • 帮助文件:manual, info, readme.txt, install.txt等



RPM基础知识


RPM打包机制:基于specs文件的打包,specs这个文件指挥着如何打包,按照何种规则组织包的元数据、包内容等等,可以使用rpmbuild命令

● RPM分包机制:有些程序在设计时除了核心功能外还有各种附加小功能,打包者选择性组合这些功能对源码程序打包,分为了核心包和支包,核心包通常名为software-version,支包通常为software-devel-version

● RPM包命名机制:5段命名法

技术分享

● 包依赖关系

    一个包B的功能实现需要调用别包A的底层文件、服务、共享对象等,这种情况下单独安装packageB是无法成功的,需要安装好A包[可以强制忽略依赖关系安装B包,但是功能可能会受影响]

    另外依赖关系可能有很多层,比如A包依赖B包C包,而B包又依赖D包等等,有可能无穷无尽也~

    技术分享

● 获取RPM包


RPM管理程序包


RPM主要能实现对package安装、升级、卸载、查询、校验等功能,并不能很好地解决依赖关系,需要手工安装!


安装与升级 


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17


安装:
    rpm {-i|--install} [install-options] PACKAGE_FILE ...
        -ivh:安装包, v显示安装进度, 
        -ivvh: vv的作用是详细显示安装了哪些文件, 还有vvv
        --nodeps:忽略依赖关系强制安装, 可能导致软件功能不正常
        --replacepkgs:重装程序包

升级:
    rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...
    rpm {-F|--freshen} [install-options] PACKAGE_FILE ...   

        -Uvh: 如果有旧版程序包,则升级之;如果没有,则安装之;
        -Fvh: 如果有旧版程序包,则升级之;如果没有,则不安装;

        --nodeps:忽略依赖关系
        --oldpackage:降级,要带上这个参数
        --force:

例:安装sendmail包,可以很明显看到依赖关系,然后强制忽略依赖关系进行安装[只做演示,显示情况应妥善处理好依赖关系]

技术分享

卸载和查 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18


卸载:
     rpm {-e|--erase} [--nodeps] [--noscripts] [--notriggers] [--test] PACKAGE_NAME ... 

查询:
     rpm {-q|--query} [select-options] [query-options]
            -qa: 查询本机已经安装的所有程序包;
            -qf /PATH/TO/SOMEFILE: 查询此处的文件由哪个程序包安装生成;

            -qc: 查询指定程序包安装生成的配置文件
            -qd: 查询指定的程序包安装生成的文档
            -qi: 查询指定的程序包的相关信息;
            -ql: 查询程序包安装生成的所有文件的列表;
            -q --scripts:查询程序包相关的脚本:
                preinstall: 安装前脚本
                postinstall:安装后脚本
                preuninstall: 卸载前脚本
                postuninstall: 卸载后脚本
            -p: 查询针对是未安装的程序包文件;

例:查询本机已经安装的所有package可以使用rpm -qa,选择openssl安装包查看配置文件

技术分享

包检验 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18


校验:
     rpm {-V|--verify} [select-options] [verify-options]
             S file Size differs
             M Mode differs (includes permissions and file type)
             5 digest (formerly MD5 sum) differs
             D Device major/minor number mismatch
             L readLink(2) path mismatch
             U User ownership differs
             G Group ownership differs
             T mTime differs
             P caPabilities differ

包校验:
        来源合法性验正:非对称加密
        完整性验正:单向加密

        导入密钥:rpm --import /PATH/TO/KEY_FILE
        校验:rpm -K /PATH/TO/RPM_FILE

例:导入一份密钥文件,并且验证/tmp/sendmail该package是否合法完整

技术分享


RPM几个要点


1.默认情况下只能够处理安装包,而不能解决依赖关系,依赖的包需要依次安装,有顺序

2.包来源请尽量确保安全,可以使用密钥进行合法性完整性验证,推荐去较大的mirrors站点下载

3.--nodeps可以忽略依赖关系安装,不推荐使用,可能导致若干问题

4.--scripts脚本,在某些package安装前后、卸载前后可以指定一些官方或自定义的脚本来实现自动化


YUM基本知识




本文出自 “蓝色仓库” 博客,请务必保留此出处http://bluebox.blog.51cto.com/8852456/1694811

[9-5]Rpm与Yum安装包管理知识梳理

标签:yum   rpm   

原文地址:http://bluebox.blog.51cto.com/8852456/1694811

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!