一、前言介绍

软件包即程序包

程序包管理

  关键词: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操作系统常用命令合集——第六篇-软件包操作(2个命令)的更多相关文章

  1. Linux操作系统常用命令合集——第三篇-系统管理操作(25个命令)

    1.whoami [命令作用] 显示当前登录有效用户名称 [命令语法]  whoami    [选项] [常用选项] 无 [参数说明] 用户名称 [命令示例] 显示当前登录有效用户名称 # whoam ...

  2. Linux操作系统常用命令合集——第六篇-压缩和归档操作(16个命令)

    1.gzip [命令作用] 压缩和解压缩文件 gzip/guzip/zcat zcat:不显式展开的前提下查看文本文件内容 zdiff/zgrep/zless/zmore [命令语法]  gzip   ...

  3. Linux操作系统常用命令合集——第五篇-磁盘和文件系统操作(15个命令)

    1.fdisk [命令作用] 用于观察硬盘实体使用情况.也可以对硬盘分区. 对于一块硬盘来讲,最多只能管理15个分区 [命令语法]  fidisk    [选项]    [参数] [常用选项] -b& ...

  4. Linux操作系统常用命令合集——第四篇-文件系统权限操作(5个命令)

    1.umask [命令作用] 文件或目录创建时的遮罩码 [命令语法] umask     [选项]    [参数] [常用选项] -p  --输出的权限掩码可直接作为指令来执行 -s  --以符号方式 ...

  5. Linux常用命令合集

    常用命令合集 命令选项和参数 Linux中的命令格式为:command [options] [arguments]  //中括号表示可选的,即有些命令不需要选项也不需要参数,但有的命令在运行时需要多个 ...

  6. 【转】Ubuntu常用软件合集

    [转]Ubuntu常用软件合集 Ubuntu常用软件合集 我用的使Ubuntu-Kylin14.04,原因呢主要是觉得使本土化的,自带了日历.输入法.优客助手等易于上手的应用.也省的每次安装完原生的系 ...

  7. Timesten 日常管理命令合集

    Timesten 日常管理命令合集 以下所有操作都是基于TT  11 版,早前版本本人没用过,命令是否适用我不清楚啊! 各类服务管理 一.TT的启停  停服务:  1.停止复制与cache 进程:  ...

  8. es6常用基础合集

    es6常用基础合集 在实际开发中,ES6已经非常普及了.掌握ES6的知识变成了一种必须.尽管我们在使用时仍然需要经过babel编译. ES6彻底改变了前端的编码风格,可以说对于前端的影响非常巨大.值得 ...

  9. [转载]VIM命令合集

    Vim命令合集 http://www.cnblogs.com/softwaretesting/archive/2011/07/12/2104435.html 命令历史 以:和/开头的命令都有历史纪录, ...

随机推荐

  1. ALV报表——抓取工单长文

    ABAP抓取工单长文 运行效果: 代码: *&---------------------------------------------------------------------* *& ...

  2. 将springboot项目移到内网出现的问题!

    报找不到Jay包错误,在pom.xml文件中加这段 <repositories> <repository> <id>central</id> <u ...

  3. Python 在气象上的应用

    Python 在气象上的应用 grug350关注 0.7892019.03.15 23:19:31字数 913阅读 1,024 为什么选择python 免费和开源,没有商业许可限制anaconda p ...

  4. Dev GridControl 子集合标题

    显示效果: 设置: this.gridView3.OptionsView.ShowViewCaption = true; this.gridView3.ViewCaption = "资产明细 ...

  5. mysql8.0入坑体验

    正常从官网下载,并且正常安装,直到安装完成.然后用navicate连接,发现报错信息如下所示Client does not support authentication protocol reques ...

  6. JavaScript作用域、作用域链 学习随笔

    (本文是这些知识点的自我理解.写之余从头回顾,加深理解.取得更多收获之用.) 作用域(scope) 程序设计概念,通常来说,一段程序代码中所用到的名字(JS叫标识符(如变量名.函数名.属性名.参数.. ...

  7. 安装HANA Rules Framework(HRF)

    1. 收集文档 1.1  SAP HANA Rules Framework by the SAP HANA Academy link 1.2  HANA Rules Framework (HRF) b ...

  8. 【Zookeeper】基础学习概览【汇总】

    一.概述 1.1 简介 1.2 Zookeeper集群机制 1.3 Zookeeper特性 二.Zookeeper应用场景 三.Zookeeper数据结构 四.Zookeeper安装 五.Java操作 ...

  9. android开机启动流程说明

    android开机启动流程说明 第一步:启动linux 1.Bootloader 2.Kernel 第二步android系统启动:入口为init.rc(system\core\rootdir) 1./ ...

  10. 【DRF框架】视图组件

    基于mixins视图类 from rest_framework import mixins # 创建视图 class CreateModelMixin(object) def create(self, ...