答案1
是否可以?是的。这两个程序都是开源的。方便吗?并不真地。
为什么?
包管理器的工作方式或多或少是这样的:
- 他们跟踪您系统上安装的软件包(及其版本)
- 为此,他们指定自己的包格式(例如 .deb),并使用这些包作为如何安装程序以及如何跟踪程序的说明
- 他们还跟踪依赖性(例如“这个程序需要 openssl 才能工作!”)
这就是为什么拥有一个使用很少包管理器的系统并不是最好的主意:
- 每个包管理器都必须了解正在安装的包(例如,
brew
必须知道您安装了firefox
,并且apt
必须知道您安装了tldr
) - 每个包管理器都必须解决其他包管理器的依赖关系(例如“Brew:这个程序需要
ncurses
,但apt
已经安装了ncurses
,所以我不需要拉它们!”)。
您会看到,问题在于2
包管理器是底层存储库的抽象。像 Debian 人员这样的人选择他们希望用户使用的软件包,并将它们提供给其他人。然而,他们也选择这些软件包,以便系统保持一致;他们希望用最少的包来提供最多的功能。当 ncurses 版本 2 可以正常工作时,为什么还要安装 ncurses 版本 1,2 和 3?
第一个问题也是坏消息。包管理器必须互相告知他们所做的事情,否则他们可能会发生冲突(brew
不知道ncurses
已经安装了)。
那么为什么很难呢?
- 包管理器需要紧密合作
- 包管理者必须制定严格的政策,规定当他们无法就包达成一致时该怎么做
- 包管理器必须能够几乎互换地工作,唯一可见的区别是可用的程序
- 包管理器必须能够在更新时跟踪彼此的存储库。
这实际上意味着您需要一个由两个包管理器组成的包管理器。您需要一个新程序。
那我能做什么呢?
首先,我会问自己“我为什么要这样做?”。老实说,您的发行版应该为您提供大量的软件包。如果您对拥有的软件包数量不满意,您可以考虑切换到拥有更多所需软件包的其他发行版。
如果你是真的迫切希望让它brew
发挥作用,我会提出以下解决方案,尽管我不确定这是否完全可能:
- 抓住 的来源
brew
。 - 了解酿造配方格式。
- 编写一个程序,自动将菜谱转换为 Debian 软件包。
- 进行修改
brew
,以便每当您运行它时,它都会调用该程序将配方转换为.deb
包/搜索发行版存储库中的程序,然后调用apt
以安装此包。
进行这样的修改可能会花费很多时间,而且并不是一件容易的事情。我建议更改发行版或坚持使用包管理器。
答案2
是的,但这将是一种不小的浪费。制作一个更有意义聚苯胺对于 tldr 或让它被主要 Debian 存储库接受,或者只是使用https://tldr.ostera.io。