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
  • 包管理器:
    • 打包:将源文件,一个一个单一的归档文件中
    • 安装:将文件释放到相应路径下
    • 卸载:收集所有相关文件删除
    • 升级:更新相关文件
    • 查询:查询程序包相关信息
    • 校验:程序包的来源合法性,完整性

rpm包:

  • rpm打包:打包rpmbuild工具 基于specs文件按照各种规则完成打包。
  • 分包机制:一个程序包含各种功能,其中可能只有几种功能常用,几种功能偶尔用,几种功能很少用,将程序功能分开打包,分为核心包和支包。
    • 核心包:software-Version
    • 支包:software-devel-Version
  • rpm包命名机制:
    • name-Version-Release.ARCH.rpm

      5个字段

      name:包名

      Version:版本信息

major.minor    主版本号.次版本号

Release:发布版本次数

ARCH:适合的硬件平台 i386, i586, i686, x86_64

包与包之间:有可能存在依赖关系    例如安装A之前需要先安装B,安装B之前需要先安装C等等。rpm数据库:/var/lib/rpm

记录包名,安装生成文件,校验信息,依赖关系等等。

如何获取rpm包

  • 发行版提供的程序包,在光盘中一般在Packages目录中
  • fedora-EPEL ,组织收入rpm包,正式,权威,安全
  • 项目的官方站点, 比如tomcat,SVN官方站点
  • 搜索引擎:第三方提供,注意安全问题

http://rpmfind.net

http://rpm.pbone.net

http://pkgs.org

rpm命令实现程序包管理

  • 安装

    • rpm {-i|--install} [install-options] PACKAGE_FILE ...

      -i :install

      -v:查看详细的安装信息;-vv,-vvv更加详细的安装信息

      -h:显示安装进度

    • install-options
         [--allfiles] [--badreloc] [--excludepath OLDPATH]
         [--excludedocs] [--force] [-h,--hash]
         [--ignoresize] [--ignorearch] [--ignoreos]
         [--includedocs] [--justdb] [--nocollections]
         [--nodeps] [--nodigest] [--nosignature]
         [--noorder] [--noscripts] [--notriggers]
         [--oldpackage] [--percent] [--prefix NEWPATH]
         [--relocate OLDPATH=NEWPATH]
         [--replacefiles] [--replacepkgs]
         [--test]

--nodeps:忽略依赖关系,强制安装

--replacefiles:当某程序已经安装了,使用该命令直接覆盖安装

--replacepkgs:重新安装某个软件

--test:测试软件是否可以安装到系统中

示例:


升级:

  • rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...
    rpm {-F|--freshen} [install-options] PACKAGE_FILE ...

    -Uvh:如果安装过旧版本程序包,则更新至新版本;如果没有,则直接安装

    -Fvh:如果安装过旧版本程序包,则更新至新版本;如果没有,则不安装

    此处选择[install-options] 同安装时的选项

    --oldpackage:对程序进行降级安装

查询

  • rpm {-q|--query} [select-options] [query-options]

-qa:查询本机已经安装的所有软件

-q :只查询指定软件是否安装

-qi : 查询指定软件的详细信息,开发商,版本等

-ql:查询软件安装生成的所有文件列表

-qc:查询指定程序包安装生成的配置文件

-q --scripts:查询程序包相关的脚步

preinstall:安装前脚本

postinstal:安装后脚本

preuninstall:卸载前脚本

postuninstall:卸载后脚本

-qp[icdl] :查询未安装软件的信息,参数作用和上面一样

示例:

卸载

  • rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts]
               [--notriggers] [--test] PACKAGE_NAME ...

