Linux 常用的软件包管理器/软件包管理工具详解

文章目录

  • 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 而独立运行的。

主要区别如下表所示:

RPMYUM
红帽于 1995 年推出了RPMYellowdog Updater(YUP)于1999-2001年开发,YUM 在 2003 年取代了原始的 YUP
RPM 代表 RPM 软件包管理器(以前称为 Red Hat 软件包管理器)YUM 代表经过修改的 Yellowdog Updater
RPM 命令工具不能解决依赖关系,您必须手动安装它们YUM 命令工具可以自动解决软件包的依赖关系并同时安装它们
允许同时安装同个软件包的多个版本不允许,会提示该软件包已经安装,但是你可以更新和升级
使用 RPM 命令安装软件包时,必须提供软件包的确切位置可以安装存储库中可用的任何软件包,只需要知道软件包名称
RPM 不依赖 YUMYUM 是一个 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 命令详解

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/334286.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java world_Java World中的GraphQL简介

java world许多人认为GraphQL仅适用于前端和JavaScript,它在Java等后端技术中不占优势,但事实确实如此。 还经常将GraphQL与REST进行比较,但是这种比较是否合理? 首先,让我开始回答其中最重要的问题。 什么是GraphQL…

快速排序 动图_Java十大排序算法最强总结

看到一篇很不错的文章,不多说,看吧排序算法说明0.1 排序的定义对一序列对象根据某个关键字进行排序。0.2 术语说明稳定:如果a原本在b前面,而ab,排序之后a仍然在b的前面;不稳定:如果a原本在b的前…

feignclient注解使用_从 Feign 使用注意点到 RESTFUL 接口设计规范

最近项目中大量使用了Spring Cloud Feign来对接http接口,踩了不少坑,也产生了一些对RESTFUL接口设计的想法,特此一篇记录下。SpringMVC的请求参数绑定机制了解Feign历史的朋友会知道,Feign本身是Netflix的产品,Spring …

python写接口测试代码_python写运单接口测试(增改查)完整代码

importrequestsimportjsonfrom urllib importparseclassHttpWayBillRquest:运单的增改查 defaccess_token(self):获取tokenurl http://xxxxxxxxx.comusername 12333password 12334566res_json requests.get(url, auth(username, password)).json()print(access_token的结果为&a…

linux vim自动执行快捷键,Linux Vim快捷键操作命令整理

VIM中常用的替换模式总结1,简单替换表达式替换命令可以在全文中用一个单词替换另一个单词::%s/four/4/g“%” 范围前缀表示在所有行中执行替换。最后的 “g” 标记表示替换行中的所有匹配点。如果仅仅对当前行进行操作,那么只要去掉%即可如果…

eclipse占用内存过大_Java性能调优学习(三)-jmap+mat分析内存溢出问题实战

上一节我们讲了jinfo,jstat,jmap的使用,还简单的讲了下如何使用jmap导出内存映像文件,这次,我们来实战一把内存溢出问题。环境准备首先我们先模拟一下内存溢出的场景,以下这段代码在访问后肯定会造成堆内存…

spring boot自测_将测微仪与Spring Boot 2一起使用

spring boot自测这是快速入门,介绍了如何使用出色的Micrometer库来检测基于Spring Boot 2的应用程序并在Prometheus中记录指标 介绍 Micrometer在不同监视工具提供的客户端库上提供了基于Java的外观。 以Prometheus为例,如果我要将Java应用程序与Prome…

微软和 Windows 的发展简史

20世纪60年代中期,美国达特茅斯学院院长、匈牙利人约翰凯梅尼(J. Kemeny)和数学系教授托马斯卡茨(Thomas E. Kurtz)认为,像FORTRAN(世界上最早出现的计算机高级程序设计语言)那样的语…

elaseticsearch 配置ik分词器的热更新_Elasticsearch从入门到放弃:分词器初印象

Elasticsearch 系列回来了,先给因为这个系列关注我的同学说声抱歉,拖了这么久才回来,这个系列虽然叫「Elasticsearch 从入门到放弃」,但只有三篇就放弃还是有点过分的,所以还是回来继续更新。之前我们聊过了 Elasticse…

