文章目录

  • RPM 是什么?
    • 应用于哪些系统
    • RPM 的前端工具有哪些
    • RPM 包命名规范
    • RPM 安装软件的默认路径
    • RPM 安装原理图
    • RPM 命令详解
  • YUM 是什么?
    • 应用于哪些系统
    • YUM 原理说明
    • 主要特点
    • YUM 和 RPM 的区别
    • YUM 命令详解
  • DNF 是什么
    • 应用于哪些系统
    • DNF 命令详解
  • APT 是什么
    • 应用于哪些系统
    • APT 命令详解
    • APT-GET 是什么
    • APT-CACHE 是什么
    • APT-CDROM 是什么
    • APT 与 APT-GET 比较
  • DPKG 是什么
    • 应用于哪些系统
    • DPKG 命令详解
  • YAST2 是什么
    • 应用于哪些系统
  • ZYPPER 是什么
    • 应用于哪些系统
    • ZYPPER 命令详解

RPM 是什么?

RPM 是 RedHat Package Manage 的简写,是一种由红帽公司开发的软件包管理方式,在 Linux 中通过以 .rmp 为扩展名的文件对应用程序包进行管理。RPM 文件带有 .rpm 扩展名,RPM 程序包由一个存档文件组成,该文件包含特定程序包的库和依赖项。使用 RPM 我们可以方便的进行软件的安装、查询、卸载、升级、校验等工作。

RPM 早期被称为 Red Hat Package Manager,但由于 RPM 非常流行,大部分的 Linux 发行版本都使用了 RPM 管理软件包,所以它实际上已经成为 Linux 工业标准。所以 RPM 现在又被称为 RPM is Package Manager。RPM 现在是 Linux Standard Base (LSB) 中采用的包管理系统。

RPM最大的特点就是需要安装的软件已经编译过,并已经打包成RPM机制的安装包,通过里头默认的数据库记录这个软件安装时需要的依赖软件。当安装在你的Linux主机时,RPM会先依照软件里头的数据查询Linux主机的相关依赖软件是否满足,若满足则予以安装,若不满足则不予安装。

所以想要解决 RPM 软件包之间的依赖性问题往往会很繁琐,尤其是软件由多个 RPM 包组成时,有时候装一个软件要安装很多其他的软件包,忒麻烦!

应用于哪些系统

RPM 软件包管理方式一般是 Red Hat 派系的发行版本使用,另外 openSUSE、SUSE企业版、PCLinuxOS、Mandriva Linux、Mageia 也是要 RPM 作为软件包管理系统。

RPM 的前端工具有哪些

  1. yum:作为 RHEL 及 CentOS 的软件包前端工具

  2. dnf:作为 Fedora 的软件包前端工具

  3. zypper:作为 SUSE 发行版的软件包前端管理工具

  4. urpmi:作为 Mandriva Linux 及相关派生版的软件包前端管理工具

注意:还应该注意 rpm 是操作 RPM 的主要命令,而 .rpm 是 RPM 文件使用的扩展名。所以 “一个 rpm” 或 “某某 rpm” 一般是指 RPM 文件,而 rpm 通常指命令。

RPM 包命名规范

命名格式:name-version-release.os.arch.rpm软件名称-版本号-发布次数.适合linux系统.硬件平台.rpm

name:程序名称

version:程序版本号

release:软件包发布次数

os:即说明 RPM 包支持的操作系统版本。如:el6(即rhel6)、centos6、el5、suse11

arch:主机平台。如:i686、x86_64、amd64、ppc(power-pc)、noarch(即不依赖平台)

示例:bash-4.3.2-5.el6.x86_64.rpm,包全名为:bash-4.3.2-5.el6.x86_64.rpm,包名:bash

RPM 安装软件的默认路径

/etc 配置文件放置目录

/usr/bin 一些可执行文件

/usr/lib 一些程序使用的动态链接库

/usr/share/doc 一些基本的软件使用手册与说明文件

/usr/share/man 一些man page档案

RPM 安装原理图

RPM 命令详解

RPM 文件类似于 ubuntu 的 deb 文件,RPM 命令类似于 ubuntu 的 dpkg 命令。

详见《Linux 命令之 rpm – RPM 软件包的管理工具》

YUM 是什么?

YUM 是 Yellowdog Updater, Modified 的简写,YUM 是使用 RPM 作为软件包管理器的 Linux 操作系统的免费的开放源代码的命令行软件包管理应用程序,它是 Duke University 物理系最初为了管理 Red Hat Linux 系统而开发的软件包管理工具。

