千家信息网

linux的程序包管理-rpm

发表于:2024-11-22 作者:千家信息网编辑
千家信息网最后更新 2024年11月22日,我们知道,程序就是指令加上数据的集合或者称为算法加上数据结构的集合。应用程序以源代码和二进制的形式存在:源代码是包含了整个应用程序的编程语言的所有代码的文本文件;二进制则是将源代码经过一系列的转换操作
千家信息网最后更新 2024年11月22日linux的程序包管理-rpm

我们知道,程序就是指令加上数据的集合或者称为算法加上数据结构的集合。应用程序以源代码和二进制的形式存在:源代码是包含了整个应用程序的编程语言的所有代码的文本文件;二进制则是将源代码经过一系列的转换操作之后得到的可以直接执行的文件。
使用源代码安装应用程序的步骤为:预处理(预处理器) --> 编译(编译器) --> 字节码 --> 汇编(汇编器) --> 链接(链接器) --> 可以直接执行的二进制程序文件。当我们使用源代码安装应用程序时,不同操作系统的相同操作安装出来的相同应用程序如果直接拿出来放在另一个操作系统上使用可能会不能使用,但如果两台主机的不同操作系统有POSIX的接口标准,便可以直接使用。
程序包管理器在制定系统中进行程序的安装、卸载、升级、查询及校验等工作。不同的linux发行版本,有着不同的程序包管理器:Debian : dpt (Debian Package Toolkits) ,dpkg工具,.deb后缀名的包文件;RdeHat : rpm (Redhat Package Manager),rpm工具,.rpm后缀名的包文件;S.u.s.e: rpm等。rpm成为linux的程序包管理器的行业标准;rpm是perl编写的,后来用C重写了rpm。
在制作rpm程序包的时候,通常其制作者会采用分包技术来构建rpm程序包,或者说是根据程序的不同功能,构建多个程序包。被分包的程序包分为主程序包和附属功能包。主程序包和附属功能包具有相同的版本号,发行版本号,操作系统以及兼容平台的标识,仅仅是多了个附属的功能而已。所以,主程序包往往被所有的附属功能包所依赖,不安装主程序包就不能安装附属功能包。
对于rpm程序包的命名,源码包和二进制包的命名方式是不同的:源码包:software_name-VERSION.src.rpm;二进制包:software_name-VERSION-[release].[os].arch.rpm。
rpm程序包中文件的组成清单:
1.程序的文件
2.文件清单
3.软件安装或卸载时所运行的脚本文件:共分为四类
1)preinstall:在正式的安装操作开始之前所运行的脚本,%pre
2)postinstall:在安装完成之后所执行的脚本,%post
3)preuninstall:在正式卸载操作开始之前所运行的脚本,%preun
4)postuninstall:在卸载完成之后所执行的脚本,%postun
在计算机中安装rpm程序包一般使用rpm或者yum工具。rpm命令行工具可以进行安装、卸载、升级(降级)、查询、文件校验、验证、数据库维护的操作。rpm中的通用选项为-v:显示安装历程的信息,仅仅显示安装软件名;-vv显示非常详细的操作信息。
rpm中的安装操作:rpm {-i|--install} [install-options] PACK-AGE_FILE ...
install-options:
-h,--hash:用50个#来表示安装进度
--test:并不是真正的安装软件包,仅仅是测试是否在安装时能够正常完成,dry run模式
--nodeps:忽略因为依赖关系导致的安装错误,不建议使用;
--replacefiles:替换文件:在安装软件包时,软件包中的文件会直接将原来安装的文件替换;
--replacepkgs:替换程序包:无需卸载软件包而重新安装
--noscripts:不运行任何脚本
--nosignature:不考虑软件包的来源是否合法
--nodigest:不考虑软件包是否完整
rpm中的升级操作:rpm -U [install-options] +
如果选择被安装的程序包事先并未安装,则全新安装,如果已经安装了旧版本,则可以升级安装;
rpm [-F|--freshen] [install-options] +
仅仅只能对已经安装的低版本的程序包进行升级安装;
常用选项:与安装相同
--oldpackage:用老版本的程序包替换新版本的程序包
--force强制升级
注意:不要对内核进行升级操作,linux可以支持多内核,可以直接安装新版本的内核,在启动界面可以手动更换;升级安装可能会带来文件的变化,因此系统默认不会直接更改之前安装过的程序的配置文件,新程序包中的配置文件会被重命名,通常会是:FINENAME.rpmnew
rpm中的卸载操作:rpm {-e|--erase} [--allmatches] [--nodeps]
--allmatchs:将卸载所有匹配制定名称的程序包的各个版本;
--nodeps:卸载时忽略依赖关系,不建议使用
--test:仅仅测试卸载,dry run模式
rpm中的查询操作:rpm {-q|--query} [select-options] [query-options]
直接给出程序包名
-a,--all查询所有已安装的程序包名
-f,--file FILE 查找指定的文件是由哪个程序包提供的;
-p,--package PACKAGE_FILE 对还没有安装的程序包文件中执行查询操作
[--whatprovides CAPABILITY] 查询指定的CAPBILITY是由哪个程序包所提供的
[--whatrequires CAPABILITY]查询指定的CAPBILITY被哪个程序包所依赖

query-options
[--changelog]查询rpm程序包的changelog
-c,--configfiles查询指定程序包中有哪些是配置文件
-d,--docfiles 查询指定程序包中有哪些文档文件
-i,--info查询程序包相关的信息,包括版本号,发行号,大小等;


-l,--list列表显示程序包安装会生成哪些文件
--provides列出制定程序包提供的所有的CAPABILITY
-R,--requires:查询指定程序包的依赖关系
--scripts:查看程序包所携带的脚本的内容
rpm的校验操作:rpm -V 文件名;用来确认文件是否被修改或覆盖,如被改变则在标准输出有一系列输出,否则无输出。
rpm的数据库管理操作:数据库的初始化和重建,数据库位于/var/lib/rpm。--dbpath指定数据库位置,--rebuilddb重建数据库,--initdb初始化数据库。
在使用rpm程序包管理工具时,总是会遇到依赖问题,导致安装一个所需的软件包会很麻烦,所以对于这种弊端开发出了yum这种程序包管理工具,

程序 文件 查询 数据 软件 版本 升级 数据库 脚本 软件包 管理 不同 功能 工具 系统 二进制 应用程序 源代码 应用 附属 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 做软件开发可以转哪些行业 广州戴尔服务器报价单 云服务器怕别人租用诈骗吗 软件开发产业前100强 虹口区管理软件开发哪家好 国内服务器可以干什么 1256号数据库应用技术计算机 网络安全的手抄报非常简单的 处理与处置涉嫌网络安全的电话 软件开发工作环境怎么样 软件开发与硬件工程 蠕虫是网络安全威胁 苏州直播系统软件开发 utt网络安全专业大学排名 sq 数据库连接 抚州市网络安全中标公示 HP 服务器 风扇转速 ctf网络安全入门书籍 我的世界开服务器如何打开公网 梦想世界服务器端 网络安全毕业论文开题 淘宝中国软件开发公司 网络安全常识手抄报内容顺口溜 建立健全作业队伍安全资信数据库 传奇世界数据库修改 地税系统网络安全 服务器内存不能组双通道 网络安全大佬薪资 现代软件开发重点难点论文 服务器停电后启动慢
0