文章目录

  • 1、Linux 中的包管理器是什么?
  • 2、什么是包?
  • 3、包管理器如何工作?
  • 4、不同类型的包管理器

1、Linux 中的包管理器是什么?

Linux 发行版之间的主要区别之一是包管理系统(the package management)。

简单来说,包管理器是一种工具,允许用户在操作系统上安装、删除、升级、配置和管理软件包。包管理器可以是一个图形应用程序,如软件中心,也可以是命令行工具,如apt-getpacman

2、什么是包?

包(package)通常是指应用程序,但也可以是 GUI 应用程序、命令行工具或软件库(其他软件程序需要)。包本质上是一个存档文件,其中包含二进制可执行文件、配置文件,有时还包含有关依赖项的信息。

以前软件常常从其源代码安装。一般可以参考一个文件(通常名为readme)并查看它需要哪些软件组件和二进制文件的位置。readme通常还包含配置脚本或 makefile。你必须自己编译软件或自行处理所有依赖项(某些软件需要安装其他软件)。

为了摆脱这种复杂的方式,Linux 发行版创建了自己的打包格式,为最终用户提供现成的二进制文件(预编译软件),以及一些元数据(版本号、描述)和依赖项用于安装软件。

大约在 90 年代中期,Debian 创建了 .debDEB 打包格式,而 Red Hat Linux 创建了 .rpmRPMRed Hat Package Manager 的缩写)打包系统。编译源代码仍然存在,但现在只是安装软件的一个可选方式。

要与打包系统交互或使用打包系统,还需要一个包管理器。

3、包管理器如何工作?

包管理器是一个通用概念,并不是 Linux 独有的。你会遇到不同软件或编程语言的包管理器,有专门用于 Python 包的 PIP 包管理器,甚至Atom 编辑器也有自己的包管理器。


几乎所有的 Linux 发行版都有软件存储库,它基本上是软件包的集合。是的,可能有多个存储库。存储库包含不同类型的软件包。

存储库还有元数据文件,其中包含有关软件包的信息,例如软件包名称、版本号、软件包描述和存储库名称等。当你在 Ubuntu/Debian 中使用apt show 命令时,就会看到这些信息。

系统的包管理器首先与元数据交互。包管理器在系统上创建元数据的本地缓存。当你运行包管理器的更新选项(例如 apt update)时,它会通过引用存储库中的元数据来更新此元数据的本地缓存。

当你运行包管理器的安装命令(例如 apt install package_name)时,包管理器会引用此缓存。如果它在缓存中找到包信息,它会使用 Internet 连接连接到适当的存储库,并在安装到系统之前首先下载包。

一个包可能有依赖关系。这意味着它可能需要安装其他软件包。包管理器通常会处理依赖项并将其与你正在安装的包一起自动安装。同样,当年你使用包管理器删除一个包时,它会自动删除或通知你系统有可以清理的未使用的包。

除了安装、删除这些显而易见的任务外,还可以使用包管理器来配置包并根据需要管理它们。例如,你可以阻止从常规系统更新升级包版本。

4、不同类型的包管理器

包管理器(package manager)因打包系统(packaging system)而异,相同的打包系统也可能有多个包管理器。

例如,RPMYumDNF包管理器。对于 DEB,有基于 apt-getaptitude命令行的包管理器。

Synaptic Package Manager:

包管理器不一定是基于命令行的。有像Synaptic这样的图形包管理工具。发行版的软件中心也是一个包管理器,即使它在下层运行 apt-getDNF

