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

Linux学习之包管理

时间:2015-09-13 07:11:09      阅读:335      评论:0      收藏:0      [点我收藏+]

标签:rpm yum

Linux学习之程序包管理


    1、包管理器就是对应用程序打包和包管理的应用软件,包管理包括安装、升级、卸载、查询和校验管理。

    最早出现的包管理器是debian的deb,

    随后reahat才推出了其包管理器rpm:RedHat package manager,之后就不断完善成为现在RedHat衍生版以及suse的包管理器;所以rpm的定义随之成为:RPM is package manager。

    

    程序包是由以下四个部分组成:

       1、二进制程序:/bin,/sbin,/usr/bin,/usr/sbin

       2、库文件:/lib_64,/usr/lib_64

       3、配置文件:/etc

       4、帮助文档:manual,info


    包管理器作用详解:

      打包:将不同部分的文件归档组织存放的过程

      安装:将包中的二进制文件、库文件、配置文件以及帮助文件存放至相应的目录,最后设置该程序的环境变量使程序能在系统中正常运行使用;

      卸载:删除该程序的所有文件以及环境变量

      升级:将新版的程序文件覆盖至就版本的程序文件上

      查询:查看应用软件安装文件以及这些文件的信息

      校验:核对包文件来源的合法性和完整性


   2、rpm包:

       分包机制:

             PackageName-VERSION.tar.gz

            其分包机制是将常用打包归档成为一个包,其他不常用的功能单独打包归档或以组合的方式打包归档;如:

             核心包:PackageName-VERSION

              支包:PackageName-Part1-VERSION

                VERSION:版本包

                   版本号是由:主版本号(major)+次版本号(minor)+修正号(release)三部分组成的

                    主版本号:major的更改是软件的重要功能的加减引起的

                    次版本号:minor是一些小功能的增减引起的

                    修正好:release是弥补以前的bug

                bash-4.2.4.tar.gz

        rpm包的命名机制:

          PackageName-VERSION-RELEASE.ARCH.rpm

           VERSION:是软件包的版本号:

           RELEASE:是rpm软件的修正号

           ARCH:是表示该软件包使用的架构,如i386,x86_64等

       如:

            技术分享

        

       如何获取rpm包

        a、发行版提供的程序包;这是安全级别最高的一种方式

        b、Fedora-EPEL项目

        c、项目的官方站点

        d、搜索引擎 如:

           http://rpmfind.net

           http://rpm.pbone.net

           http://pkgs.org


  3、基于rpm命令实现程序包管理:

      安装:

       rpm {-i|--install} [install-options] PACKAGE_FILE

         -i:安装

           -v:显示过程,-vv,-vvv更加详细的显示安装过程

           -h:以#表示安装进度

        --nodeps:忽略依赖关系安装

        技术分享      

        升级:

          rpm {-U|--upgrade} [install-options] PACKAGE_FILE

          rpm {-F|--freshen} [install-options] PACKAGE_FILE

            -Uvh:如果有旧版本的程序,则升级,如果没有则安装

            -Fvh:如果有旧版本的程序,则升级,没有则不安装

 

              --oldpackage:降级

              --force:强制

       技术分享

         

        卸载

          rpm {-e|--erase} [--nodeps] [--noscripts] [--notriggers] [--test] PACKAGE_FILE

技术分享


        查询:

          rpm {-q|--query} [select-options] [query-options]

             查询选项:

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

技术分享

                -qf /path/to/somefile:查询此处的文件由那个程序包安装生成;

技术分享

                -qc:查询指定程序包安装生成的配置文件

技术分享

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

技术分享

                -qi:查询指定的程序包的祥光信息

技术分享

                -ql:查询程序包安装生成的所有文件的列表

技术分享

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

                    preinstall:安装前脚本

                    postinstall:安装后脚本

                    preuninstall:卸载前脚本

                    postuninstall:卸载后脚本

                -p:查询正对是未安装的程序包文件;


        校验:

           rpm {-V|--verify} [select-options] [verify-options]

             S file size differs//大小改变

             M mode differs//权限改变

             5 digest(formerly MD5 sum) differs//md5改变

             D device major/minor number mismatch//设备文件的主次号不匹配

             L readlin(2) path mismatch//

             U user ownership differs//属主

             G group ownership differs//属组

             T mtime differs//修改时间戳

             P caPabilities differs//删除文件

 技术分享

