linux包管理器

Linux 中的包管理器是什么?

包管理器是一种允许用户在操作系统上安装、删除、升级、配置和管理软件包的工具。它可以是像软件中心这样的图形应用程序,也可以是像apt-get这样的命令行工具。

什么是包?

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

软件过去常常从其源代码安装,需要查看它有哪些软件组件、二进制文件,通常包括配置脚本或生成文件,还必须自己编译软件或处理所有依赖项(某些软件需要安装其他软件)。

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

包管理器如何工作?

包管理器是一个通用概念,它不是 Linux 独有的。有适用于不同软件或编程语言的包管理器,例如用于 Python 包的 PIP 包管理器。

几乎所有 Linux 发行版都有软件存储库,它基本上是软件包的集合并且可能有不止一个存储库。每个存储库包含不同种类的软件包,存储库中有元数据文件,其中包含有关软件包的信息,例如软件包名称、版本号、软件包描述和存储库名称等。(在 Ubuntu/Debian 中使用apt show 命令时可以看到内容)

系统的包管理器首先与元数据交互,包管理器在您的系统上创建元数据的本地缓存。运行包管理器的更新选项(例如 apt update)时,它会通过引用存储库中的元数据来更新此元数据的本地缓存。当您运行包管理器的安装命令(例如 apt install package_name)时,包管理器会引用此缓存。如果它在缓存中找到包信息,它会使用 Internet 连接连接到相应的存储库并在安装到您的系统之前先下载包。

一个包可能有依赖关系,这意味着它可能需要安装其他软件包。包管理器通常会处理依赖项并将其与您正在安装的包一起自动安装。包管理器会帮助处理 Linux 中的依赖关系。同样,当您使用包管理器删除一个包时,它会自动删除或通知您系统有可以清理的未使用包。除了安装、删除这些明显的任务外,您还可以使用包管理器来配置包并根据需要进行管理。例如,您可以阻止从常规系统更新中升级软件包版本。

包管理器因包装系统而异,但相同的包装系统可能有多个包管理器。

详细说明

一般来说linux系统基本上分两大类:

  • RedHat系列:Redhat、Centos、Fedora等
  • Debian系列:Debian、Ubuntu、kali等

RedHat 系列

  • 常见的安装包格式 rpm包,安装rpm包的命令是“rpm -参数”
  • 包管理工具 yum
  • 支持tar包

Debian系列

  • 常见的安装包格式 deb包,安装deb包的命令是“dpkg -参数”
  • 包管理工具 apt-get
  • 支持tar包

tar 只是一种压缩文件格式,所以,它只是把文件压缩打包而已。
rpm 相当于windows中的安装文件,它会自动处理软件包之间的依赖关系。
优缺点来说,rpm一般都是预先编译好的文件,它可能已经绑定到某种CPU或者发行版上面了。
tar一般包括编译脚本,你可以在你的环境下编译,所以具有通用性。
如果你的包不想开放源代码,你可以制作成rpm,如果开源,用tar更方便了。
tar一般都是源码打包的软件,需要自己解包,然后进行安装三部曲,./configure, make, make install. 来安装软件。

yum

Yum(全称为 Yellow dog Updater, Modified)是RedHat系列中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。

apt-get

apt-get是一条linux命令,适用于debian系列的包管理器,主要用于自动从互联网的软件仓库中搜索、安装、升级、卸载软件或操作系统。

dnf

DNF (全称为Dandified yum)是新一代的rpm软件包管理器,他首先出现在 Fedora 18 这个发行版中,目前和YUM共存。DNF克服了YUM包管理器的一些瓶颈,提升了包括用户体验,内存占用,依赖分析,运行速度等多方面的内容。

YUM和DNF的区别

dnf(全称为Dandified yum)是新一代的rpm软件包管理器,DNF克服了YUM包管理器的一些瓶颈,提升了包括用户体验,内存占用,依赖分析,运行速度等多方面的内容。目前和YUM共存,未来应该会逐步取代。

两者的参数和使用方式区别很小,使用方法大致相同,常用命令并无区别,推荐使用dnf代替yum。

DNF的优势

DNF使用C语言库hawkey进行软件包依赖关系解析,效率提升,内存消耗降低。
DNF如果配置和启用的库没有响应,DNF将跳过它并使用可用的repos继续事务,而不会像YUM,如果配置库不可用,YUM将立即停止工作。

DNF的不足

在 DNF 中没有 –skip-broken 命令,并且没有替代命令供选择。
在 DNF 中没有判断哪个包提供了指定依赖的 resolvedep 命令。
在 DNF 中没有用来列出某个软件依赖包的 deplist 命令。
当你在 DNF 中排除了某个软件库,那么该操作将会影响到你之后所有的操作,不像在 YUM 下那样,你的排除操作只会咋升级和安装软件时才起作用。

Yum和rpm的区别

yum 是rpm的前端,yum 最终会调用rpm。因为rpm不会自己处理依赖关系,所以当出现依赖问题时,需要人工去处理。yum 调用rpm当出现依赖问题时会自动处理依赖关系。

好玩的linux命令

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值