Linux 中的包管理器是什么?它是如何工作的?相关推荐

  1. Windows中使用包管理器(类似于apt/yum的) - Chocolatey

    Windows中使用包管理器 - Chocolatey简介 李俊才 的 CSDN 博客 邮箱 :291148484@163.com CSDN 主页:https://blog.csdn.net/qq_2 ...

  2. alpine linux apk删除,把玩Alpine linux(二):APK包管理器

    原标题:把玩Alpine linux(二):APK包管理器 Alpine Linux非常精简,开机内存占用也在二三十兆大,没有拆箱即用,就需要我们自己去做一些了解和配置. Alpine Linux的优 ...

  3. 把玩Alpine linux(二):APK包管理器

    2019独角兽企业重金招聘Python工程师标准>>> Alpine Linux非常精简,开机内存占用也在二三十兆大,没有拆箱即用,就需要我们自己去做一些了解和配置 Alpine L ...

  4. Linux安装Yum包管理器

    一般Fedora/RedHat/Centos是安装了yum包管理器的,但是有些时候,比如RedHat或其他商业Linux的yum可能没有Fedora的更新或更多,或者要首先服务费用,这时候,可以把yu ...

  5. linux中程序包管理方式出现的原由(转载)

    1.软件的安装卸载是很平常的事情,但是在linux上面却也这么的不简单.Linux的其中一个哲学思想就是 一个程序只做一件事,并且做好. 组合小程序来完成复杂任务.这样做有很多好处.但世界上的东西总是 ...

  6. VSCode中npm包管理器安装到卸载

    学习视频: https://www.bilibili.com/video/BV1BU4y147pS?p=21&spm_id_from=pageDriver npm包管理器安装到卸载 npm包管 ...

  7. 【Linux】yum 包管理器 与 vim 编辑器

    Linux 1. 软件包管理器yum 1.1 罗列软件包 1.2 查找软件包 1.3 安装软件 1.4 删除软件 2. 文件传输 2.1 rzsz 2.2 Xftp 3. vim - 编辑器 3.1 ...

  8. linux中虚拟机的管理器

    学习目标 1.安装LINUX下虚拟化的kvm(图形.命令) 2.虚拟机的快照 3.从局域网内迁移虚拟机 1.kvm基本概念 kvm(kernal-nssed Virtual Machine):基于内核 ...

  9. zypper 删除mysql_SUSE Linux 的Zypper包管理器使用实例

    Zypper是SuSE Linux中用于安装,更新,删除软件,管理存储库,执行各种查询操作.在本文中,将讨论zypper命令的不同示例. 语法: # zypper [--global-opts][-- ...

最新文章

  1. springboot集成logback日志 通用logback.xml模板详解
  2. SAP Business One on HANA登陆阿里云
  3. StoryBoard之User Defined Runtime Attributes的使用
  4. layui横线:带标题的横线(含代码、案例)
  5. Nginx源码分析 - HTTP模块篇 - HTTP模块的初始化(20)
  6. springMVC入门二
  7. dsp31段最佳调音图_dsp调音技巧_dsp调音最佳图
  8. 桌面计算机怎么设置时钟同步,电脑进入屏保后怎么设定让时间显示在萤幕上
  9. python画八卦图的指令_你会画先天八卦图吗?只要知道了每个卦的方位,画起来其实很简单...
  10. 最全面计算机英语单词列表(二)
  11. 苏格拉底-爱情、婚姻、外遇、生活
  12. No suitable context info for active keying set问题(已解决)
  13. 基于clamp.js封装vue指令,处理多行文本的溢出
  14. 基于TIA博途的一阶滞后滤波+中位值滤波+堆栈平均值滤波算法SCL语言程序(封装FB库)
  15. 怎么一键拼图?快速拼图这样做
  16. 【相机标定与三维重建原理及实现】学习笔记1——相机模型数学推导详解
  17. 从管易云·奇门到微盟通过接口配置打通数据
  18. 特征选择与稀疏学习详解
  19. win10 无法删除 注册表 蓝牙_如何解决处理深度技术Win10系统删除注册表项时出错问题...
  20. 苹果自带相册打马赛克_用苹果手机拍照,这几个设置一定要打开!还没开就太可惜了...

热门文章

  1. Spring 静态代理和动态代理
  2. 开源 java CMS - FreeCMS2.7 移动端栏目页静态化
  3. django+echarts+ajax异步+显示优化--基本例子
  4. keepalived双机热备原理及实例部署LVS+keepalived
  5. Google文件系统(GFS)翻译学习
  6. 你知道云计算,但是你知道“云工作”吗?
  7. 简单的redis使用watch完成秒杀抢购功能
  8. 数据库的基本命令操作
  9. Java 开发常用资源
  10. NASA 美国国家航空航天局开源项目列表