【发布时间】:2016-06-03 07:28:04
【问题描述】:
brew 中是否有一种方法或特殊命令可以将已安装的包冻结到 requirements.txt 文件中,就像在 python 中使用 pip 一样?然后从该文件中快速重新安装它们?
【问题讨论】:
-
我也想知道这个!
标签: python shell command installation homebrew
brew 中是否有一种方法或特殊命令可以将已安装的包冻结到 requirements.txt 文件中,就像在 python 中使用 pip 一样?然后从该文件中快速重新安装它们?
【问题讨论】:
标签: python shell command installation homebrew
编辑以回答没有版本冻结的问题。
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-lts。 brew list --versions 的结果是什么?
node 5.5.0
node4-lts 4.3.1
简而言之,按照您的要求进行操作将需要一些脚本(可能存在也可能不存在,但似乎没有内置到 Homebrew 中),它试图将主要版本号映射到 homebrew/versions 中的条目并且是能够处理奇怪的情况,例如4 -> node4-lts。它将仅限于主要版本或在某些情况下主要和次要版本,因为这就是 homebrew/versions 所拥有的。它必须检查每个包的brew info 当前版本是什么,因为当前版本只是没有编号的包名称。
【讨论】:
brew list > stuff.txt ?
brew list
pip freeze 为您提供版本。
使用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/versions、homebrew/php 等)和木桶(如果您使用 Homebrew Cask)。
【讨论】:
macOSSierra 上出现错误,请参阅github.com/Homebrew/homebrew-bundle/issues/241