YUM 是基于 RPM 的前端管理工具,它是对 RPM 包进行管理的客户端,它是一种 Shell 前端软件包管理器。YUM 可以通过HTTP服务器下载、FTP服务器下载、本地软件池的等方式获得软件包,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理软件包的依赖关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。YUM 在安装软件时,会从服务器下载相应软件包,且会缓存在本地。

YUM 提供了查找、安装、删除某一个或一组甚至全部软件包的命令,而且命令简洁而又好记。使用 YUM 对 RPM 包进行管理,非常简单方便。

应用于哪些系统

目前它主要应用于 Red Hat 派系下的 Fedora、RHEL、SUSE 等 Linux 发行版中。

YUM 原理说明

Server 端先对程序包进行分类后存储到不同 repository 容器中,再收集大量 RPM 软件包的数据库文件中的关于描述程序包之间依赖关系的数据,然后根据这些数据生成描述 RPM 软件包的依赖关系及所需文件在服务端的存放位置的说明文件(.xml格式),并将此说明文件存放在服务端的 repodata 目录下供 Client 端取用。

Cilent 端通过 yum 命令安装软件时发现缺少某些依赖性程序包,Client 会根据本地的配置文件(/etc/yum.repos.d/*.repo)找到指定的 Server 端, 从 Server 端 repodata 目录下获取说明文件(xxx.xml)后存储在本地 /var/cache/yum 中方便以后读取, 通过 xxx.xml 文件查找到需要安装的依赖性程序包在 Server 端的存放位置, 再进入 Server 端 yum 库中的指定 repository 容器中获取所需程序包, 下载完成后在本地实现安装。

注意:YUM是一个在线软件管理工具,所以使用YUM进行的操作大都是需要在联网的条件下才能正常使用。

主要特点

  1. 可以自动解决软件包的依赖关系

  2. 可以对 RPM 包进行分组,基于组进行安装操作

  3. 引入仓库概念,支持多个仓库(即可以同时配置多个资源库),可以从发行官方存储库和其他第三方存储库安装 RPM 软件包

  4. 简洁的配置文件(/etc/yum.conf)

YUM 和 RPM 的区别

YUM 只是一个前端用来便捷管理 RPM 软件包的工具,而 RPM 则是一个软件包管理系统(软件包管理器、软件包管理组件、也可以理解为软件包管理工具),RPM 会把软件打包成以 .RPM 为扩展名的文件,并且也提供简单的命令来管理软件包。只是 RPM 的命令工具没有 YUM 的命令强大罢了。

而 YUM 则是在 RPM 的基础上对软件包进行管理,实现了 RPM 软件包管理器在功能上的扩展,YUM 必须依赖于 RPM,因此 YUM 是不能脱离 RPM 而独立运行的。

主要区别如下表所示:

RPM YUM
红帽于 1995 年推出了RPM Yellowdog Updater(YUP)于1999-2001年开发,YUM 在 2003 年取代了原始的 YUP
RPM 代表 RPM 软件包管理器(以前称为 Red Hat 软件包管理器) YUM 代表经过修改的 Yellowdog Updater
RPM 命令工具不能解决依赖关系,您必须手动安装它们 YUM 命令工具可以自动解决软件包的依赖关系并同时安装它们
允许同时安装同个软件包的多个版本 不允许,会提示该软件包已经安装,但是你可以更新和升级
使用 RPM 命令安装软件包时,必须提供软件包的确切位置 可以安装存储库中可用的任何软件包,只需要知道软件包名称
RPM 不依赖 YUM YUM 是一个 RPM 软件包的前端工具,在后端依旧使用 RPM 软件包管理器来管理软件包
RPM 命令工具只能安装已经下载到本地机器上的软件包 YUM 能在线下载并安装软件包,而且能在线快速更新/升级已安装的软件
RPM 不允许您将整个系统升级到最新的可用版本 YUM 允许您将系统升级到最新的可用版本
RPM 不允许您自动更新/升级系统上安装的软件包 YUM允许您自动更新/升级系统上安装的软件包
它不使用在线存储库执行任何操作 它完全依靠在线存储库来完成所有工作
RPM 属于低级软件包管理器,不仅提供基础的软件包管理功能,而且还负责将软件打包成以 .RPM 为扩展名的文件 YUM 属于高级的软件包管理前端工具,YUM 是在 RPM 的基础上对软件包进行管理的,也就是说 YUM 是依赖于 RPM 的
RPM 适用于所有环境 YUM 要搭建本地 YUM 源才可以使用!
RPM 是底层管理工具 YUM 是上层管理工具

YUM 命令详解

yum 命令类似于 ubuntu 的 apt 命令。

详见《Linux 命令之 yum – 》

DNF 是什么

DFN 是新一代的 RPM 软件包管理器。

应用于哪些系统

首次出现在 Fedora 18 这个发行版中。而最近,它取代了 YUM,正式成为 Fedora 22 的包管理器。

DNF 命令详解

APT 是什么

APT(Advanced Packaging Tool 的缩写)是 Linux 下的一款安装包管理工具,APT 是 dpkg 的前端管理工具。APT 可以快速、实用、高效的安装/更新软件包,并且可以自动管理软件包的关联文件和维护软件包已有的配置文件。

APT 由几个名字以“apt”打头的程序组成。apt-get、apt-cache 和apt-cdrom是处理软件包的命令行工具。

为了解决命令过于分散的问题,引入了命令 apt,它包括了命令 apt-get 使用最广泛的功能选项,以及命令 apt-cache 和 apt-config 中常用到的功能。在使用 apt 命令时,用户不必再由 apt-get 转到 apt-cache 或 apt-config,而且 apt 更加结构化,并为用户提供了管理软件包所需的必要选项。

简单来说,apt 就是 apt-get、apt-cache 和 apt-config 中最常用命令选项的集合。

应用于哪些系统

目前它主要应用于 Debian 派系下的 Debian、Ubuntu、Linux mint、elementary OS 等 Linux 发行版中。

APT 命令详解

APT-GET 是什么

APT-CACHE 是什么

APT-CDROM 是什么

APT 与 APT-GET 比较

DPKG 是什么

dpkg 是 Debian Packager 的简写。为 “Debian” 专门开发的软件包管理系统,方便软件的安装、更新及移除。

dpkg 是 Debian 和基于 Debian 的系统的软件包管理器的基础,它被伊恩·默多克创建于1993年。dpkg 与 RPM 十分相似,用于安装、卸载、查询和管理 deb 格式的软件包。

dpkg 本身是一个底层的工具。上层的工具,如 APT,被用于从远程获取软件包以及处理复杂的软件包关系。

dpkg 是一种 Linux 软件包管理系统,一般为 Debian 派系的 Linux 发行版本使用,前端管理工具为 apt。

应用于哪些系统

所有源自 Debian 的 Linux 发行版都使用 dpkg 作为包管理系统,例如:Knoppix、Debian、Ubuntu、Linux mint 等。

DPKG 命令详解

YAST2 是什么

yast2 是图形化界面,是 SUSE Linux 发行版的系统设置与软件管理工具,其实 SUSE Linux 也是以 RPM 作为软件包管理器。

现在的 yast 和 yast2 都是 yast2,2 表示版本号。为了兼容旧版 yast,yast 是 yast2 的软链接。

yast2 为了满足用户的使用界面,提供了 qt、gtk、ncurses 三种 frontend。但是内部仍然是同一套代码,只是表现层不同而已。你在 term 里面输入 yast2,也是使用 ncurses 界面。

使用这一工具我们就可以在GUI中配置:

  • Apache
  • DHCP(Dynamic Host Configuration Protocol),
  • DNS(Domain Name System),
  • Samba
  • 配置和集成硬件
  • 配置网络服务
  • 硬盘驱动器
  • 文件系统管理
  • 软件管理
  • 系统安装和更新
  • 用户管理

除了邮件服务器配置,ftp 配置及 LDAP 服务器配置外,YaST2 可能是最好的 Linux 系统管理工具了。

应用于哪些系统

SUSE Linux、openSUSE

ZYPPER 是什么

zypper 是 SUSE 发行版所特有的包管理工具,类似于 yum 和 apt-get ,适用于社区发行版 openSUSE 和企业发行版 SUSE Linux Enterprise。

应用于哪些系统

SUSE Linux、openSUSE

ZYPPER 命令详解

Linux 常用的软件包管理器/软件包管理工具详解相关推荐

  1. 队列管理器连接数设置_详解!基于Redis解决业务场景中延迟队列的应用实践,你不得不服啊...

    一.业务概述 我们假定设置两个队列,一个队列维护正式工单,另一个队列维护挂起工单.对于挂起操作,我们通过Redis设置key有效时间,当key失效时,客户端监听失效事件,获取工单,实现 挂起工单队列的 ...

  2. linux内存管理机制以及free命令详解

    linux内存管理机制以及free命令详解 一.linux内存管理机制 1.物理内存和虚拟内存 直接从物理内存读写数据要比从硬盘读写数据要快的多,因此,我们希望所有数据的读取和写入都在内存完成,而内存 ...

  3. ElasticSearch最全详细使用教程:入门、索引管理、映射详解、索引别名、分词器、文档管理、路由、搜索详解...

    墨墨导读:之前我们分享了ElasticSearch最全详细使用教程:入门.索引管理.映射详解,本文详细介绍ElasticSearch的索引别名.分词器.文档管理.路由.搜索详解. 一.索引别名 1. ...

  4. 磁盘管理器/磁盘管理工具给电脑硬盘分区

    关于给电脑硬盘分区的方法,大家都知道,一般情况下,可以借助Windows自带的磁盘管理器来完成.但特殊情况下,比如磁盘上已存有不少数据,需要在保留数据的情况下对硬盘重新分区,重新调整分区的大小,那么使 ...

  5. android高版本软件管理器,进程管理器 高级版

    进程管理器是一款手机内存清理和进程管理的系统工具软件:它可以使你更加方便的切换和关闭正在运行的程序. 功能: 1.通知栏一键终止任务/进程: 2.忽略任务/进程设置: 3.任务/进程负载.内存.CPU ...

  6. mysql 账户管理_Mysql账户管理原理与实现方法详解

    本文实例讲述了Mysql账户管理原理与实现方法.分享给大家供大家参考,具体如下: 账户管理 在生产环境下操作数据库时,绝对不可以使用root账户连接,而是创建特定的账户,授予这个账户特定的操作权限,然 ...

  7. 【Wi-Fi 802.11协议】管理帧 之 Beacon帧详解

    Beacon帧简介 信标帧,由AP以一定的时间间隔周期性发出,以此来告诉外界自己无线网络的存在. Beacon帧组成 下图为Beacon帧的组成 下图为抓包所得(AP为2.4g 11n模式),Pack ...

  8. python内存的回收机制_python的内存管理和垃圾回收机制详解

    简单来说python的内存管理机制有三种 1)引用计数 2)垃圾回收 3)内存池 接下来我们来详细讲解这三种管理机制 1,引用计数: 引用计数是一种非常高效的内存管理手段,当一个pyhton对象被引用 ...

  9. 大型企业中如何批量管理千万台服务器之ansible自动化运维工具详解 [⭐建议收藏⭐]

    文章目录 ansible 自动化运维工具 详解 关于作者 作者介绍 一.ansible 概述 1.1 ansible 概述 1.2 是什么要使用 ansible 1.3 ansible 功能 1.4 ...

  10. IBM服务器如何登录IMM管理口及IMM内容详解

    IBM服务器如何登录IMM管理口及IMM内容详解 IBM服务器的管理口IMM登录,主机后面有一个专用的管理端口(端口如下图) 连接电脑后,可以通过此端口登录IMM界面,IMM默认的IP地址是192.1 ...

最新文章

  1. 在html前面追加,在追加到DOM之前操纵html
  2. 我去,JS自执行匿名函数竟然有20几种写法!
  3. leetcode 225 用队列实现栈(JS)
  4. 三十八、商业智能与ETL基础知识
  5. 调试Android之system.img的来回切换。
  6. socket.io c++库编译不成功的注意事项
  7. LeetCode 210. 课程表 II(拓扑排序)
  8. Oracle/MySQL/PostgreSQL考题等你挑战(附假期活动获奖名单)
  9. 有没有一些细分IT行业,没有35岁现象
  10. android开发列表界面
  11. 用html设计前台界面,UI设计系列:WEB前端界面设计
  12. 计算机图桌面打印出来,电脑excel图片无法打印怎么处理
  13. 关于CIE RGB色坐标图转换到CIE XYZ色坐标图
  14. python中的pip是什么_python中的pip是什么意思
  15. 思科交换机配置试题_思科交换机基本配置
  16. 英语思维导图大全 基础语法(二)
  17. 蓝魔手机回归产品本身 老战友魅族OPPO怎么看?
  18. Latex引用参考文献的5种方式
  19. NING的2021年复盘
  20. 【Hello Linux】Linux入门

热门文章

  1. web前端课程设计——K.X的博客
  2. Grafana v5.2 设置
  3. android 背景渐变颜色代码,Android开发——实现背景颜色渐变效果
  4. linux 下 pip 安装教程
  5. 17110102_Windows系统下WebLogicServer12cR2安装详解
  6. vue json对比 进行编辑
  7. 模糊C均值聚类算法matlab实现,FCMClust(模糊c均值聚类算法MATLAB实现)
  8. lpc1788的地址空间分配
  9. Axure RP9教程大全
  10. matlab 数值计算方法 pdf,《现代数值计算方法(MATLAB版)》习题解答.pdf