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] <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这种程序包管理工具,

时间: 2024-08-08 01:04:28

linux的程序包管理-rpm的相关文章

谢烟客---------Linux之程序包管理rpm使用

在CentOS系统上用rpm管理程序包,实现安装.卸载.查询.校验.升级.数据库维护 -ivh --replacepkgs -e -U 安装或升级 -F 仅安装 rpm -V file.rpm 校验程序包安装后是否发生改变 rpm --import GPG_FILE 将要安装某仓库的程序包,为了实现校验,必须事先导入GPG公钥 S:Size,5:MD5,T:Timestamp,U:user,G:Group /var/lib/rpm rpm程序的状态信息 如果元数据损坏: --rebuildb 直

linux之程序包管理器(rpm)

linux下的程序包可支持多种工具编写的,如C.C++.PERL等. 但是这种高级语言编写出来的代码是我们人能看懂的,但是计算机是看不懂的,那么计算机怎么执行,怎么了解人要它做什么呢? 这就需要我们做一些转换了,把人能读懂的语言让机器也能识别,这个过程就是由编译器完成的,通常是吧代码语言转换成二进制语言. 过程:预处理.编译.汇编.链接 一个程序的运行大部分时间是离不开库的. 什么是库呢?库也是一种程序,只不过与其他程序不同,库没有执行入口,不能独立运行,只能被其他独立运行的程序调用的时候才能执

Linux程序包管理rpm与yum

Linux程序包管理 Linux中软件的安装主要有两种形式:一种是直接下载源代码包自行编译后安装,另一种直接获取rpm软件包进行安装. 程序的组成部分: 二进制程序:程序的主体文件,比如我们运行一个ls命令就是一个二进制程序. 库文件:程序的公用功能模块,比如A程序需要用一个打印机,B程序也需要一个打印机就可以公用这一个模块了.在window下库文件为.dll格式,linux下为/lib/*so格式的文件. 配置文件:通过设置配置文件来改变程序启动时的运行特征. 帮助手册:使用的帮助文档.  

详解程序包管理RPM

一.定义      RPM是RPM Package Manager(RPM软件包管理器)的缩写,这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放式的,现在包括OpenLinux.S.u.S.E.以及Turbo Linux等Linux的分发版本都有采用,可以算是公认的行业标准了. 二.RPM包管理的用途 1.可以安装.删除.升级和管理软件:当然也支持在线安装和升级软件:2.通过RPM包管理能知道软件包包含哪些文件,也能知道系统中的某个文件属于哪个软件包:3.可以在查询系统中的

程序包管理rpm、quota、磁盘配额

下面介绍的是磁盘配额.quota及相关命令.rpm程序包管理器.rpm命令行工具的功能等. 一.磁盘配额 1.磁盘配额功能:磁盘配额可以用来构建文件服务器. 文件服务器功能:用来共享存储空间,让用户能够随时存储数据. 常见的文件服务器有FTP.SMB.网盘.网盘(极速上传) 磁盘配额主要是针对这类文件服务器进行用户的磁盘空间使用限制而提出的. 2.磁盘配额的设定对象 (1).能够实施读写操作的块设备: (2).要有正确的文件系统. 3.磁盘配额主要限制哪些人的访问行为 (1).用户 磁盘配额为指

程序包管理rpm、yum与简单编译安装程序

Linux程序包管理 Linux中软件的安装主要有两种形式:一种是直接下载源代码包自行编译后安装,另一种直接获取rpm软件包进行安装. 程序的组成部分: 二进制程序:程序的主体文件,比如我们运行一个ls命令就是一个二进制程序. 库文件:程序的公用功能模块,比如A程序需要用一个打印机,B程序也需要一个打印机就可以公用这一个模块了.在window下库文件为.dll格式,linux下为/lib/*so格式的文件. 配置文件:通过设置配置文件来改变程序启动时的运行特征. 帮助手册:使用的帮助文档. ?

学习笔记之Linux程序包管理rpm、yum、编译

无论是Windows系统还是Linux系统,我们用户想要在操作系统上获得更多的乐趣还是更多的功能的话,就需要在一个干净的系统上安装各式各样的软件程序,Linux上的是ELF格式的,目前比较常见的程序包管理器如: Redhat软件包管理器---rpm Debian软件包管理器---dpkg 一.1.RPM 安装:rpm {-i|--install} [install-options] PACKAGE_FILE... -v: verbose,详细信息 -vv: 更详细的输出 -h: hashmark

linux程序包管理rpm,yum和编译安装以及冒泡排序练习

linux程序包管理: API:Application Programming Interface POSIX:Portable OS 程序源代码--> 预处理--> 编译--> 汇编--> 链接 静态编译: 共享编译:.so ABI:Application Binary Interface Windows与Linux不兼容 ELF(Executable and Linkable Format) PE(Portable Executable) 库级别的虚拟化: Linux: WIN

Linux 程序包管理 rpm yum dnf

Linux程序包管理: 包管理器功能:打包,包管理(安装,升级,卸载,查询,校验) 目前Linux中最常见有两种常用工具 deb:debian Linux使用 包括ubuntu rpm:Redhat Package Manager ,Centos等在使用 程序包的组成: 二进制程序:/bin,  /sbin,  /usr/bin, /usr/sbin 库文件: /lib64, /usr/64 配置文件:/etc 帮助文件:manual, info 包管理器: 打包:将源文件,一个一个单一的归档文