我的编程空间,编程开发者的网络收藏夹
学习永远不晚

linux的程序包管理-rpm

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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.class="lazy" data-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] <package_file>+
        如果选择被安装的程序包事先并未安装,则全新安装,如果已经安装了旧版本,则可以升级安装;
      rpm   [-F|--freshen]   [install-options]  <pack゛ge_file>+
        仅仅只能对已经安装的低版本的程序包进行升级安装;
        常用选项:与安装相同
            --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这种程序包管理工具,

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

linux的程序包管理-rpm

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

2024-04-02

如何分析Linux RPM和YUM包管理

本篇文章为大家展示了如何分析Linux RPM和YUM包管理,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。先决条件为了最有效地利用本系列中的文章,您应该具有基本的 Linux 知识,并需要准备一个
2023-06-16

编程热搜

目录