linux RPM软件包管理

目录

1.软件包的介绍

2.rpm包管理

3.rpm包管理前端工具

1.软件包的介绍

在我们在对软件包管理前,先对软件包有个很好的了解,这样更方便我们来对其进行管理。

软件包:是具有特定功能,用来完成某一任务的特定程序或一组程序,其由基本配置和若干可选部件构成,其形式可以是源文件码形式也可以是目标码形式的。

包文件:包文件中包含RPM包内文件、RPM包的元数据、安装或卸载时运行的脚本。

包的公共数据库:包含有程序包的名称及版本、依赖关系、功能说明、包安装后生成的各文件路径以及校验码信息,其位于/var/lib/rpm目录下。

包管理器:是将编译好的应用程序的各组成文件打包一个或几个程序包文件,从而方便快捷地实现程序包的安装、卸载、查询、升级和校验等操作。常用到的管理器有rpm包管理器,rpm包管理器的前端工具yum。

2.rpm包管理

CentOS系统上使用rpm命令管理程序包,进行安装、卸载、升级、查询、校验和数据库维护。

rpm - RPM Package Manager

Usage: rpm [OPTION...]

common options:

-D, --define='MACRO EXPR' :定义宏表达式

--undefine=MACRO:不定义宏

-E, --eval='EXPR':打印宏表达式

--rcfile=<FILE:...>,--macros=<FILE:...>:读取文件来代替默认文件

--noplugins:不激活任何插件

--nodigest:不检查包完整性

--nosignature:不检查来源合法性,忽略签名

-r, --root=ROOT:使用ROOT作为最高级的目录,默认‘/’

--dbpath=DIRECTORY:在目录中使用数据库

--querytags:显示所知的标签

--showrc:显示最终的rpmrc和macro配置

--quiet:提供简约的过程打印

-v, --verbose :打印详细过程

1)rpm包安装、升级和卸载

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

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

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

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

--allfiles:安装所有文件

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

--allmatches:移除所有匹配的包

--badreloc:在不可定位的包上重定位文件

-e,--erase:卸载包

--excludedocs:不安装文件

--excludepatth=<path>:跳过带有领导的path内容的文件

--force:代表--replacepakgs --replacefiles,为强制安装

-F,--freshen=<packagefile>:升级已经安装的包

-h,--hash:与-v一起,在安装包时打印安装过程

--ignorearch:不检查包的结构

--ignoreps:不检查包的操作系统

--ignoresize:在安装前不检查磁盘空间

-i,--install:安装包

--justdb:更新数据库但不修改文件系统

--nodeps:忽略依赖关系

--nofiledigest:不检查文件的完整性

--nocontexts:不安装文件的安全环境

--noorder:do not reorder package installation to satisfy dependencies

--noscripts:不执行程序包脚本

--notriggers:不执行任何被这个包触发的脚本

--nocollections:不执行任何收集行为

--oldpackage:降级安装(慎用)

--percent:打印包安装的百分比

--replacepkgs | replacefiles:替代安装,覆盖安装

-U,--upgrade=<packagefile>:升级包

注意

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

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

(3)upgrade :安装有旧版程序包,则“升级”,如果不存在旧版程序包,则“安装”;freshen :安装有旧版程序包,则“升级”,如果不存在旧版程序包,则不执行升级操作。

从上面可以看出,选项真不是一般多,实际上我们只是用些一般的操作

安装用:rpm -ivh Package_file

升级用:rpm -Uvh Package_filerpm -Fvh Package_file

卸载用:rpm -evh Package_file

实际上只有在刚安装的系统上我们才会用到rpm命令来安装、卸载、升级,系统基础配置好后,就一般不用rpm,因为很多软件包都是带有依赖关系的,rpm安装的时候会很麻烦,后期我们会用到yum包管理工具,下面会说到。

2)rpm包查询和校验

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

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

[select-options]:

-a, --all :所有文件

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

-g, --group:包所在组

-p, --package :针对尚未安装的程序包文件做查询操作

--pkgid :包id

--hdrid :包头识别

--triggeredby:查询触发包

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

--whatprovides:查询指定的 CAPABILITY(能力)由哪个包所提供

--nomanifest:do not process non-package files as manifests

[query-options]:

--changelog:查询rpm 包的changelog

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

-d:查询程序的文档

-i:information

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

--scripts:程序包自带的脚本

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

-R:查询指定的程序包所依赖的CAPABILITY

[verify-options]:

--nofiledigest:不校验文件完整性

--nofiles:不校验包内文件

--nodeps :不校验包的依赖性

--noscript:不执行校验脚本

查询结果所代表的意义:

S:file Size differs

M:Mode differs (includes permissions and file type)

5:digest (formerly MD5 sum) differs

D:Device major/minor number mismatch

L:readLink(2) path mismatch

U:User ownership differs

G:Group ownership differs

T:mTime differs

P:capabilities differ

总的来说查询用的还挺多的,-qa,-qf,-qp,-q --whatprovides 等挺使用的,而校验的话,我没怎么用过。

rpm除了上面提到的还有其他选项功能,大家可以用帮助查看。实际上,上面也提到了,一般我们也就用rpm来做查询用,其他的功能有更好的工具来做,例如使用yum来管理安装包。

3.rpm包管理的前端工具:yum

YUM: Yellowdog Update Modifier ,rpm的前端程序,可解决软件包相关依赖性,可在多个库之间定位软件包,up2date的替代工具。

要想使用yum工具,需要进行相关的配置。

1)yum repository配置

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

yum 相关的文件:

为所有repository提供公共的配置信息:/etc/yum.conf