服务器windows模拟linux环境,科学网—Windows不用虚拟机或双系统,轻松实现shell环境:gitforwindows - 刘永鑫的博文...

windows缺少shell命令支持用过Linux服务器分析数据的小伙伴,一定对Linux强大Shell命令所折服,经常会感觉windows缺少这些命令而感觉不方便。还有想学习Linux Shell命令的小伙伴,一直没有一个很好的学习环境。双系统安装涉及分区改变对硬盘数据…

Mac OS 系统的发展历史

文章目录System 1.0(1984)System 2.0(1985)System 3.0(1986)System 4.0(1987)System 5.0(1987)System 6.0 (1988)System 7 (1991 )Sys…

苹果公司的电脑发展史——硬件篇

文章目录一、Apple I(1976)二、Apple II(1977)三、Lisa(1983)四、Macintosh(1984)五、PowerBook(1991)六、iMac(1998)七、iBook&#…

my.ini修改后服务无法启动_Spring Cloud Eureka 服务实现不停机(Zero-downtime)部署

问题互联网产品高速迭代,通常伴随着高频次的版本发布。部署新版上线需要重启服务,直接 kill 服务进程可能会造成服务短暂不可用,从而影响到正在使用的用户。Spring Cloud 项目中一般会用到 Ribbon 作为负载均衡,那么是不是只要保证…

苹果电脑 Mac OS X 系统诞生的故事和发展历史

文章目录CoplandNeXTRhapsodyOS XPublic Beta (Kodiak)Mac OS X v10.0 (Cheetah)Mac OS X v10.1 (Puma)Mac OS X v10.2 (Jaguar)Mac OS X v10.3 (Panther)Mac OS X v10.4 (Tiger)Mac OS X v10.5 (Leopard)Mac OS X v10.6 (Snow Leopard)Mac OS X Lion2001 年 3 月 24 日&#x…

Mac OS 的历史

文章目录概述1980年代前20世纪80年代20世纪90年代2000年以后概述 纵观电脑之历史,操作系统与计算机硬件的发展息息相关。 操作系统之本意原为提供简单的工作排序能力,后为辅助更新更复杂的硬件设施而渐渐演化。 从最早的批处理模式开始,分…

java 反射 速度_Java反射,但速度更快

java 反射 速度在编译时不知道Java类的最快方法是什么? Java框架通常会这样做。 很多。 它可以直接影响其性能。 因此,让我们对不同的方法进行基准测试,例如反射,方法句柄和代码生成。 用例 假设我们有一个简单的Person类&#x…

macOS 内核之 OS X 系统的起源

文章目录一、苹果公司早期(1972-1991)二、苹果在操作系统上的尝试(1991-1997)2.1 Star Trek 项目 (1992-1993)2.2 Copland-Mac OS 8 (1994-1996)三、收购与转折(1996-1997)四、NeXT 篇章4.1 NEXTSTEP(1985-1997)4.2 OpenStep(1993-1997)五、Mach 的历史5.1 Rochester’s Intell…

docker create_Docker动手教程2.2:容器基本操作2

内容摘要暂停/取消暂停容器删除容器进入容器创建容器暂停/取消暂停容器暂停容器命令:docker pause 容器ID/容器名注意STATUS列,被暂停的容器的状态依旧是“Up”,但是后面括号显示为“Paused”。取消暂停命令:docker unpause 容器I…

关于 Mac OS X 内核技术来源

Mach(Multiple Asynchronously Communication Hosts) 是一个由卡内基梅隆大学开发的操作系统内核,Mach的开发是为了取代BSD的UNIX核心。 Mach 内核的设计目标之一是要兼容 Unix 系统。 当初他们的设想是,真正的操作系统可以作为一…

用C语言编程画出图形,C语言图形编程(六) -图形程序设计实例:零件图形的绘制...

实例:一个零件图形的绘制有一个零件图,如下:对图3-1中的零件图形,如何根据它所标注的尺寸,按照适当的顺序有步聚地画出该图形,这首先要分析此零件图形的几何关系,了解构成这个图形各线段的性质&…