是否可以配置 `brew` 从 Debian 存储库安装软件包?

是否可以配置 `brew` 从 Debian 存储库安装软件包?

我最近安装了brew在我的 Debian 机器上安装命令tldr我的系统上的手册页。该命令对于安装非 Debian 打包的程序看起来很有用,而且它不需要sudo安装 packages 。但是,有一个限制:通过命令只能安装少数软件包brew

是否可以配置brew从 Debian 存储库安装软件包?

答案1

是否可以?是的。这两个程序都是开源的。方便吗?并不真地。

为什么?

包管理器的工作方式或多或少是这样的:

  • 他们跟踪您系统上安装的软件包(及其版本)
  • 为此,他们指定自己的包格式(例如 .deb),并使用这些包作为如何安装程序以及如何跟踪程序的说明
  • 他们还跟踪依赖性(例如“这个程序需要 openssl 才能工作!”)

这就是为什么拥有一个使用很少包管理器的系统并不是最好的主意:

  1. 每个包管理器都必须了解正在安装的包(例如,brew必须知道您安装了firefox,并且apt必须知道您安装了tldr
  2. 每个包管理器都必须解决其他包管理器的依赖关系(例如“Brew:这个程序需要ncurses,但apt已经安装了ncurses,所以我不需要拉它们!”)。

您会看到,问题在于2包管理器是底层存储库的抽象。像 Debian 人员这样的人选择他们希望用户使用的软件包,并将它们提供给其他人。然而,他们也选择这些软件包,以便系统保持一致;他们希望用最少的包来提供最多的功能。当 ncurses 版本 2 可以正常工作时,为什么还要安装 ncurses 版本 1,2 和 3?

第一个问题也是坏消息。包管理器必须互相告知他们所做的事情,否则他们可能会发生冲突(brew不知道ncurses已经安装了)。

那么为什么很难呢?

  1. 包管理器需要紧密合作
  2. 包管理者必须制定严格的政策,规定当他们无法就包达成一致时该怎么做
  3. 包管理器必须能够几乎互换地工作,唯一可见的区别是可用的程序
  4. 包管理器必须能够在更新时跟踪彼此的存储库。

这实际上意味着您需要一个由两个包管理器组成的包管理器。您需要一个新程序。

那我能做什么呢?

首先,我会问自己“我为什么要这样做?”。老实说,您的发行版应该为您提供大量的软件包。如果您对拥有的软件包数量不满意,您可以考虑切换到拥有更多所需软件包的其他发行版。

如果你是真的迫切希望让它brew发挥作用,我会提出以下解决方案,尽管我不确定这是否完全可能:

  1. 抓住 的来源brew
  2. 了解酿造配方格式。
  3. 编写一个程序,自动将菜谱转换为 Debian 软件包。
  4. 进行修改brew,以便每当您运行它时,它都会调用该程序将配方转换为.deb包/搜索发行版存储库中的程序,然后调用apt以安装此包。

进行这样的修改可能会花费很多时间,而且并不是一件容易的事情。我建议更改发行版或坚持使用包管理器。

答案2

是的,但这将是一种不小的浪费。制作一个更有意义聚苯胺对于 tldr 或让它被主要 Debian 存储库接受,或者只是使用https://tldr.ostera.io

相关内容