为repository 的指向提供配置信息:/etc/yum.repos.d/*.repo

安装日志:/var/log/yum.log

缓存目录:/var/cache/yum/$basearch/$releasever

yum的repository配置文件中可用的变量

$releasever:当前OS 的发行版的主版本号

$arch:平台,i386,i486,i586,x86_64等 等

$basearch:基础平台;i386, x86_64

$YUM0-$YUM9:自定义变量

yum的repository配置文件中可选用的

http(s)

linux RPM软件包管理的更多相关文章

  1. Linux - rpm 软件包管理

    rpm 是 Red-Hat Package Manager(rpm 软件包管理器)的缩写 rpm 的命名规则: 第一部分为 rpm 软件包的名称,第二部分是版本号,第三部分是版本发布次数,第四部分是软 ...

  2. linux常用命令---rpm软件包管理

    rpm软件包管理

  3. day61:Linux:权限管理&rpm软件包管理&yum工具

    目录 1.权限管理 2.rpm软件包管理 3.yum工具(联网) 权限管理 1.什么是权限? 权限主要用来约束用户能对系统所做的操作 2.为什么要使用权限? 因为系统中不可能只存在一个root用户,一 ...

  4. 逐步搭建Lamp环境之rpm软件包管理

    Linux中的rpm软件包管理类似于windows下的"xxx软件管家"."xxx电脑管家",其作用主要用于查询软件的安装情况.安装软件.卸载软件. 以下针对这 ...

  5. CentOS软件管理之源代码以及RPM软件包管理

    在Linux系统下,对于软件包的管理有多种机制,有源代码方式.RPM软件包管理方式以及YUM软件管理方式,本篇随笔将详细讲解CentOS下源代码形式安装软件以及RPM软件包管理机制 一.源代码形式 首 ...

  6. Linux学习-软件包管理安装

    rpm RPM是Red-Hat Package Manager(RPM软件包管理器)的缩写 软件包类型 二进制包:已经使用GCC编辑后的 tar源码包:需要编译 rpm包获取方式 1,系统镜像   需 ...

  7. Linux的软件包管理

    此博客的环境任意. 主题Linux的软件包管理 一软件管理工具 1编译安装      2rpm包管理          3yum管理 二软件运行和编译 1ABI 应用程序的二进制接口 ABI:Appl ...

  8. RPM软件包管理的查询功能 转

    RPM软件包管理的查询功能: 命令格式 rpm {-q|--query} [select-options] [query-options] RPM的查询功能是极为强大,是极为重要的功能之一:举几个常用 ...

  9. linux的RPM软件包管理工具

    RPM(Redhat Package Manage)原本是Red Hat Linux发行版专门用来管理Linux各项套件的程序,由于它遵循GPL规则且功能强大方便,因而广受欢迎.逐渐受到其他发行版的采 ...

随机推荐

  1. NHibernate教程(11)--多对多关联查询

    本节内容 多对多关系引入 多对多映射关系 多对多关联查询 1.原生SQL关联查询 2.HQL关联查询 3.Criteria API关联查询 结语 多对多关系引入 让我们再次回顾在第二篇中建立的数据模型 ...

  2. 【集美大学1411_助教博客】个人作业2——英语学习APP案例分析 成绩

    个人作业2--英语学习APP案例分析,截止发稿时间全班31人,提交31,未提交0人.有一名同学已经写了作业但忘记提交了,这次给分了,但下不为例.由于助教这周有点忙,所以点评得非常不及时,请同学们见谅. ...

  3. 个人作业1——四则运算题目生成程序(java代码,基于控制台)

    一.题目描述: 从<构建之法>第一章的 "程序" 例子出发,像阿超那样,花二十分钟写一个能自动生成小学四则运算题目的命令行 "软件",满足以下需求: ...

  4. 团队作业4——第一次项目冲刺(Alpha版本)5th day

    一.Daily Scrum Meeting照片 二.燃尽图 三.项目进展 计时模式已经大致完成了 接下来是记录成绩的部分 四.困难与问题 1.新语言的学习与适应较慢,整体的开发进展达不到预期效果, 2 ...

  5. 201521123104 《Java程序设计》第5周学习总结

    1. 本周学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点 1.2 可选:使用常规方法总结其他上课内容. 1.接口不是类,不能使用new进行实例化; 2.接口可以扩展; 3.接口中可以包含 ...

  6. 201521123005《java程序设计》第四周学习总结

    1. 本周学习总结 1.1 尝试使用思维导图总结有关继承的知识点. 1.2 使用常规方法总结其他上课内容. ·继承(是什么,意义) -父类(被继承的类) -子类(继承父类) -多态(解决重复代码的问题 ...

  7. linux segmentation fault记录

    文章将记录linux学习使用中出现的各种segmentation fault,持续更新,希望对看到人有所帮助 1. linux pcap segmentation fault -- 2013.11.2 ...

  8. JDBC操作数据库之批处理

    JDBC开发中,操作数据库需要和数据库建立连接,然后将要执行的SQL语句发送到数据库服务器,最后关闭数据库连接,都是按照这样的操做的,如果按照此流程要执行多条SQL语句,那么就要建立多个数据库连接,将 ...

  9. 基于CSS UI开源框架汇总

    从16年数据统计就有20几款UI框架出现在市面上,至今为止能统计的框架应该有40款左右了.前端框架都是基于HMTL5.CSS.JS开发的,这里主要给大家聊一下CSS UI开源框架有哪些?以后工作中选择 ...

  10. Maven简介(一)

    在现实的企业中,以低成本.高效率.高质量的完成项目,不仅仅需要技术大牛,企业更加需要管理大牛,管理者只懂技术是远远不够的.当然,管理可以说有很多的方面,例如:对人员的管理,也有对项目的管理等等.如果你 ...