码迷,mamicode.com
首页 > 系统相关 > 详细

linux下rpm,yum学习

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

标签:rpm   yum   

linux下RPM及yum学习

  • linux中程序管理程序主要分为两类

        dpkg(Debian Packager):debian,Ubuntu,Knoppix
        rpm(Redhat Package Manager):Redhat,Centos,Fedora
       

       linux通过管理程序实现程序的安装,但不管是dpkg还是rpm安装软件时若软件存在依赖性关系,则自动安装所需要软件及相关配置,为实现此功能,rpm需包含自己的数据库(/var/lib/rpm),将安装程序分别安装到指定位置,本次学习以rpm为本进行学习


  1.     RPM管理程序:

    1. RPM是什么

RPM是Redhat开发的为Redhat系列的linux提供程序安装管理的管理程序

RPM与SRPM

Linux由于开源关系导致其各发行版或多或少有点不一样,由于RPM安装程序事先编译按照,因此不可能适应全部发行版的linux环境,针对此现象可使用SRPM程序包,此程序包包含RPM源码,可根据具体发行部再行编译安装

    RPM使用

        打包:rpmbuild:基于specs文件进行打包

        主包:包含包的主要功能(app-version)

        分包:包含包的部分非常用功能,根据需要进行安装(app-devel-version)

            version格式:主版本号.此版本号.release号

            例子:      zlib-1.2.7-13.el7.x86_64.rpm(主包)
                            zlib-devel-1.2.7-13.el7.x86_64.rpm(分包)

          获取包方式

              1.发行版提供的程序包
              2.Fedora-EPEL  个别开源程序;

              3. 项目官方站点
              4.搜索引擎

    安装

        格式:rpm {-i|--install} [install-options] PACKAGE_FILE ...

                          技术分享

                        -i:表示安装程序

                        -v:表示显示安装过程

                        -vv:显示调试信息

                        --percent:以百分比方式显示安装进度

                        --excludedocs:不安装包中的文档文件

                        --ignoreach:不校验包结构

                        --includedocs:安装文档

                        --noscripts:不运行安装脚本

                        --prefix:安装到指定目录下

                        --force:忽略文件冲突

                        -h:安装时输出hash记号#

                        --nodeps:忽略依赖关系

                        --test:仅做测试

                        --replacepkgs:重装程序包                   

                        

            例子技术分享

        

        升级

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

                                

                     常用命令格式:

                            -Uvh:若有旧版程序则升级,若无则安装

                            -Fvh:若有旧版程序则升级,若无则不做操作

                                --nodeps:忽略依赖关系

                                --oldpackage:降级

                                --force:强制升级

                                --test:仅做测试

          卸载

                格式: rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts]
                                   [--notriggers] [--test] PACKAGE_NAME ...

                            [--nodeps]:卸载忽略依赖关系

                            [--noscripts]:卸载时不运行脚本

                            [--test]:只是测试

            查询

                格式:rpm {-q|--query} [select-options] [query-options]

                            技术分享

                            技术分享

                            -q:查询

                            -qa:查询本机安装的所有程序

                            -qf FILE:查询FILE由那个安装包生成

                            -p:查询未安装的软件包

                            --whatprovides:查询所有提供了功能的软件包

                            --whatrequires:查询所有要求功能的软件包


                            -qc:查询程序包生成的配置文件

                            -qd:查询程序包生成的文档

                            -qi:查询程序包的信息

                            -ql:查询程序包生成的文件列表

                            -q  --scripts:查询程序包相关脚本

                                    preinstall:安装前

                                    postinstall:安装后

                                    preuninstall:卸载前

                                    postuninstall:卸载后

                    例子:

                    技术分享

                    

            校验:

                   格式:rpm {-V|--verify} [select-options] [verify-options]

                            校验码含义:

                                S:  文件大小发生了变化

                                M:权限发生变化

                                5:MD5校验码变化

                                D:设备文件不匹配

                                U:属主改变

                                T:最近修改时间戳改变

                                P:功能变化


                    由于安全性考虑文件可能需要秘钥进行校验:

                        导入秘钥:rpm --import

                        校验:       rpm -k FILE

    yum:

        网上存在较多镜像站点,其中repodata所在父目录即仓库路径

            yum仓库:

                    文件服务器:

                            ftp://hostname/PATH/TO/REPO

                            http://hostname/ PATH/TO/REPO

                            file:///PATH/TO/REPO

            yum配置文件:

                全局配置文件:/etc/yum.conf

                单个仓库或同类仓库:/etc/yum.repos.d/*.repo

               

            技术分享

            name:仓库名称

            baseurl:参照yum仓库文件服务器设置,可设置多个,随机挑选一个

            mirrorlist:将仓库写成列表,在通过列表读取baseurl,实现baseurl冗余

            gpgcheck:是否检验包的合法性(0/1)

            gpgkey:秘钥文件

            enable:是否启用(0/1)

            cost:指明仓库开销,越小越优先


            添加后yum repolist生效仓库

            仓库定义变量:

                    $releasever:当前系统主版本号

                    $basearch:当前系统架构:

                            i386,i486,i586,i686

            例子:

            技术分享        

            技术分享


            yum管理软件:

                    安装:install

                    卸载:remove(自动卸载依赖关系包)

                    升级:update(yum check-update检察升级包)

                    查询:

                            info:不管安装没安装都能查询相关信息

                            search KEYWOED [all]:all代表只要出现了都search,没有all代表只搜索包名出现关键字的

                            list all|installed|availiable:显示所有包|已安装包|可安装包

                            provides:查询文件由那个包生成的

                    重新安装:reinstall

                    降级:downgrade

                    清理: [ packages | metadata | expire-cache | rpmdb | plugins | all ],一般可以clean all

                    生成缓存:makecache

                    

                    包组:一次管理一组程序包

                            grouplist:列出所有包组

                            groupinfo GROUPNAME:查看GROUPNAME信息

                            groupinstall “GROUPNAME”包组安装

                            groupremove “GROUPNAME”包组卸载

                    仓库:

                            列出仓库: repolist [all|enabled|disabled]  默认enableed
                            查看仓库信息:repoinfo [all|enabled|disabled] 

                            查看仓库包安装情况: repository-packages





linux下rpm,yum学习

标签:rpm   yum   

原文地址:http://610463479.blog.51cto.com/10539546/1694773

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