zoukankan      html  css  js  c++  java
  • Linux操作系统常用命令合集——第六篇-软件包操作(2个命令)

    、前言介绍

    软件包即程序包

    程序包管理

      关键词:rpm程序包管理、YUM仓库管理、源码编译安装

    程序包管理:

      将编译好的应用程序的各组成文件打包一个或几个程序包文件,从而方便快捷地实现程序包的安装、卸载、查询、升级、和校验等管理操作

    管理程序包的方式:

      使用包管理器:rpm

      使用前段工具:yum

    rpm包含命名方式:

      name-VERSION-release.arch.rpm

         VERSION:major.minor.release

         release.arch:

         常见的arch:

           x86:i386, i486, i586. i686

           x86_64:x64, x86_64, amd64

           powerpc:ppc

           跟平台无关:noarch

    包之间:存在依赖关系

      X, Y, Z

    二、命令详解

    1.rpm

    【命令作用】

     程序包管理

    【命令语法】

    rpm    [选项]    [参数]

    【常用选项】

    (1)安装:

    rpm {-i|--install} --注意花扩符号,必须包含选项[install-options] PACKAGE_FILE ...查询为软件头代表名:tree,安装为整个文件名

    -v<verbose>  --显示详细过程

    rpm {-i|--install}  

    -h  --以显示程序包管理执行进度,每个#表示2%的进度

    rpm -ivh PACKAGE_FILE ...

      [install-options]

        --test  --测试安装,但不真正执行安装过程

        --nodeps  --忽略依赖关系

        --replacepkgs  --重新安装

        --force  --强制安装直接代替nodeps和replacepkgs,但是尽量不要忽略依耐性关系

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

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

    秘钥文件:ll /etc/pki/rpm-gpg/

    (2)升级:

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

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

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

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

      [install-options]

        --test  --测试安装,但不真正执行安装过程

        --nodeps  --忽略依赖关系

        --oldpackage  --降级

        --fore  --强行升级

      注意:不要对内核做升级操作;Linux支持多内核版本并存,因此,直接安装新版本内核

         如果原程序包的配置文件安装后曽被修改,升级时,新版本提供的同一配置文件不会直接覆盖老版本的配置文件,而把新版本的文件重命名(FILENAME.rpmnew)后保留

    (3)查询:

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

      [select-options]  --挑选选项

      -a  --所有已安装程序包

      -f  --查看指定的文件由哪个程序包安装生成

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

      [query-options]  --查询选项

      -c  --查询程序的配置文件

      -d  --查询程序的文档

      -i  --查询程序的信息

      -l  --查看指定的程序包安装后生成的所有文件

    常见的组合用法:

      -qi PACKAGE, -qf FILE, -qc PACKAGE, -ql PACKAGE, -qd PACKAGE

      -qpi PACKAGE_FILE, -qpl PACKAGE_FILE, ...

      -qa

    (4)卸载:

    rpm {-e|--erase} PACKAGE_NAME ...

      --test  --测试卸载,但不真正执行卸载过程

      --nodeps  --忽略依赖关系

    (5)校验(非常用):

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

      rpm -V FILE

      S  --文件大小差异

      M  --权限差异

      5  --验证码差异

      D  --主设备号和次设备号

      L  --路径差异

      U  --文件拥有者差异

      G  --文件拥有组差异

      T  --修改时间差异

      P  --特性差异

      包来源合法性验证及完整性验证:

      完整性验证: SHA256

      来源合法性验证: RSA

      公钥加密:

      对称加密:加密、解密使用同一密钥

      非对称加密:密钥是成对儿的

      导入所需要公钥:

      rpm --import /PATH/FROM/GPG-PUBKEY-FILE导入*

      CentOS 7  发行版光盘提供的密钥文件:RPM-GPG-KEY-CentOS-7 

    (6)数据库维护:

    RPM数据库  ll /var/lib/rpm

      ll /var/ilb/rpm  --查询数据文件

      rpm {--initdb|--rebuilddb}

        initdb  --初始化。如果事先不存在数据库,则新建之;否则,不执行任何操作

        rebuilddb  --重建。无论当前存在与否,直接重新创建数据库

     

    【参数说明】

     指定要操纵的rpm软件包

    【命令示例】

     

    2.yum

    【命令作用】

    YUM(Yellow dog,全称为 Yellow dog Updater,Modified)是一个FedoraRedHat以及CentOS中的Shell前段软件包管理。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。

    yum repository:yum repo

      --存储了众多rpm包,以及包的相关的元数据文件放置于特定目录下:repodata)

      文件服务器

        ftp://

        http://

        nfs://

        file:///

    yum 客户端

        配置文件:

          /etc/yum.conf  --为所有仓库提供公共配置

          /etc/yum.repos.d/*.repo  --为仓库的指向提供配置

        仓库指向的定义

        [repositoryID]

        name=Some name for this repository

        baseurl=url://path/to/repository/

        enabled={1|0}

        gpgcheck={1|0}

        gpgkey=URL

        enablegroups={1|0}

        failovermethod={roundrobin|priority}

          默认为:roundrobin,意为随机挑选

        cost=

          默认为1000

    【命令语法】

      yum    [选项]    [参数]、

    【常用选项】

    -y<yes>  --对所有的提问回答"yes"

    -c  --指定配置文件

    -q  --静默模式

    -v  --详细模式

    -d  --设置调试等级(0/10)

    -e  --设置错误等级(0/10)

    -R  --设置yum处理一个命令的最大等待时间

    -C  --完全从缓存中运行,而不去下载或者更新任何头文件

    【参数说明】

     (1)command is one of(命令如下):

      install package1 [package2] [...]  --安装rpm程序包1 程序包2

      update [package1] [package2] [...]  --更新rpm程序包1 程序包2

      update-to [package1] [package2] [...]  --更新程序包1程序包2,。此命令的工作方式类似于“update”,但始终指定要更新的包的版本。

      check-update  --检查是否有可用的更新rpm软件包

      upgrade [package1] [package2] [...]  

      upgrade-to [package1] [package2] [...]

      distribution-synchronization [package1] [package2] [...]

      remove | erase package1 [package2] [...]  --删除指定的rpm程序包

      list [...]  --显示程序包的信息

      info [...]  --显示指定的rpm程序包的描述信息和概要信息

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

      clean [packages | metadata | expire-cache | rpmdb | plugins | all ]  --清理yum过期的缓存

      makecache

      groupinstall group1 [group2] [...]  --安装程序组group1和group2

      groupupdate group1 [group2] [...]  --更新程序组group1和group2

      grouplist [hidden] [groupwildcard] [...]  --查看可能批量安装的列表

      groupremove group1 [group2] [...]  --卸载程序组group1和group2

      groupinfo group1 [...]  --显示程序组group1信息

      search string1 [string2] [...]  --根据关键字string查找安装包

      shell [filename]  --进入yum的shell提示符[文件名]

      resolvedep dep1 [dep2] [...]  --显示rpm程序包1和2的依赖关系

      localinstall rpmfile1 [rpmfile2] [...]  --安装本地的rpm程序包1和2

       (maintained for legacy reasons only - use install)

      localupdate rpmfile1 [rpmfile2] [...]  --显示本地rpm程序包1和2进行更新

       (maintained for legacy reasons only - use update)

      reinstall package1 [package2] [...]

      downgrade package1 [package2] [...]

      deplist [all|enabled|disabled]  --显示rpm程序包的所有依赖

      version [all | installed | available | group-* | nogroups* | grouplist | groupinfo]

      history [info|list|packages-ilst|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]

      check

      help [command]

    (2)显示仓库列表

      repolist [all|enabled|disabled]

    (3)显示程序包

      list

        # yum list [all | glob_exp1] [glob_exp2] [...]

        # yum list {available|installed|updates} [glob_exp1] [...]

    (4)安装程序包:

        install package1 [package2] [...]

        reinstall package1 [package2] [...] (重新安装)

    (5)升级程序包

        update [package1] [package2] [...]

        downgrade package1 [package2] [...] (降级)

    (6)检查可用升级

        check-update

    (7)卸载程序包

        remove | erase package1 [package2] [...]

    (8)查看程序包information:

        info [...]

    (9)清理本地缓存

        clean [pakages | metadata | expire-cache | rpmdb | plugins | all]

    (10)构建缓存

        makecache

    (11)搜索:

        search string1 [string2] [...]

        以指定的关键字搜索程序包名及summary信息

    (12)查看指定包所依赖的capabilities:

        deplist package1 [package2] [...]

    (13)查看yum事务历史

        history [info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]

    (14)安装及升级本地程序包

        localinstall rpmfile1 [rpmfile2] [...]

         (maintained for legacy reasons only - use install)

        localinstall rpmfile1 [rpmfile2] [...]

         (maintained for legacy reasons only - use update)

    (15)包组管理的相关命令

        groupinstall group1 [group2] [...]

        groupupdate group1 [group2] [...]

        grouplist [hidden] [groupwildcard] [...]

        groupremove group1 [group2] [...]

        groupinfo group1 [...]

    (16)如何使用光盘当作本地yum仓库

       挂载光盘至某目录,例如/media/cdrom

          #mount -r -t iso9660 /dev/cdrom /media/cdrom

       创建配置文件

        [DVD]

        name=

        baseurl=

        gpgcheck=

        enabled=

    (17)yum的命令行选项:

        --nogpgcheck  --禁止进行gpg check

        -y --自动回答为"yes"

        -q  --静默模式

        --disablerepo=repoidglob  --临时禁用此处指定的repo

        --enablerepo=repoidglob  --临时启用此处指定的repo

        --noplugins  --禁用所有插件

    【命令示例】

    (1)# yum install -y samba  --安装samba服务并且所有的提问默认"yes"

    (2)# yum remove -y samba  --卸载samba服务并且所有提问默认"yes"

    (3)# yum list rpm*  --用yum的功能找出以rpm为开头的程序包名称有哪些

    (4)# yum clean all  --清除yum仓库缓存

    (5)# yum makeache  --生成yum缓存

     

    3.源码编译安装

      前提:准备开发环境(编译环境)

      安装软件包组"Development Tools""Development Libraries"

      C代码编译安装三步骤

        ./configure:

          (1)通过选项传递参数,指定启用特性、安装路径等;执行时会参考用户的指定以及Makefile.in文件生成makefile

          (2)检查依赖到的外部环境

        make:

          根据makefile文件,构建应用程序

        make install

      建议:安装前查看INSTALL,README

    创建yum仓库:
    createrepo [options] <directory>

  • 相关阅读:
    Linux定时任务调度
    Linux组管理和权限管理
    Linux压缩和解压缩类指令
    leetcode:Compare Version Numbers
    leetcode:Valid Palindrome
    Majority Element
    Min Stack
    leetcode:Intersection of Two Linked Lists(两个链表的交叉点)
    leetcode:Factorial Trailing Zeroes
    leetcode:Rotate Array
  • 原文地址:https://www.cnblogs.com/evolve/p/9252368.html
Copyright © 2011-2022 走看看