校验

  • rpm {-V|--verify} [select-options] [verify-options

    -V:后面加软件名,若该软件中文件被修改了,就会被列出

    -Va:列出系统上所有被改动过的文件

    -Vf:勒出某个文件是否被改动过

    S file Size differs 文件大小被修改
      M Mode differs 权限和文件类型被修改
      5 digest (formerly MD5 sum) differs MD5内容发生变化
      D Device major/minor number mismatch 设备的主/次代码已经改变
      L readLink(2) path mismatch Link路径发生变化
      U User ownership differs 文件属主被修改
      G Group ownership differs 文件属组被修改
      T mTime differs 文件创建时间被修改
      P caPabilities differ 依赖关系发生改变

    示例:

  • 包校验

来源合法性校验:非对称加密 (公钥)

完整性验证:单向加密

#该路径下存放了密钥 公钥文件
[[email protected] Packages]# ls /etc/pki/rpm-gpg/
RPM-GPG-KEY-CentOS-7  RPM-GPG-KEY-CentOS-Debug-7  RPM-GPG-KEY-CentOS-Testing-7

导入密钥命令:

rpm --import  /path/to/Key_file

手动校验:

rpm -K /path/to/rpm_file

    时间: 2024-10-10 17:20:06

    Linux 程序包管理 rpm yum dnf的相关文章

    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 编译

    rpm命令:rpm  [OPTIONS]  [PACKAGE_FILE] 安装:-i, --install 升级:-U, --update, -F, --freshen 卸载:-e, --erase 查询:-q, --query 校验:-V, --verify 数据库维护:--builddb, --initdb 安装:rpm {-i|--install} [install-options] PACKAGE_FILE ... rpm  -ivh  PACKAGE_FILE ... GENERAL

    Linux程序包管理rpm与yum

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

    Linux程序包管理及yum安装管理

    Linux程序包管理: API:ApplicationProgramming Interface   应用编程接口 POSIX:Portable OS    遵循本协议的程序均可在不同系统间移植 程序编写完成后,执行所要经过的处理步骤: 程序源代码 --> 预处理 --> 编译 --> 汇编 --> 链接 静态编译: 共享编译:直接调用.so共享对象实现 ABI:ApplicationBinary Interface  应用二进制接口 Windows与Linux所支持的可执行二进制

    2018-3-14Linux系统管理(12) Linux程序包管理(2)yum前端管理工具

    我们在之前的章节中讲到了Linux的程序包管理的基础与实现,后面也讲述了RPM包的管理命令实现了管理包的功能,主要用的是rpm命令,那么rpm实现程序管理总结如下:    rpm命令实现程序管理:       安装:-ivh, --nodeps, --replacepkgs       卸载:-e, --nodeps, --replacepkgs       升级:-Uvh, -Fvh, --nodeps, --oldpackage       查询:-q, -qa, -qf, -qi, -qd

    学习笔记之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中的程序包主要分为两类: 二进制可执行安装包和源代码程序文件包. 本文主要讲解使用rpm程序包管理器和yum管理器前端工具来实现对二进制可执行安装包的安装, 查询, 升级和卸载等相关操作. Linux中在二进制可执行安装程序包安装上会涉及多个文件的操作, 操作过程就会比较复杂, 为简化该过程就使用程序安装包管理器来管理程序包的安装过程, 大大简化了程序包安装过程. Linux根据发行版本不同, 使用不同的程序包管理器实现对程序包的管理, 在这里主要介绍两大分支: debian: 使用d

    Linux程序包管理之yum仓库、源码编译安装

    CentOS:yum,dnf URL:ftp://172.16.0.1/pub yum是C/S架构,是rpm的前端工具,依赖于rpm存在的: 1.本地要有yun程序: 2.本地要有配置文件(配置远程服务器yum仓库或本地服务器yum仓库): 3.要有存在的文件服务器(程序包仓库即yum仓库).(也可以在本地配置服务器yum仓库): yum支持的服务器有两种:一种是ftp服务器,第二种是http服务器: yum工作简述: yum是客户端,也认为是自我独立管理的组件,需要联系远程的仓库,从仓库中下载

    程序包管理rpm,yum用法解析及自动化部署apache server实战,让您轻松拥有apache网站!

    程序包管理器rpm,yum用法及apache httpd服务的自动化部署 程序包管理? 通常来说在windows中将需要安装的程序,程序名.exe下载下来然后点击setup的安装程序或直接点击程序包,下一步下一步即可.而Linux中程序包不是exe,不同的主流发行版有着不同的程序包管理机制.比较主流的主要是rpm程序包管理器和deb程序包管理. 这里要区别: 包名(PACKAGEFILE): rpm包程序文件的全名程序名(PACKAGENAME): rpm包不带版本号的程序名,比如QQ而不是QQ