什么是 Linux发行版;什么是包;什么是包管理器

news/2024/5/10 7:49:19/文章来源:https://blog.csdn.net/qq_41764621/article/details/127278345

一个朴素的常见的GNU/Linux操作系统发行版(如 Ubuntu)内容如下:


 

1.  Linux发行版(也被称为GNU/Linux发行版):

是一个系统,用户无须编译,安装后即可使用

2. Linux发行版一般集成了 "GNU/Linux 操作系统" 和 "各种应用软件(如 桌面环境、办公包(eg. Ubuntu的LibreOffice四件套)、媒体播放器、数据库等应用)"

3. Linux发行版(一般)通过 "软件包管理器" 来 支持和管理 自带的预安装软件 和 用户自己下载的应用软件     

["软件包管理器"  含义见下文]

4. Linux发行版 有两大类:

一类是商业发行版:如 Ubuntu(Canonical公司)、Red Hat Enterprise Linux等等

另一类是 社区发行版 :(它们由自由软件社区提供支持)如:Debian、Fedora、Arch等等


1. 什么是“软件包”(也称作  "包"):

Linux发行版 一般会按照 功能或服务 被切分成多个软件包(例如,将处理图片格式的功能封装为一个软件包)

[Linux发行版也是一堆软件的集合,所以它也是被切割为多个软件包,然后被软件包管理系统 安装的]

==> 软件包本质上是一个存档文件,包含二进制可执行文件、配置文件和一些必要的依赖信息。(软件包一般是 :已经被编译过的机器码 + 描述信息、版本信息、依赖信息等构成的元数据)

2. 软件包管理器 :

软件包管理器 是一种工具:它可以根据 软件包 提供的元数据 ,准许用户在操作系统上 安装、删除、升级、配置和管理 软件包。

软件包管理器可以是“软件中心”这样的图形化应用,也可以是 apt-get 或 pacman 这样的命令行工具。
 

[ps]软件包管理器不只是Linux上的概念,例如,对于python的包,也有 pip 包管理器

3. 【补充】为什么会出现包、包管理器这种东西:

以前,安装一个软件要通过源码进行安装:我们需要自己来部署源码之间的依赖关系,并且要求我们自己在本机将源码编译成功才可以使用该软件

人们通过软件提供的 README 来查看这个软件想要编译成功需要什么软件组件、各个二进制文件的位置都如何摆放(来实现依赖)。

往往,提供软件源码的人会给出一个配置脚本Makefile 来协助我们编译成功该软件。

为了避免上述的复杂操作:Linux发行版创建了自己的打包格式

(不同的Linux发行版本一个很大的不同就在于其打包方式和包管理器的管理方式不一致)

Linux发行版为终端用户提供了随时可用的预编译软件(二进制的包),以方便软件的安装;同时,为这些包数据提供一些元数据和依赖关系描述方便包管理器进行 安装、更新、配置、卸载等操作

pps. 我们在ubuntu中常用的 .deb包 就是上世纪90年代中期,Linux发行版 Debian创建的DEB打包格式

另一家商业Linux发行版 Red Hat Linux 创建了 RPM(Red Hat Package Manager 的缩写)打包系统(.rpm)


链接:

技术|包管理器的进化

技术|Linux 黑话解释:什么是包管理器?它是如何工作的?

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

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

相关文章

【qstock开源了】数据篇之行情交易数据

