Linux程序包管理之RPM、YUM

Linux程序包管理之RPM、YUMhtml


1、程序包管理工具前端

1.程序包制做流程node

     程序源码预处理后进行编译,编译成目标代码,而后汇编成二进制代码,最后将源程序所用的库代码与目标代码合并,最终造成可执行的二进制代码。web

2.程序包管理工具数据库

      通常状况下一个程序不止一个二进制程序,可能存在配置文件,帮助文档等相应文件,这时候咱们就须要一个打包软件将程序包及相关组件进行打包,此时就须要使用程序包管理工具。apache

    程序包管理器功能:vim

       把二进制程序、库文件、配置文件、帮助文件打包成一个文件;从而更方便地实现程序包的安装、升级、卸载和查询等管理操做后端

    3.经常使用程序包管理工具缓存

后端工具:服务器

         Debian:工具dpt, dpkg;包名 ".deb"

         RedHat:工具  rpm   ;包名 ".rpm" 

前端工具:自动解决依赖关系;

          RHEL系列:  yum

          Debian:  apt-get (apt-cache)

          SUSE::  zypper

          Fedora :  dnf


2、RPM命令管理程序包

1.什么是RPM

       RPM是一个开放的软件包管理器,全称是Redhat Package Manager,它工做于Red Hat Linux以及其它Linux系统,成为了Linux中公认的软件包管理标准

2.RPM的命名格式

     name-version-release-release.arch.rpm

    包名-主版本号.次版本号.发行号.arch.rpm

    主版本号:软件内容发生重大改进会修改主版本号

    次版本号:软件内容的某个子功能发生重大变化会修改次版本号

    发行号:修正了部分bug,调整了一点功能会修改发行号

     arch:表示为arch平台架构

      rpm:软件包扩展名

3.RPM经常使用命令

  rpm命令:rpm  [OPTIONS]  [PACKAGE_FILE]

        查询:

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

   [select-options]:

              PACKAGE_NAME:查询指定的程序包是否已经安装,及其版本;

wKioL1bwr7aTYpjKAAANXIRBBIc562.png

             -a, --all:查询全部已经安装过的包;

                       -f  FILE:查询指定的文件由哪一个程序包安装生成;

                       -p, --package PACKAGE_FILE:用于实现对未安装的程序包执行查询操做;

wKiom1bwrzeDIbgXAAAXwsR728w045.png


             --whatprovides CAPABILITY:查询指定的CAPABILITY由哪一个程序包提供;

             --whatrequires CAPABILITY:查询指定的CAPABILITY被哪一个包所依赖;


  [query-options]

            --changelog:查询rpm包的changlog

            -l, --list:程序安装生成的全部文件列表;

            -i, --info:程序包相关的信息,版本号、大小、所属的包组等;

            -c, --configfiles:查询指定的程序包提供的配置文件;

            -d, --docfiles:查询指定的程序包提供的文档;

            --provides:列出指定的程序包提供的全部的CAPABILITY

            -R, --requires:查询指定的程序包的依赖关系;

            --scripts:查看程序包自带的脚本片段;

 

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


      常规选项:

           -vverbose,详细信息

          -vv:更详细的输出


    安装选项:

           -hhash marks输出进度条;每一个#表示2%的进度;

wKioL1bwsIKwJS2uAAAa_Fyw5g8726.png

          --test:测试安装,检查并报告依赖关系及冲突消息等;

wKioL1bwsJSSLajfAAAgKZzn3qw634.png

          --nodeps:忽略依赖关系;不建议;

          --replacepkgs:从新安装

wKioL1bwsK3DX4iMAAAfTqeC170938.png

升级:

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

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


-U:升级或安装;

-F:升级


rpm  -Uvh PACKAGE_FILE ...若是装有老版本的,则升级;不然,则安装

rpm  -Fvh PACKAGE_FILE ...若是装有老版本的,则升级;不然,则退出 

wKioL1bwsOzzr0YsAAA0546Bafk437.png

--oldpackage:降级;

--force:强制升级;


注意:

(1) 不要对内核作升级操做;Linux支持多内核版本并存,所以,直接安装新版本内核;

(2) 若是某原程序包的配置文件安装后曾被修改过,升级时,新版本的程序提供的同一个配置文件不会覆盖原有版本的配置文件,而是把新版本的配置文件重命名(FILENAME.rpmnew)后提供;

卸载:

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

     -e   :卸载

        --allmatches:卸载全部匹配指定名称的程序包的各版本;

        --nodeps:忽略依赖关系

        --test:测试卸载,dry run模式

 

校验:

         rpm {-V|--verify}  PACKAGE_FILE ...  无输出信息即为正常、

 

 

数据库重建:

       rpm管理器数据库路径:/var/lib/rpm/,查询操做是经过此处的数据库进行;

       rpm {--initdb|--rebuilddb} [--dbpath DIRECTORY] [--root DIRECTORY]

 

       --initdb:初始化数据库,当前无任何数据库可实始化建立一个新的;当前有时不执行任何操做;

       --rebuilddb:从新构建,经过读取当前系统上全部已经安装过的程序包进行从新建立;

 

