1、软件包管理简介

Windows中所有的软件包都不可以直接在linux系统中直接安装使用。

linux系统中软件包分类:

  • 源码包(脚本安装包)

      • 源代码直接开放的包,绝大部分是C语言写的;

  • 二进包(源码包编译之后的包、RPM包、系统默认包)

      • 优点:安装快速,简化安装过程但不能看到源代码,例如qq等;

redhad系列和ubanto系列最大的区别就是二进制软件包不同,rehad用的二进制包是.rpm包,debin系列用的是deb包,其余的部分两种发行版本基本一致。

源码包的优点:

      • 开源,可以修改源代码

      • 功能可以自由的选择

      • 源码包是自己的操作系统安装,所以更加快速、稳定、高效,卸载方便(其实linux没有卸载,其实就是把目录删掉,不会遗留任何垃圾文件)

源码包的缺点:

      • 安装过程步骤较多

      • 容易出现拼写错误

      • 编译过程时间较长,同时由于是编译安装,一旦报错,不容易处理

RPM包的优点:包管理系统简单,安装速度快;缺点是不可以看源代码,功能选择不如源代码包灵活,依赖性(树形依赖、环形依赖、模块依赖(模块依赖查询网站www.rpmfind.net



2、rpm命令

  • 2.1    如何在虚拟机中利用iso镜像提供rpm包源?

    • (1)首先在虚拟机中加入ISO文件

    • (2)将光盘ISO进行挂载

  1. mkdir /mnt/cdrom

  2. mount /dev/sr0 /mnt/cdrom

  3. cd /mnt/cdrom/Packages (ls就可以看到光盘的软件包了)

程序包管理:rpm&yum命令_程序包管理rpm&yum

        


查询

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

              -qa: 查询所有包以安装的包 [ 如 rpm –qa    rpm –qa |grep “php*”]

                -qf :f后跟系统文件, 查看指定的文件由哪个程序包安装生成

                -qp /PATH/TO/PACKAGE_FILE:针对尚未安装的程序包文件做查询操作;

         -qR 查询包的依赖性

                -ql:查询包中文件安装位置

                    ……

校验

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

    如rpm –V PACKAGE_FILE ...

                    没有提示任何信息证明此包没有被修改过;


        导入所需要公钥校验:

                            rpm --import/PATH/FROM/GPG-PUBKEY-FILE



安装:

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

           -v: verbose 显示信息

           -vv: 显示更多的信息

           -h: 以hash的方式(即#)显示程序包管理执行进度;每个#表示2%的进度

                  [install-options]

                         --test:测试安装,但不真正执行安装过程;dry run模式;

                         --nodeps:忽略依赖关系;

                         --replacepkgs:重新安装;

                         --nosignature:不检查来源合法性;

                             --nodigest:不检查包完整性;

程序包管理:rpm&yum命令_程序包管理rpm&yum _02


升级:

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

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

              upgrage:安装有旧版程序包,则“升级”;如果不存在旧版程序包,则“安装”;

              freeshen:安装有旧版程序包,则“升级”;如果不存在旧版程序包,则不执行升级操作;


卸载

       rpm{-e|--erase} [--allmatches] [--nodeps] [--noscripts]  

            如rpm –e httpd

    

3、yum命令

    3.1、yum使用简介

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

        yumlist 查询所有可用软件包列表

        yumsearch  package ...

        yum –y install package ...  安装 –y表示自动回答yes

        yum –y update package ...                        

    • 如果不加包名只写了yum –y update就会升级所有的软件包(包括linux内核),linux升级之后必须在本地对linux做一定的配置服务器才可以用,误写会使服务器直接崩溃;同时,卸载时候 yum –y remove 包名

    • 尽量不要用yum卸载,很容易把系统搞崩溃        

        yum grouplist 列出所有可用的软件组列表

        yum groupinstall/groupremove “软件组名” 安装/卸载指定软件组

    

    3.2、yum仓库

            /etc/yum.repos.d/*.repo:为仓库的指向提供配置 yum源,使用网络源时一定要使用.repo所在的路径而不是在.repo目录里面;

            

仓库指向的定义:

         [repositoryID] 

         name=Some name for thisrepository给出仓库名字        

         baseurl=url://path/to/repository/ 指出仓库的访问路径=号左右不要有空格,可以指明多个路径

         enabled={1|0}   是否启用此仓库,默认是启用的[即value=1]

         gpgcheck={1|0}  对于此仓库的所有程序包是否检查合法性、完整性、签名信息

         gpgkey=URL  url就是能访问到秘钥文件的路径

         enablegroups={1|0} 是否支持使用组批量管理程序包

         failovermethod={roundrobin|priority} 故障转移方法,用于仓库的挑选,默认为:roundrobin,意为随机挑选;


 自定义yum源: 备份系统自带的repo文件并重命名,创建.repo文件;