qstock简介qstock由“Python金融量化”公众号开发,试图打造成个人量化投研分析开源库,目前包括数据获取(data)、可视化(plot)、选股(stock)和量化回测(backtest)四个模块。其中数据模块(data&am…

Turbot4机器人入门教程-硬件清单

系列文章目录: Turbot4机器人入门教程-硬件清单 Turbot4机器人入门教程-软件清单 Turbot4机器人入门教程-NoMachine远程控制 Turbot4机器人入门教程-配置网络 Turbot4机器人入门教程-测试键盘 Turbot4机器人入门教程-测试相机 Turbot4机器人入门教程-测试IMU …

贝叶斯网络预测

贝叶斯网络预测 用于贝叶斯分类器的数据集 • 类标记c:playtennisyes,playtennisno, • 需计算P(yes),P(no) • 还需计算P(strong|yes),P(strong|no),P(high|yes),P(high|no),P(cool|yes),P(cool|no),P(sunny|yes),P(sunny|no)…

IDEA插件推荐

工具插件 1.IDE Eval Reset 不能多说,福利插件 2.Aixcoder 代码提示 代码纠错 3.MybatisX xml跳转 添加插件后在dao层会多一只戴红色头巾的小鸟,同样在对应xml文件方法前也会对应一直戴蓝色头巾的小鸟,点击即可在dao和xml文件之间跳转…

主机与虚拟机的网络联通常见问题及解决方案

文章目录前言虚拟机网卡通用配置(虚拟机与主机互联)通用配置常见问题1、虚拟机对应桥接网络不显示IP2、电脑连接热点,主机连不上虚拟机问题前言 所有博客文件目录索引:博客目录索引(持续更新) 虚拟机网卡通用配置(虚…

UE4给角色赋予跳跃的动画

上一篇文章中,给动画赋予跑的动画,这一篇文章给角色赋予跳的动画。 在Locomotinve中【Idle/Walk/Run】节点后面再次添加一个状态节点【JumpStart】 双击进入到【JumpStart】节点,把Jumping_up拖动到蓝图中,并且连线 回到【Locomo…

Tableau10——人口金字塔,漏斗图,箱型图

文章目录一,人口金字塔二,漏斗图三,箱型图一,人口金字塔 人口金字塔图本质上是条形图,可以用来比较不同类别之间的差异 首先,对于85年龄的人,统一划分为85岁,创建计算字段年龄&…

法学生民法方面的论文选题,有什么推荐吗?

论文选题是我们撰写论文的逻辑起点,是我们动用自己的知识储备和文献材料去进行挑选、鉴别、确定下来的。选题的好坏关系到论文最后的成败,因为选题反映着我们对自己研究领域的了解程度,法学相关的论文选题更反映这我们对法制建设实践情况的认…

使用docker搭建高可用Nacos注册中心

使用docker-compose搭建高可用Nacos注册中心写在前面使用dockerNacos1.x单机方式搭建进入docker hub,查找镜像按照说明启动通过浏览器访问添加配置并使用客户端测试集群方式搭建搭建nacos需要的数据库环境编写nacos集群的docker脚本并启动Nacos2.x单机方式搭建按照说…

【Unity小功能开发实战教程】在UI画布上画网格线

文章目录👉一、前言👉二、Unity上画网格线的效果👉二、画网格线的原理👉三、完整代码👉三、注意事项👉一、前言 在大多软件中,网格线常常起到辅助线条的作用,像word中的网格线主要用…

python作业4

1 2 3 4 5 6 7 8 9 10 实战 1 2 3 4 5 6

(5)catanddong_用resnet18迁移学习分类和测试

1、数据集制作 (1)将从kaggle下载的数据集中的train目录下的图片分类为cat和dog文件夹,每个文件夹下12500张图片 (2)使用教程1的方法进行数据的划分 (1)数据集的划分_chencaw的博客-CSDN博客 2、使用resnet18的预训练模型迁移训练 (1)使用了dqtm查看进度 参考了tqdm…

面向对象(上)01

面向对象(上)01 Java面向对象学习的三条主线: (第4 - 6章) 1. Java类和类的成员 : 属性, 方法, 构造器; 代码块, 内部类. 1. 面向对象的三大特征 : 封装性, 继承性, 多态性 , (抽象性) . 1. 其他关键字 : this , super , static , final , abstract , interface , package , i…

websocket协议详解

websocket是什么? websocket是一种浏览器与服务器进行全双工通信的网络技术,属于 应用层协议。它 基于TCP传输协议,并 复用HTTP 的握手通道,用来弥补HTTP协议在持久通信能力上的不足。 ws 默认端口:80wss 默认端口&a…

Java高并发编程实战7,ConcurrentHashMap详解

一、ConcurrentHashMap详解 1、HashMap 在JDK1.8以前,HashMap是基于数组 链表来实现的,HashMap是一个数组,每个数组元素又是一张链表。 当向HashMap中增加元素时,会先根据此元素Key的hash值计算出该元素将要保存在数组中的下标…

SqlServer2008R2自动删除备份

https://blog.51cto.com/u_15162069/2776830 首先我们打开SqlServer管理工具(SSMS),在左侧目录中找到 管理-->右键维护计划-->新建维护计划双击左侧下方目录:创建 ”清除维护“ 任务双击后打开提示窗口,我们设置 “清除维护” 任务内容:即:在删除本机数据库中,C:\T…

手写数字识别的数据集讲解

CLASS torchvision.datasets.MNIST(root: str, train: bool True, transform: Optional[Callable] None, target_transform: Optional[Callable] None, download: bool False) root (string): 表示数据集的根目录,其中根目录存放MNIST/processed/tra…

【初学者】Vue使用axios向Node.js发起请求以及跨域问题的解决

目录 项目创建 代码 解决跨域问题 几个注意点 运行结果展示 axios官方文档:起步 | Axios 中文文档 | Axios 中文网 项目创建 本文实例用到的两个项目,分别命名为server和vue-axios。 server是node.js项目,创建方式: # 创建…

Codeforces Round #825 (Div. 2)

A. Make A Equal to B Sample input 5 3 1 0 1 0 0 1 4 1 1 0 0 0 1 1 1 2 1 1 1 1 4 1 0 0 1 0 1 1 0 1 0 1 Sample output 1 2 0 1 1 题意: 你有两个长度为n的数组a和b,你可以进行一次操作,将a数组的某个位置的数取反,或者…

LVM与磁盘配额

分区的缺点: 1、一旦建立无法修改 想修改得重新格式化 数据丢失 2、不够灵活 空间只能来自一块硬盘,且必须是连续的空间 3、没有备份冗余功能 需要工程师手动备份如果没有lvm可以下载:yum install lvm2 -y LVM的管理命令 主要命令:LVM为我们提供了逻辑概念上的磁盘,使得文…