linux RPM软件包管理
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_file和rpm -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软件包管理的更多相关文章
- Linux - rpm 软件包管理
rpm 是 Red-Hat Package Manager(rpm 软件包管理器)的缩写 rpm 的命名规则: 第一部分为 rpm 软件包的名称,第二部分是版本号,第三部分是版本发布次数,第四部分是软 ...
- linux常用命令---rpm软件包管理
rpm软件包管理
- day61:Linux:权限管理&rpm软件包管理&yum工具
目录 1.权限管理 2.rpm软件包管理 3.yum工具(联网) 权限管理 1.什么是权限? 权限主要用来约束用户能对系统所做的操作 2.为什么要使用权限? 因为系统中不可能只存在一个root用户,一 ...
- 逐步搭建Lamp环境之rpm软件包管理
Linux中的rpm软件包管理类似于windows下的"xxx软件管家"."xxx电脑管家",其作用主要用于查询软件的安装情况.安装软件.卸载软件. 以下针对这 ...
- CentOS软件管理之源代码以及RPM软件包管理
在Linux系统下,对于软件包的管理有多种机制,有源代码方式.RPM软件包管理方式以及YUM软件管理方式,本篇随笔将详细讲解CentOS下源代码形式安装软件以及RPM软件包管理机制 一.源代码形式 首 ...
- Linux学习-软件包管理安装
rpm RPM是Red-Hat Package Manager(RPM软件包管理器)的缩写 软件包类型 二进制包:已经使用GCC编辑后的 tar源码包:需要编译 rpm包获取方式 1,系统镜像 需 ...
- Linux的软件包管理
此博客的环境任意. 主题Linux的软件包管理 一软件管理工具 1编译安装 2rpm包管理 3yum管理 二软件运行和编译 1ABI 应用程序的二进制接口 ABI:Appl ...
- RPM软件包管理的查询功能 转
RPM软件包管理的查询功能: 命令格式 rpm {-q|--query} [select-options] [query-options] RPM的查询功能是极为强大,是极为重要的功能之一:举几个常用 ...
- linux的RPM软件包管理工具
RPM(Redhat Package Manage)原本是Red Hat Linux发行版专门用来管理Linux各项套件的程序,由于它遵循GPL规则且功能强大方便,因而广受欢迎.逐渐受到其他发行版的采 ...
随机推荐
- python--学校管理系统(只做了学校管理的接口)
1.老师的要求是做学校管理.学生.老师的接口,本文档,只做了学校管理的接口 2.具体要求: 角色:学校.学员.课程.讲师 要求: 1. 创建北京.上海 2 所学校 2. 创建linux , pytho ...
- week2-结对编程【网页实现四则运算】
题目描述: 不知道大家是否尝试过这样一种开发模式:你有一个伙伴,你们坐在一起,并肩作战,面对着同一台显示器,使用着同一键盘,同一个鼠标,你们一起思考,一起分析,一起编程?这次,就让我们来体验一下结对编 ...
- 201521123037 《Java程序设计》第2周学习总结
1. 本周学习总结 初步学会分析使用命令提示符进行编译的命令 了解使用import引入不同包的类 学会码云与eclipse的连接 使用Array和String函数编写程序 2. 书面作业 1. 使用E ...
- 201521123071 《JAVA程序设计》第十三周学习总结
第13周作业-多线程 1. 本周学习总结 以你喜欢的方式(思维导图.OneNote或其他)归纳总结多网络相关内容. 1.常用端口号:Web服务:80 FTP服务:21 Telnet服务:23 2.网络 ...
- ecshop商城系统登录出现登录闪退问题
症状:ecshop商城系统提示登录成功,而且状态也是登录,一刷新,自动退出了,真坑爹 解决方案: 1.点着点着经常无故退出,感觉session被清空了.查找原因:ecshop中有用ip地址来验证,而公 ...
- Linux下的定时任务 - Cron服务
最近搞咕自己的笔记系统,虽然现在是个人的使用,对于数据库的数据还是比较少,但是安全还是一个我必须注意的东西. (特别是前段时间中了比特币的病毒之后,更是让我关注了我的主机的安全的问题.) 今天的随记是 ...
- webservice第一篇【介绍、Scoket、http调用、wsimport调用】
WebService介绍 首先我们来谈一下为什么需要学习webService这样的一个技术吧-. 问题一 如果我们的网站需要提供一个天气预报这样一个需求的话,那我们该怎么做????? 天气预报这么一个 ...
- jQuery中的常用内容总结(一)
jQuery中的常用内容总结(一) 前言 不好意思(✿◠‿◠),由于回家看病以及处理一些其它事情耽搁了,不然这篇博客本该上上周或者上周写的:同时闲谈几句:在这里建议各位开发的童鞋,如果有疾病尽快治 ...
- 去掉 Warning:$HADOOP_HOME is deprecated
修改配置文件/etc/profile,增加环境变量HADOOP_HOME_WARN_SUPPRESS=1, 保存退出,再次启动hadoop,就不会出现警告信息了
- MySQL索引优化实例说明
下面分别创建三张表,并分别插入1W条简单的数据用来测试,详情如下: [1] test_a 有主键但无索引 CREATE TABLE `test_a` ( `id` int(10) unsign ...