[英]How to freeze brew requirements like pip?
brew中是否有一种方法或特殊命令可以将已安装的软件包冻结到requirements.txt文件中,就像在python中使用pip一样? 然后从该文件快速重新安装它们?
使用Homebrew-bundle ; 它是专为此而设计的。
# generate a Brewfile
$ brew bundle dump
$ ls
Brewfile
# check everything is installed
$ brew bundle check
The Brewfile's dependencies are satisfied.
它适用于本地公式文件和当前用户的全局公式文件。 它允许您安装Brewfile
指定的Brewfile
(默认情况下,您可以使用您喜欢的任何名称),以及卸载已安装但未在文件中列出的内容。 该文件不仅列出已安装的公式,还安装了水龙头(例如homebrew/versions
, homebrew/php
等)和垃圾桶(如果你使用Homebrew Cask )。
编辑以回答没有版本冻结的问题。
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
当前版本是什么,因为当前版本只是没有编号的包名。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.