如何在自制软件中安装特定版本的公式?例如,postgresql-8.4.4而不是最新的9.0。
答案 0 :(得分:2311)
答案 1 :(得分:725)
现在Homebrew / versions已被弃用,Homebrew / core支持具有新命名格式的多个公式版本。
安装特定版本,例如postgresql 9.5你只需运行:
$ brew install postgresql@9.5
要列出可用版本,请使用@:
进行搜索$ brew search postgresql@
==> Searching local taps...
postgresql@10.1 ✔ postgresql@9.4 postgresql@9.5 postgresql@9.6
答案 2 :(得分:443)
现在有一种更简单的方法来安装您之前安装的旧版公式。只需使用
brew switch [formula] [version]
例如,我定期在Node.js 0.4.12和0.6.5之间交替:
brew switch node 0.4.12
brew switch node 0.6.5
由于brew switch
只是更改了符号链接,因此速度非常快。请参阅External Commands下的Homebrew Wiki上的进一步文档。
答案 3 :(得分:217)
更新:2015年1月15日
brew install <url>
(可能必须先brew unlink
,例如brew unlink docker
)brew switch docker 1.3.3
brew switch docker 1.4.1
从此gist
brew update
brew versions FORMULA
cd `brew --prefix`
git checkout HASH Library/Formula/FORMULA.rb # use output of "brew versions"
brew install FORMULA
brew switch FORMULA VERSION
git checkout -- Library/Formula/FORMULA.rb # reset formula
## Example: Using Subversion 1.6.17
#
# $ brew versions subversion
# 1.7.3 git checkout f8bf2f3 /usr/local/Library/Formula/subversion.rb
# 1.7.2 git checkout d89bf83 /usr/local/Library/Formula/subversion.rb
# 1.6.17 git checkout 6e2d550 /usr/local/Library/Formula/subversion.rb
# 1.6.16 git checkout 83ed494 /usr/local/Library/Formula/subversion.rb
# 1.6.15 git checkout 809a18a /usr/local/Library/Formula/subversion.rb
# 1.6.13 git checkout 7871a99 /usr/local/Library/Formula/subversion.rb
# 1.6.12 git checkout c99b3ac /usr/local/Library/Formula/subversion.rb
# 1.6.6 git checkout 8774131 /usr/local/Library/Formula/subversion.rb
# 1.6.5 git checkout a82e823 /usr/local/Library/Formula/subversion.rb
# 1.6.3 git checkout 6b6d369 /usr/local/Library/Formula/subversion.rb
# $ cd `brew --prefix`
# $ git checkout 6e2d550 /usr/local/Library/Formula/subversion.rb
# $ brew install subversion
# $ brew switch subversion 1.6.17
# $ git checkout -- Library/Formula/subversion.rb
答案 4 :(得分:101)
我发现了一种比其他复杂解决方案更好的替代解决方案。
brew install https://raw.github.com/Homebrew/homebrew-versions/master/postgresql8.rb
这将下载并安装PostgreSQL 8.4.8
我找到了这个解决方案,开始按照搜索回购和回购中comment的步骤进行操作。
经过一番研究后发现,有人收集了一批稀有的配方奶粉。
如果您正在寻找MySQL 5.1.x,请尝试一下。
brew install https://raw.github.com/Homebrew/homebrew-versions/master/mysql51.rb
答案 5 :(得分:81)
按照@ halfcube的建议,这非常有效:
brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/fa992c6a82eebdc4cc36a0c0d2837f4c02f3f422/Library/Formula/postgresql.rb
答案 6 :(得分:69)
您可以在公式的历史记录中使用识别公式和特定提交的策略,该公式与您要安装的软件包的版本相匹配。
按键盘上的t
激活文件查找器。
确定一个看起来最相关的公式,可能是:Formula/mysql.rb
,将您带到forumla文件位置:https://github.com/Homebrew/homebrew-core/blob/master/Formula/mysql.rb。
点击位于https://github.com/Homebrew/homebrew-core/commits/master/Formula/mysql.rb的History
按钮,查看修订历史记录。如果您对MySQL 5.7.10感兴趣,可能需要单击5.7.11之前的最新版本,该版本导航到GitHub提交:
注意:如果您的浏览器未加载提交历史记录,则可能必须根据GitHub的建议在控制台中查看提交历史记录。如果您对在GitHub上看到该提交感兴趣,请替换URL中的提交SHA。或者,跳到下面的第7步。
点击&#34;查看&#34;按钮,在应用提交后查看mysql.rb文件的源。
然后点击&#34; Raw&#34;按钮查看原始来源。
复制网址。或者,使用mysql.rb
文件名自行构建URL,以标识您的公式和该公式的特定版本(由下面的URL中的提交SHA标识)。
使用$ brew install [URL from step 7]
$ brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/c77882756a832ac1d87e7396c114158e5619016c/Formula/mysql.rb
注意:此答案已更新,以便删除braumeister.org网站。同样的原则适用,braumeister只是提供了一种初学者友好的方式来导航公式版本。
答案 7 :(得分:28)
我刚刚使用Homebrew回到Maven 2.2.1,因为简单的brew install maven
安装了Maven 3.0.3。
首先你必须离开maven dir所以
$ brew unlink maven
使用brew tap命令
$ brew tap homebrew/versions Cloning into '/usr/local/Library/Taps/homebrew-versions'... remote: Counting objects: 590, done. remote: Compressing objects: 100% (265/265), done. remote: Total 590 (delta 362), reused 549 (delta 325) Receiving objects: 100% (590/590), 117.49 KiB | 79 KiB/s, done. Resolving deltas: 100% (362/362), done. Tapped 50 formula
现在您可以安装maven2公式:
$ brew install maven2 ==> Downloading http://www.apache.org/dist/maven/maven-2/2.2.1/binaries/apache-maven-2.2.1-bin.tar.gz ######################################################################## 100.0% /usr/local/Cellar/maven2/2.2.1: 10 files, 3.1M, built in 6 seconds
$ mvn --version Apache Maven 2.2.1 (r801777; 2009-08-06 12:16:01-0700) Java version: 1.6.0_37 Java home: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home Default locale: en_US, platform encoding: MacRoman OS name: "mac os x" version: "10.7.4" arch: "x86_64" Family: "mac"
修改强>
您也可以brew switch maven 2.2.1
切换到其他版本。
修改强> Apache Maven项目重组了他们的回购。更新了此答案以解释此更改。
答案 8 :(得分:21)
根据@tschundeee和@Debilski’s update 1描述的工作流程,我自动执行了该过程,并在this script中添加了清理工作。
Download it,将其放在您的路径中brewv <formula_name> <wanted_version>
。对于具体的OP,它将是:
cd path/to/downloaded/script/
./brewv postgresql 8.4.4
:)
答案 9 :(得分:20)
我的情况:
postgresql
意外地从11升级到12(在运行brew upgrade
无参数之后)解决方案:
brew services stop postgresql
brew install postgresql@11
brew link postgresql@11 --force
postgres
重命名为postgres@11
:cd /usr/local/var
ls -lh
mv postgresql@11 postgresql@11-fresh-backup
mv postgres postgresql@11
brew services start postgresql@11
如果有任何错误,请检查/usr/local/var/log/postgresql@11.log
(注意@ 11)。
答案 10 :(得分:16)
解决方案
brew extract --version=8.4p1 openssh homebrew/cask
brew install openssh@8.4p1
我运行openssl@8.5p1
后最新的brew upgrade
有bug,所以我通过上面的方式成功回退到了之前的版本。
答案 11 :(得分:15)
更新的答案,因为这增加了@ lance-pollard已经发布的工作答案。
如何安装特定版本的公式(此示例中使用的公式为terraform
):
git log master -- Formula/terraform.rb
从github的历史记录中获取提交版本。brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/e4ca4d2c41d4c1412994f9f1cb14993be5b2c59a/Formula/terraform.rb
答案 12 :(得分:13)
到目前为止,大多数其他答案已过时。不幸的是,除非有单独的公式(例如python@2
,postgresql@9.4
…)存在,否则Homebrew还没有内置的方法来安装过时的版本。
幸运的是,对于其他公式,有一种比过去必不可少的混乱麻烦的方法。这是完整的说明:
在日志中搜索正确的版本:
brew log formula
# Scroll down/up with j/k or the arrow keys
# or use eg. /4\.4\.23 to search a specific version
# This syntax only works on pre-2.0 Homebrew versions
brew log --format=format:%H\ %s -F --grep=‹version› ‹formula›
这将显示提交哈希的列表。选一个合适的(大多数情况下应该很明显,通常是最新的(即顶部))。
在上游存储库中找到公式所在的URL:
brew info ‹formula› | grep ^From:
修复网址:
github.com
替换为raw.githubusercontent.com
blob/master
替换为我们在第一步中找到的提交哈希。通过使用提交哈希替换先前找到的URL中的master
来安装所需的版本,例如:
brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/‹hash›/Formula/‹formula›.rb
(最后一步可能需要先运行brew unlink ‹formula›
。)
如果您复制了要使用的提交哈希,则可以使用类似于此示例的内容来安装该版本,将值和bash
替换为提交哈希和所需的公式。
BREW_VERSION_SHA=32353d2286f850fd965e0a48bcf692b83a6e9a41
BREW_FORMULA_NAME=bash
brew info $BREW_FORMULA_NAME \
| sed -n \
-e '/^From: /s///' \
-e 's/github.com/raw.githubusercontent.com/' \
-e 's%blob/%%' \
-e "s/master/$BREW_VERSION_SHA/p" \
| xargs brew install
此示例正在安装bash 4.4.23而不是bash 5,但是如果事后执行brew upgrade
,则bash 5会被安装在顶部,除非您首先执行brew pin bash
。相反,要使此过程更平滑而无需固定,您应该首先使用brew install bash
安装最新版本,然后使用brew unlink bash
,然后根据上述脚本安装所需的旧版本,然后使用brew switch bash 4.4.23
进行设置链接到较旧版本的符号链接。现在brew upgrade
应该不会影响您的Bash版本。您可以brew switch bash
获取可切换到的版本列表。
实现同一目标的另一种方法似乎是:
brew tap-new username/repo-name
# extract with a version seems to run a grep under the hood
brew extract --version='4.4.23' bash username/repo-name
brew install bash@4.4.23
# Note this "fails" when trying to grab a bottle for the package and seems to have
# some odd doubling of the version in that output, but this isn't fatal.
这会在您的自定义分接头中创建一个formula@version
,您可以按照上述示例进行安装。缺点是您可能仍然需要先brew unlink bash
,然后brew link bash@4.4.23
,才能使用特定版本的Bash或任何其他公式。
答案 13 :(得分:10)
Homebrew 最近发生了变化。曾经有效的东西不再有效。我发现最简单的工作方式(2021 年 1 月)是:
.rb
文件(首先转到 Formulas,找到我需要的那个,然后单击“历史”;对于 CMake,这是在 https://github.com/Homebrew/homebrew-core/commits/master/Formula/cmake.rb)
brew unlink cmake
brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/2bf16397f163187ae5ac8be41ca7af25b5b2e2cc/Formula/cmake.rb
将失败)
curl -O https://raw.githubusercontent.com/Homebrew/homebrew-core/2bf16397f163187ae5ac8be41ca7af25b5b2e2cc/Formula/cmake.rb && brew install ./cmake.rb
瞧!您现在可以删除下载的 .rb
文件。
答案 14 :(得分:8)
homebrew/versions
的问题是,某人必须拥有存储库中列出的特定版本的软件才能使用它。此外,由于不再支持brew versions
,因此需要另一种解决方案。对于表示使用brew switch
的解决方案,只有在您没有完成brew cleanup
的情况下才会生效,因为您的计算机上需要存在该版本。
我想要安装docker-machine
中没有列出的homebrew/versions
的特定旧版本,我遇到了问题。我使用下面的解决方案,这也应该适用于任何brew安装的软件。下面的示例将使用docker-machine
作为我要将版本从0.5.0降级到0.4.1的软件包。
转到自制的Formula
目录。
您可以通过运行brew info [any package name]
来确定此问题。
例如,brew info docker-machine
给了我一条显示我的线
路径 - /usr/local/Cellar/docker-machine/0.5.0
。这告诉我,在我的机器上,自制软件安装在/usr/local
和我的Formula
目录默认位于/usr/local/Library/Formula
找到您的包的特定公式文件(.rb)。
由于我要降级docker-machine
,我可以看到docker-machine.rb
文件。
获取此公式文件的版本历史记录。
输入git log docker-machine.rb
。这将列出此文件的完整提交历史记录。您将看到如下输出:
...more commit 20c7abc13d2edd67c8c1d30c407bd5e31229cacc Author: BrewTestBot Date: Thu Nov 5 16:14:18 2015 +0000 docker-machine: update 0.5.0 bottle. commit 8f615708184884e501bf5c16482c95eff6aea637 Author: Vincent Lesierse Date: Tue Oct 27 22:25:30 2015 +0100 docker-machine 0.5.0 Updated docker-machine to 0.5.0 Closes #45403. Signed-off-by: Dominyk Tiller commit 5970e1af9b13dcbeffd281ae57c9ab90316ba423 Author: BrewTestBot Date: Mon Sep 21 14:04:04 2015 +0100 docker-machine: update 0.4.1 bottle. commit 18fcbd36d22fa0c19406d699308fafb44e4c8dcd Author: BrewTestBot Date: Sun Aug 16 09:05:56 2015 +0100 docker-machine: update 0.4.1 bottle. ...more
棘手的部分是找到您想要的特定版本的最新提交。在上面,我可以告诉使用此提交标记提交的最新0.4.1版本:commit 5970e1af9b13dcbeffd281ae57c9ab90316ba423
。高于此点的提交开始使用版本0.5.0(git日志条目从最新到最早的日期列出)。
获取以前版本的公式文件。 使用步骤#3中的提交标记(您可以使用前6个字符),您可以使用以下内容获取旧版本的公式文件:
git checkout 5970e1 docker-machine.rb
卸载当前的软件包版本。
只需运行正常的brew命令即可卸载当前版本的软件包
防爆。 brew uninstall docker-machine
安装较旧的软件包版本
现在,您可以运行正常的brew install命令,它将安装您已签出的公式。
防爆。 brew install docker-machine
如有必要,您可能需要使用brew link docker-machine
重新关联。
如果您想在任何时候恢复到特定软件包的最新版本,请进入公式目录并在公式文件(.rb)上发出以下命令
git reset HEAD docker-machine.rb
git checkout -- docker-machine.rb
然后,您可以brew uninstall docker-machine
和brew install docker-machine
获取最新版本并保持这种状态。
答案 15 :(得分:6)
这些都不适合我的情况(Python),所以我将加上我的2美分:
cd `brew --prefix`
git log Library/Formula/python.rb
输出如下:
commit 9ff2d8ca791ed1bd149fb8be063db0ed6a67a6de Author: Dominyk Tiller <dominyktiller@gmail.com> Date: Thu Jun 30 17:42:18 2016 +0100 python: clarify pour_bottle reason commit cb3b29b824a264895434214e191d0d7ef4d51c85 Author: BrewTestBot <brew-test-bot@googlegroups.com> Date: Wed Jun 29 14:18:40 2016 +0100 python: update 2.7.12 bottle. commit 45bb1e220341894bbb7de6fd3f6df20987dc14f0 Author: Rakesh <rakkesh@users.noreply.github.com> Date: Wed Jun 29 10:02:26 2016 +0530 python 2.7.12 Closes #2452. Signed-off-by: Tim D. Smith <git@tim-smith.us> commit cf5da0547cd261f79d69e7ff62fdfbd2c2d646e9 Author: BrewTestBot <brew-test-bot@googlegroups.com> Date: Fri Jun 17 20:14:36 2016 +0100 python: update 2.7.11 bottle. ...
我想要版本2.7.11
,因此我的哈希值为cf5da0547cd261f79d69e7ff62fdfbd2c2d646e9
(或简称为cf5da05
)。接下来,我查看该版本并安装公式python
:
git checkout cf5da05
brew install python
最后,清理:
git checkout master
答案 16 :(得分:6)
如果找不到brew search <formula>
的版本,您还可以尝试查看公式的提交日志,找到所需的版本:
这是通过brew安装旧版nginx的示例:
请参阅nginx: update 1.6.3 bottle eba75b9a1a474b9fc4df30bd0a32637fa31ec049
从那里,我们可以使用sha和raw git url安装1.6.3
:
brew install https://raw.githubusercontent.com/Homebrew/homebrew/eba75b9a1a474b9fc4df30bd0a32637fa31ec049/Library/Formula/nginx.rb
答案 17 :(得分:6)
cd /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/
OR
git clone git@github.com:Homebrew/homebrew-core.git
git log master -- Formula/flyway.rb
brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/793abfa325531415184e1549836c982b39e89299/Formula/flyway.rb
答案 18 :(得分:6)
最后一版brew可以很容易地完成。
brew tap homebrew/versions
brew install subversion17 # for svn 1.7 branch instead of last available
brew install postgresql8 # for postgresql 8 (which you ask)
答案 19 :(得分:4)
我在这里尝试了大多数解决方案,但它们已经过时了。我不得不将这里的一些想法与自己的工作结合起来。结果,我创建了一个脚本来帮助我完成繁重的工作,您可以找到here
用法:
brewv.sh formula_name desired_version
答案 20 :(得分:2)
当前不建议使用安装特定公式版本的旧方法。因此,似乎我们必须使用brew edit [formula]
。例如。例如,我们要安装62.1
的{{1}}版本(例如icu4c
的需求)。然后,您必须
postgresql 10.5
在这里,您必须将> brew edit icu4c
# drops you to editor
,url
和version
(也许还有sha256
)更改为相应的mirror
字符串。
62.1
然后运行url "https://ssl.icu-project.org/files/icu4c/62.1/icu4c-62_1-src.tgz"
mirror "https://github.com/unicode-org/icu/releases/download/release-62-1/icu4c-62_1-src.tgz"
version "62.1"
sha256 "3dd9868d666350dda66a6e305eecde9d479fb70b30d5b55d78a1deffb97d5aa3"
以最终下载brew reinstall icu4c
版本。
答案 21 :(得分:2)
不幸的是,Homebrew仍然没有安装旧版本的明显内置方式。
幸运的是,对于大多数公式来说,有一种比过去必不可少的混乱麻烦的方法。以下是使用bash
作为示例的完整说明:
brew tap-new $USER/local-tap
# extract with a version seems to run a `git log --grep` under the hood
brew extract --version=4.4.23 bash $USER/local-tap
# Install your new version from the tap
brew install bash@4.4.23
# Note this "fails" trying to grab a bottle for the package and seems to have
# some odd doubling of the version in that output, but this isn't fatal.
这会在您自定义的水龙头中创建formula@version
,您可以按照上述示例安装该水龙头。重要说明是,如果您先前安装了公式的默认/最新版本,则可能需要brew unlink bash
,然后brew link bash@4.4.23
才能使用特定版本的Bash(或您在其中使用的任何其他公式)已安装最新版本和较旧版本。
此方法的一个潜在缺点是您不能轻易地在版本之间来回切换,因为根据brew
,这是一个“不同的公式”。
如果您想使用brew switch $FORMULA $VERSION
,则应使用下一种方法。
此示例显示了安装较旧的bash 4.4.23,这是一个有用的示例,因为bash
公式当前会安装bash 5。
brew install bash
brew unlink bash
brew switch bash 4.4.23
设置指向您的版本的符号链接如果您在安装旧版本后执行了brew upgrade
而没有先安装最新版本,那么除非您先执行brew pin bash
,否则最新版本将破坏旧版本。
此处的步骤避免固定,因为它很容易忘记,并且您可能会固定到将来变得不安全的版本(请参阅Shellshock / etc)。使用此设置,brew upgrade
不会影响您的Bash版本,并且您始终可以运行brew switch bash
来获取可切换到的版本列表。
复制并粘贴和编辑下面的代码片段中的export
行,以使用所需的版本和公式名称进行更新,然后按原样复制并粘贴其余的内容,它将使用这些变量来发挥作用。
# This search syntax works with newer Homebrew
export BREW_FORMULA_SEARCH_VERSION=4.4.23 BREW_FORMULA_NAME=bash
# This will print any/all commits that match the version and formula name
git -C $(brew --repo homebrew/core) log \
--format=format:%H\ %s -F --all-match \
--grep=$BREW_FORMULA_SEARCH_VERSION --grep=$BREW_FORMULA_NAME
当确定公式中存在版本时,可以使用以下内容:
# Gets only the latest Git commit SHA for the script further down
export BREW_FORMULA_VERSION_SHA=$(git -C $(brew --repo homebrew/core) log \
--format=format:%H\ %s -F --all-match \
--grep=$BREW_FORMULA_SEARCH_VERSION --grep=$BREW_FORMULA_NAME | \
head -1 | awk '{print $1}')
一旦导出了要使用的提交哈希,就可以使用它来安装该版本的软件包。
brew info $BREW_FORMULA_NAME \
| sed -n \
-e '/^From: /s///' \
-e 's/github.com/raw.githubusercontent.com/' \
-e 's%blob/%%' \
-e "s/master/$BREW_FORMULA_VERSION_SHA/p" \
| xargs brew install
按照公式输出中的说明将其放入PATH或将其设置为默认外壳。
答案 22 :(得分:1)
将Library / Formula / postgresql.rb第8行更新为
http://ftp2.uk.postgresql.org/sites/ftp.postgresql.org/source/v8.4.6/postgresql-8.4.6.tar.bz2
和第5行的MD5
fcc3daaf2292fa6bf1185ec45e512db6
保存并退出。
brew install postgres
initdb /usr/local/var/postgres
现在,在此阶段您可能会遇到postgresql could not create shared memory segment
错误,要解决此问题,请更新/etc/sysctl.conf
:
kern.sysv.shmall=65536
kern.sysv.shmmax=16777216
再次尝试initdb /usr/local/var/postgres
,它应该顺利运行。
在开始时运行postgresql
launchctl load -w /usr/local/Cellar/postgresql/8.4.6/org.postgresql.postgres.plist
希望有所帮助:)
答案 23 :(得分:1)
这里的其他答案很好,但是如果您需要安装旧版本的软件包并确保修改了软件包名称,则需要采用不同的方法。这在使用脚本(在我的例子中是 PHP 构建脚本)时很重要,这些脚本使用 brew --prefix package_name
来确定用于编译的目录。
如果您使用 brew extract
,则会在包名称的末尾添加一个版本,这会破坏 brew --prefix
查找。
以下是如何在保留原始软件包名称的同时安装较旧的软件包版本:
# uninstall the newer version of the package that you accidentally installed
brew uninstall --ignore-dependencies icu4c
# `extract` the version you'd like to install into a custom tap
brew tap-new $USER/local-tap
brew extract --version=68.2 icu4c $USER/local-tap
# jump into the new tap you created
cd $(brew --repository $USER/local-tap)/Formula
# rename the formula
mv icu4c@68.2.rb icu4c.rb
# change the name of the formula by removing "AT682" from the `class` definition
# the exact text you'll need to remove will be different
# depending on the version you extracted
nano icu4c.rb
# then, install this specific formula directly
brew install $(brew --repository $USER/local-tap)/Formula/icu4c.rb
答案 24 :(得分:1)
这是我如何降级 KOPS(不支持版本控制)
# brew has a git repo on your localhost
cd /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core
git remote -v
origin https://github.com/Homebrew/homebrew-core (fetch)
origin https://github.com/Homebrew/homebrew-core (push)
# find the version of kops.rb you need
git log Formula/kops.rb
# checkout old commit
# kops: update 1.18.1 bottle.
git checkout 2f0ede7f27dfc074d5b5493894f3468f27cc73f0 -- Formula/kops.rb
brew unlink kops
brew install kops
# now we have old version installed
ls -1 /usr/local/Cellar/kops/
1.18.1
1.18.2
which kops
/usr/local/bin/kops
ls -l /usr/local/bin/kops
/usr/local/bin/kops -> ../Cellar/kops/1.18.1/bin/kops
kops version
Version 1.18.1
# revert to the newest version
brew uninstall kops
git checkout -f
brew link kops
kops version
Version 1.18.2
答案 25 :(得分:1)
brew versions
和brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/<COMMIT-HASH>/Formula/<Formula>.rb
现在不受支持。
您可以尝试这样:
$ brew extract --version 5.6.2 gradle vitahlin/core
$ brew install gradle@5.6.2
答案 26 :(得分:1)
我创建了a tool来简化this answer中规定的过程。
要查找版本为pkg
的软件包a.b.c
,请运行:
$ brew-install-specific pkg@a.b.c
这将列出pkg
自制公式中的提交,其中提及给定版本及其GitHub url。
Matching versions:
1. pkg: update a.b.c bottle.
https://github.com/Homebrew/homebrew-core/commit/<COMMIT-SHA>
2. pkg: release a.b.c-beta
https://github.com/Homebrew/homebrew-core/commit/<COMMIT-SHA>
3. pkg a.b.c
https://github.com/Homebrew/homebrew-core/commit/<COMMIT-SHA>
Select index:
从给定的URL验证提交,然后输入所选提交的索引。
Select index: 2
Run:
brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/<COMMIT-SHA>/Formula/pkg.rb
复制并运行给定的命令进行安装。
答案 27 :(得分:1)
我刚刚将一个旧版本的elasticsearch复制到/usr/local/Cellar/elasticsearch
目录中。
$ mkdir /usr/local/Cellar/elasticsearch/5.4.3/bin
$ cp elasticsearch /usr/local/Cellar/elasticsearch/5.4.3/bin
$ brew switch elasticsearch 5.4.3
那就是它。 也许它对任何人都有用。
答案 28 :(得分:0)
对于目前不在默认brew系列中的版本,您可以使用https://github.com/buildtools-version-taps/homebrew-versions-tap-tool
中的工具轻松创建自己的点击答案 29 :(得分:0)
这是我对此的简单回答 - 对此没有内置解决方案真的很生气,所以我构建了自己的懒惰“脚本”。欢迎投稿???
# Please define variables
packageName=<packageName>
packageVersion=<packageVersion>
# Create a new tab
brew tap-new local/$packageName
# Extract into local tap
brew extract --version=$packageVersion $packageName local/$packageName
# Verify packages is present
brew search $packageName@
# Run brew install@version as usual
brew install local/$packageName/$packageName@$packageVersion
https://gist.github.com/ArgonQQ/cff4834dab6b254cc2140bb1454b47ef
答案 30 :(得分:0)
根据我的判断,我决定为Maven 3.1.1创建一个homebrew/versions
没有的公式。要做到这一点:
homebrew/versions
。$(brew --prefix)/Library/Taps
符号链接到我的fork的本地工作副本。我会称之为my-homebrew/versions
。my-homebrew/versions/<formula>
来测试。homebrew/versions
发送了拉取请求以获取我的新公式。耶。