3、YUM程序包管理

        YUMrpm的基础上很好的解决了软件包之间的依赖关系。 YUM是一种基于C/S架构的服务,须要Server和Client来进行使用,即yum仓库和本地的yum工具。

 

1.YUM仓库(即服务端配置)

        yum仓库能够是本地文件、ftp服务器和http服务器。yum仓库的配置文件即为YUM的元数据文件,元数据文件须要存放在一个叫repodata的目录下面,其目录和组成yum众多rpm包须要同处于同一个目录下(在此目录下可用createrepo命令建立本地yum仓库)

wKiom1bwsSKQM5ucAABkhWp6pJE156.png


primary.xml.gz:定义了当前仓库中全部的rpm包列表以及各包之间的依赖关系和每一个软件包安装生成的文件列表 

filelists.xml.gz:当前仓库中全部RPM包的文件列表 

other.xml.gz:额外信息,rpm包的修改日志  

repomd.xml:记录的是上面三个文件的时间戳和校验和 

comps.xmlRPM包分组信息 

 

2.YUM本地工具(即客户端配置)

   客户端配置文件在/etc/yum.repos.d/*.repo文件内进行定义,能够定义多个.repo文件,也能够在一个repo文件定义多个yum服务器,其格式以下: 

 [RepositoryID] 

 name=Some name for this repository

 baseurl=yum仓库路径 

 enabled={0|1}:是否启用此仓库,默认不写的时候是启用 

 gpgcheck={0|1}:校验文件的完整性

wKioL1bwskmBVk96AAAZ4OkV4ro046.png

 yum仓库的路径有三种: 

 ftp服务器:  ftp:// 

 http服务器:http://

 本地文件    file:/// 

3.YUM经常使用命令

   显示仓库列表:yum repolist

wKiom1bwsfHgkNosAAAdJTu_NQE315.png

  显示程序包:

      yum list:查看yum列表 

               all:默认选项,会列出全部的rpm

               available:列出仓库中未安装的包 

               installed:列出显示已经安装的软件 

               updates:列出能够升级的软件包 

 

     yum clean:清除缓存 

wKioL1bwsqvAmwFNAAAQxTTXcL4883.png

  安装程序包:

      yum install Package

         yum y install Package直接自动完成软件的安装

           yum  reinstall  Package 从新安装      

  升级程序包:

             update Package  升级软件包 

           downgrade  Package (降级)

 

  检查可用升级:

            check-update

  卸载程序包:

           remove | erase Package     

  查看程序包information

              yum info Package

 

    查看指定的特性(能够是某文件)是由哪一个程序包所提供:

    provides | whatprovides feature1 [feature2] [...]

 

4.YUM的组管理命令

yum grouplist :查看组,包括安装或未安装的 

wKiom1bwsp_SuEZFAABa6rud3A8842.png 

yum groupinstall GROUPNAME  :安装组,注意若是组名中间有空格,须要使用”” 

groupinfo   组名:显示组包含包信息(若是组名中间有空格,使用””) 

wKiom1bwsyrwKldFAAAxbYc6M0w487.png

groupremove :删除组

 

4、源码程序安装

  1.经过提供开发组件

    CentOS 6: "Development Tools", "Server Platform Development",

第一步:configure脚本

    选项:指定安装位置、指定启用的特性--help: 获取其支持使用的选项

       选项分类:

         安装路径设定:

             --prefix=/PATH/TO/SOMEWHERE: 指定默认安装位置;默认为/usr/local/

             --sysconfdir=/PATH/TO/SOMEWHERE:配置文件安装位置;

                System types:

                     Optional Features: 可选特性

                         --disable-FEATURE

                         --enable-FEATURE[=ARG]

                     Optional Packages: 可选包

                         --with-PACKAGE[=ARG]

                         --without-PACKAGE

第二步:make

第三步:make install

 

安装后的配置:

1)导出二进制程序目录至PATH环境变量中;

    编辑文件/etc/profile.d/NAME.sh

    export PATH=/PATH/TO/BIN:$PATH

 

2)导出库文件路径

    编辑/etc/ld.so.conf.d/NAME.conf

    添加新的库文件所在目录至此文件中;让系统从新生成缓存:

    ldconfig [-v]

3)导出头文件

    基于连接的方式实现:

    ln -sv

4)导出帮助手册

    编辑/etc/man.config文件

    添加一个MANPATH

2.经过编译、安装web服务器来讲明编译安装的相关过程


1.解压源码包

                  tar xf httpd-2.2.29.tar.bz2并进入解压包目录

wKiom1bwtD_yMHOLAABBg35Qtfk850.png


2.配置参数、编译、安装

wKioL1bwtRig40I6AAAvmq1ScVI735.png

wKioL1bwtaiS1xCmAAAHFFdFw7g222.png

3.添加环境变量

               vim /etc/profile.d/httpd.sh ,添加以下内容

               export PATH=$PATH:/usr/local/apache/bin //增长环境变量

wKioL1bwtT2zhH7eAAAIOH1cvjs358.png

wKiom1bwtKiR89FwAAAuSjJmWaY969.png

httpd安装完后默认主页面文件路径:/var/www/html/index.html

相关文章
相关标签/搜索