Linux基础——程序包管理(rpm)

获取程序包的途径
    1.    系统发行版的光盘或官方文件服务器
         http://mirrors.aliyun.com
         http://mirrors.163.com
         http://mirrors.souhu.com
    2.    项目的官方站点
    3.    第三方组织
         EPEL
         搜索引擎
             http://pkgs.org
             http://rpmfind.net
             http://rpm.phone.net

rpm命令管理
    rpm [OPTIONS] PACKAGE_FILE|PACKAGE_NAME
        PACKAGE_FILE:    包全名,例如httpd-2.4.6-88.el7.centos.src.rpm
        PACKAGE_NAME:    包名,例如httpd
    安装:rpm-ivh PACKAGE_FILE    
        -i:install 安装
        -v:输出详细信息
        -h:输出进度条,每个#表示2%的进度
        一般在安装rpm包时,使用以上选项即可
        特殊选项及用法:rpm -ivh [INSTALL-OPTIONS] PACKAGE_FILE
            INSTALL-OPTIONS:
            --test:测试安装,并非正真执行安装,作用为检查依赖关系及冲突消息等
            --nodepts:忽略依赖关系,不建议使用,虽然忽略依赖可以安装成功,但是有可能不能使用
            --replacepkgs:重新安装
            --nosignature:忽略签名信息,及不检查包的来源合法性
            --nodigest:忽略包的完整性,及不检查包的完整性
            --noscripts:忽略脚本
                注意:rpm在创建时,可以有四种类型的脚本文件,分别为
                    安装开始前运行的脚本文件:preinstall
                    安装完成后运行的脚本文件:postinstall
                    卸载开始前运行的脚本文件:preuninstall
                    卸载完成后运行的脚本文件:postuninstall
                    --noscripts:参数即为忽略以上全部四种脚本
                    --nopre:忽略preinstall脚本
                    --nopost:忽略postinstall脚本
                    --nopreun:忽略preuninstall脚本
                    --nopostun:忽略postuninstall脚本

升级:rpm -Uvh PACKAGE_FILE    升级并安装(如果之前没有安装,则之间进行安装)
              rpm -Fvh PACKAGE_FILE    升级(必须针对之前已经完成安装的rpm包,如果之前没有安装,则不进行安装)
             特殊选项及用法:rpm -Uvh|Fvh [UPGRADE-OPTIONS] PACKAGE_FILE
                 --oldpackage:降级
                 --force:强制升级
             注意:(1)一定不要对内核进行升级,如果想使用新版内核,则直接安装即可(因为Linux支持多种内核版本共存)
                        (2)如果之前修改过配置文件,则升级后,配置文件并不会覆盖,而是任然保留原有已经修改过的文件,新安装的配置文件则会重命名后保存,重命名的格式为FILENAME.rmpnew

卸载:rpm -e PACKAGE_NAME(注意,此处为PACKAGE_NAME,并非PACKAGE_FILE)
        特殊选项及用法:rpm -e [EARSE_OPTIONS] PACKAGE_NAME
            --allmatches:卸载所有版本
            --nodepts:忽略依赖关系(有些rpm包在卸载时,因为有依赖无法卸载,可以使用该选项直接卸载)
            --test:测试卸载,并非正真卸载,DRY RUN模式(俗称“干跑”)

 查询:rpm -q [SELECT-OPTIONS] [QUERY-OPTIONS]
        [SELECT-OPTIONS]
            PACKAGE_NAME:直接跟一个PACKEGE_NAME,可以查询该rpm包是否安装及其版本信息
            -a:查询所有安装的rpm包
                注意:当要查询一个rmp是否已安装时,一般使用rpm -qa | grep XXX
            -f FILE_NAME:查询该文件由哪个rpm包安装时生成
            -p PACKAGE_FILE:用于实现对未安装的rpm包执行查询操作
            --whatprovides CAPABILITY:查询指定的CAPABILITY由哪个rpm包提供
            --whatrequires CAPABILITY:查询指定的CAPABILITY被哪个rpm包依赖
        [QUERY-OPTIONS]
            --changelog:查询rpm包的changelog
            -l:安装时生成的所有文件列表
            -i:rpm包的所有详细信息
            -c:查询rpm包提供的配置文件
            -d:查询rpm包提供的文档
            --provides:列出该rpm包所能提供的所有CAPABILITY
            -R:查询该rpm包的依赖关系
            --scripts:查看rpm包自带的脚本文件
            常用方法: rpm -ql PACKAGE_NAME
                          rpm -qf FILE_NAME
                          rpm -qc PACKAGE_NAME
                          rpm -qd PACKAGE_NAME
                          rpm -qpl PACKAGE_FILE
                          rpm -qpi PACKAGE_FILE
                          rpm -qpc PACKAGE_FILE

校验:rpm -V [SELECT-OPTIONS] [VERIFY-OPTIONS]
        主要作用在于验证包的合法性和完整性
        导入信任的包制作者的密钥,密钥的保存位置为光盘镜像种的RPM-GPG-KEY-XXX
            rpm --import 密钥文件
            导入完成后在执行安装操作的同时自动完成验证
            如果手动验证,则使用rpm -K PACKAGE_FILE

数据库维护:rpm [DB-OPTIONS]    
        [DB-OPTIONS]
            --initdb:初始化数据库
            --rebuild:重新创建数据库
        注意:     rpm包的管理数据库路径为/var/lib/rpm/                    
                数据库操作很危险,最好不要使用

原文地址:https://www.cnblogs.com/super2279/p/11496842.html

时间: 2024-10-14 21:25:38

Linux基础——程序包管理(rpm)的相关文章

linux的程序包管理-rpm

我们知道,程序就是指令加上数据的集合或者称为算法加上数据结构的集合.应用程序以源代码和二进制的形式存在:源代码是包含了整个应用程序的编程语言的所有代码的文本文件:二进制则是将源代码经过一系列的转换操作之后得到的可以直接执行的文件.    使用源代码安装应用程序的步骤为:预处理(预处理器) --> 编译(编译器) --> 字节码 --> 汇编(汇编器) --> 链接(链接器) --> 可以直接执行的二进制程序文件.当我们使用源代码安装应用程序时,不同操作系统的相同操作安装出来的

Linux基础——程序包管理(yum)

yum和rpm的区别:    yum安装可以自动解决依赖关系,根据yum源中所提供的程序包,实现一键安装. yum命令详解格式:yum [OPTIONS] COMMAND PACKAGE_NAME COMMAND    安装:yum install PACKAGE1 [PACKAGE2] [……]    升级:yum update PACKAGE1 [PACKAGE2] [……]    卸载:yum remove | erase PACKAGE1 [PACKAGE2] [……]    查询:yu

谢烟客---------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与yum

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

linux之程序包管理器(rpm)

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

程序包管理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).用户 磁盘配额为指

学习笔记之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