【问题标题】:How to freeze brew requirements like pip?如何冻结像 pip 这样的 brew 需求?
【发布时间】:2016-06-03 07:28:04
【问题描述】:

brew 中是否有一种方法或特殊命令可以将已安装的包冻结到 requirements.txt 文件中,就像在 python 中使用 pip 一样?然后从该文件中快速重新安装它们?

【问题讨论】:

  • 我也想知道这个!

标签: python shell command installation homebrew


【解决方案1】:

编辑以回答没有版本冻结的问题。

brew list >brew.txt
<brew.txt xargs brew install

--

Homebrew 旨在为您提供最新版本的软件包。冻结版本不是它的强项。

有两个功能可以助您一臂之力。 brew list --versions 将打印包含已安装版本号的软件包列表(以空格分隔,这需要重新格式化才能有用。brew tap homebrew/versions 使您可以访问一些旧版本的软件包。

很遗憾,命名方案不太适用。例如,我安装了node 包,目前是5.5.0。然后我brew install homebrew/versions/node4-ltsbrew list --versions 的结果是什么?

node 5.5.0
node4-lts 4.3.1

简而言之,按照您的要求进行操作将需要一些脚本(可能存在也可能不存在,但似乎没有内置到 Homebrew 中),它试图将主要版本号映射到 homebrew/versions 中的条目并且是能够处理奇怪的情况,例如4 -&gt; node4-lts。它将仅限于主要版本或在某些情况下主要和次要版本,因为这就是 homebrew/versions 所拥有的。它必须检查每个包的brew info 当前版本是什么,因为当前版本只是没有编号的包名称。

【讨论】:

  • 我实际上不是指版本 - 只是安装的软件包列表
  • 为什么不只是brew list &gt; stuff.txt
  • 哦,是的。 brew list
  • pip freeze 为您提供版本。
  • @idjaw 但是如何从该文件安装?
【解决方案2】:

使用Homebrew-bundle;它就是为此而设计的。

# generate a Brewfile
$ brew bundle dump
$ ls
Brewfile

# check everything is installed
$ brew bundle check
The Brewfile's dependencies are satisfied.

它适用于本地公式文件和当前用户的全局公式文件。它允许您安装 Brewfile 中指定的所有内容(这是默认设置,您可以使用您喜欢的任何名称)以及 uninstall 已安装但未在文件中列出的内容。该文件不仅列出了已安装的公式,还列出了已安装的水龙头(例如 homebrew/versionshomebrew/php 等)和木桶(如果您使用 Homebrew Cask)。

【讨论】:

猜你喜欢
  • 2013-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-08
  • 2013-12-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多