技术分享


      包校验:

         来源的合法性

         文件的完整性

            导入密钥:rpm --import /path/to/KEY_FILE

            校验:rpm -K /path/to/RPM_FILE

技术分享


   4、YUM:Yellow dog Updater Modified

      通过仓库查找包并解决包依赖的问题

       yum repositories:

        文件服务器:

           ftp://hosthome/path/to/REPO

           http://hosthome/path/to/REPO

           file:///path/to/REPO

       yum程序的配置文件:

         /etc/yum.conf :定义全局配置,对有有的仓库都试用的配置

技术分享   

        /etc/yum.repos.d/*.repo

          一个文件通常用于一个或一组功能相近或相关的仓库


          定义一个仓库指向:

          [REPO_ID] //id是全局唯一的

          name=     //名字

          baseurl=   //文件服务器路径,建议不要指向多个

          #mirrorlist=SCHME://HOSTNAME/PATH/TO/MIRROR_LIST_FILE //baseurl的替代,MIRROR_LIST_FILE是一个定义了可用镜像文件列表的文本文件

          enable={0|1} //是否启用仓库

          gpgcheck={0|1} //是否对包进行校验

          gpgkey= //指明使用哪个文件校验

          cost    //指明这个仓库的开销

技术分享

       定义仓库指向可用变量:

          $releasever:引用当前系统的主版本号

          $basearch:引用当前系统的基本架构

       htpp://mirror.xxx.xx/centos/$releasever/$basearch


      5、yum命令

          yum [options] [command] [package...]

    

            [command]

              安装:install

[root@pizi yum.repos.d]# yum install nmap
已加载插件:fastestmirror, refresh-packagekit, security
设置安装进程
Loading mirror speeds from cached hostfile
 * base: mirrors.sina.cn
 * extras: mirrors.sina.cn
 * updates: mirrors.sina.cn
base                                                                                               | 3.7 kB     00:00
extras                                                                                             | 3.4 kB     00:00
updates                                                                                            | 3.4 kB     00:00
解决依赖关系
--> 执行事务检查
---> Package nmap.x86_64 2:5.51-4.el6 will be 安装
--> 完成依赖关系计算

依赖关系解决

==========================================================================================================================
 软件包                    架构                        版本                               仓库                       大小
==========================================================================================================================
正在安装:
 nmap                      x86_64                      2:5.51-4.el6                       base                      2.8 M

事务概要
==========================================================================================================================
Install       1 Package(s)

总下载量:2.8 M
Installed size: 9.7 M
确定吗?[y/N]:y
下载软件包:
nmap-5.51-4.el6.x86_64.rpm                                                                         | 2.8 MB     00:00
运行 rpm_check_debug
执行事务测试
事务测试成功
执行事务
  正在安装   : 2:nmap-5.51-4.el6.x86_64                                                                               1/1
  Verifying  : 2:nmap-5.51-4.el6.x86_64                                                                               1/1

已安装:
  nmap.x86_64 2:5.51-4.el6

完毕!

              卸载:remove

技术分享

              升级:update         

技术分享    

              查询: info 

技术分享

                     search KEYWORD

                     list all | installed|availiable

                     provide /path/to/somefile:查询执行文件由那个包安装生成


               重新安装:reinstall

               降级:downgrade

               清理缓存:clean [package|metadata|expire-cache|apmdb|plugins|all]

               手动生成缓存:makecache


             包组:

                grouplist    

                groupinfo ‘GRP_NAME‘

                groupinstall "GRP_NAME"

                groupremove "GRP_NAME"

技术分享


             仓库:

              repolist [all|enabled|disabled]

              repoinfo [all|enabled|disabled]

技术分享


至此包管理就先写到这里,后续会有更加详细的补充。欢迎大家关注!

Linux学习之包管理

标签:rpm yum

原文地址:http://pizimsn.blog.51cto.com/7002551/1694185

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