【发布时间】:2016-08-28 03:39:29
【问题描述】:
我正在尝试使用旧版本(例如:1.4.5)安装 memcached,但我不知道该怎么做。
brew install memcached 安装最新版本。
我也试过brew install memecached1.4.5,但没用。
【问题讨论】:
-
回答stackoverflow.com/questions/3987683/… 对我不起作用,这个可以
标签: homebrew
我正在尝试使用旧版本(例如:1.4.5)安装 memcached,但我不知道该怎么做。
brew install memcached 安装最新版本。
我也试过brew install memecached1.4.5,但没用。
【问题讨论】:
标签: homebrew
通常,您可以检查是否有多个版本可用,您可以使用@指定版本。例如brew install package@2.8
$ brew info memcached
memcached: stable 1.4.24
High performance, distributed memory object caching system
https://memcached.org/
Conflicts with:
mysql-cluster (because both install `bin/memcached`)
Not installed
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/memcached.rb
...
如果你想要的版本不可用,你可以去 repo,查看历史记录
cd "$(brew --repo homebrew/core)"
git log master -- Formula/memcached.rb
然后你就可以找到你要找的提交了
commit 5ec463decefeaab3d1825b923ad2dbee73ffc6dc
Author: Adam Vandenberg <flangy@gmail.com>
Date: Fri Apr 9 21:19:48 2010 -0700
Update memcached to 1.4.5
签出该版本并安装:
cd "$(brew --repo homebrew/core)" && git checkout 5ec463decefeaab3d1825b923ad2dbee73ffc6dc
HOMEBREW_NO_AUTO_UPDATE=1 brew install memcached
安装完版本后,您可以通过以下方式将 brew 带到其最新版本:
git checkout master
然后,就是这样!
【讨论】:
HOMEBREW_NO_AUTO_UPDATE=1 brew upgrade memcached。
git -C "$(brew --repo homebrew/core)" fetch --unshallow,因为 brew 默认具有存储库的浅层克隆。
brew pin memcached 将阻止它在未来自动升级。
我愿意
brew unlink memecached
brew install memecached@1.4.5
brew link memecached@1.4.5 --force
【讨论】:
阿德里安的好答案的更多扩展版本也在 SO 上。
https://stackoverflow.com/a/53766019/3794873
要记住的一件事是,如果您安装的是较旧的 Formula,则 Homebrew API/方法自那时起可能已更改,因此您应该 brew edit appFormula 与当前版本进行比较,如果遇到任何问题,请与 brew edit app@your.version 进行比较在链接答案中的brew extract 命令之后尝试brew install app@your.version 时出错。
【讨论】:
2021 年更新:
$ curl https://raw.githubusercontent.com/Homebrew/homebrew-cask/<commit-hash>/Casks/<FORMULA>.rb > $(find $(brew --repository) -name <FORMULA>.rb)
$ brew reinstall <FORMULA>
您可以在此处找到木桶或公式文件 URL,提交消息应描述要获取 URL 的文件版本。
https://github.com/Homebrew/homebrew-core/commits/master/Formula/<formula>.rb
https://github.com/Homebrew/homebrew-cask/commits/master/Casks/<cask>.rb
信用:https://remarkablemark.org/blog/2017/02/03/install-brew-package-version/
【讨论】:
curl确实是cask,如果需要使用第二个sn-p修改为formula。此外,您不必复制整个提交 hash, 7 chars 就足够了。
现在分享我为自己制作的Adrian 的answer 的交互式单线器:
它仅根据 github URL 中的“/blob/”对brew info 中的“From”进行简单的解析,并对来自git log 的提交执行 bash select。
brew install 可以根据需要替换为brew reinstall。
在bash 5.1(来自 macports ;P)和env -i /bin/bash 3.2 在 macOS(高Sierra) 10.13.6 反对brew 3.3.11。 (前几天我可能做了一些敲击。)
(name= && { [[ $name ]]||read -ep "Name: " name;} && [[ $(brew info "$name"|sed -Ene'/^From: (.*)/s//\1/p') =~ ([^/]*)/blob/([^/]*)/([^/]*)/([^/]*) ]] && V=("${BASH_REMATCH[@]:1}") && N=(repo current dir file) && for s in ${!N[@]};do eval "${N[s]}=\${V[s]}" && declare -p >&2 "${N[s]}";done && cd "$(brew --repo "${repo//-//}")" && IFSO="$IFS" && IFS=$'\n' && select line in $(git log --oneline master -- "$dir/$file");do IFS="$IFSO" && commit=($line) && break;done && set -x && git checkout "$commit" && HOMEBREW_NO_AUTO_UPDATE=1 brew install "$name" && git checkout master)
Skål,致敬,干杯!
【讨论】: