По строкам предложения @ halfcube это работает очень хорошо:
brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/fa992c6a82eebdc4cc36a0c0d2837f4c02f3f422/Library/Formula/postgresql.rb
package@version
– avy
17 April 2017 в 10:33
git log master -- Formula/PACKAGENAME.rb
, чтобы получить историю фиксации, проверить правильную фиксацию, а затем запустить brew install Formula/PACKAGENAME.rb
для ее установки.
– chipbuster
1 June 2017 в 10:43
brew install https://github.com/Homebrew/homebrew-core/raw/afc10f17af8023906b87363a8340aeb62284329f/Formula/postgresql%409.6.rb
, но получаю ошибку, возможно, из-за знака @
: Error: No available formula with the name "postgresql%409.6" In formula file: /Users/maciek/Library/Caches/Homebrew/Formula/postgresql%409.6.rb Expected to find class Postgresql%4096, but only found: PostgresqlAT96.
Любые идеи?
– msciwoj
11 July 2018 в 10:40
В новейшей версии homebrew (0.9.5 на момент написания этой статьи) будет определен конкретный рецепт для версии ботаника доморощенного, которую вы хотите установить. Пример:
$ brew search mongodb
mongodb mongodb24 mongodb26
Тогда просто сделайте brew install mongodb26
, как обычно.
В том случае, если вы уже установили последнюю версию, обязательно отмените последнюю версию и свяжите ее желаемая версия: brew unlink mongodb && brew link mongodb26
.
Обновление: 1/15/2015
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
brew install <url>
, brew unlink <formulaname>
. В противном случае это самый простой и кратчайший способ (до сих пор) переключиться на конкретную версию формулы.
– bigsweater
9 June 2015 в 16:15
Я обнаружил лучшее альтернативное решение, а затем другие сложные решения.
brew install https://raw.github.com/Homebrew/homebrew-versions/master/postgresql8.rb
Загрузите и установите PostgreSQL 8.4.8
Я нашел это решение, начав выполнять шаги по поиску репо и комментария / g0] в репо. После небольшого исследования выяснилось, что у кого-то есть коллекция редких формуляров, чтобы завариться. Если вы ищете MySQL 5.1.x , попробуйте это.
brew install https://raw.github.com/Homebrew/homebrew-versions/master/mysql51.rb
brew install https://github.com/Homebrew/homebrew-versions/blob/master/node06.rb
, похоже, терпел неудачу с синтаксическими ошибками.
– Brian Armstrong
17 December 2012 в 09:43
homebrew-versions
исчез, и теперь все на core
, поэтому общий случай: brew install https://raw.github.com/Homebrew/homebrew-core/<COMMIT>/Formula/<FORMULA>.rb
. COMMIT
можно найти, перейдя в github.com/Homebrew/homebrew-core/commits/master/Formula/… .
– PJSCopeland
18 January 2018 в 21:48
Теперь, когда Homebrew / версии устарели, 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
fatal: Not a git repository (or any of the parent directories): .git
. Я просто cd
в каталог вместо (без FORMULANAME.rb), затем сделайте git checkout 120938
– Ramon Tayag
1 July 2012 в 13:28
cd /usr/local
.
– gjb
19 December 2012 в 13:22
brew link --force postgresql@9.5
. Если у вас уже установлена более новая версия и вы хотите, чтобы старая версия была вашей по умолчанию, вам также понадобится --overwrite
.
– Ryan
16 August 2017 в 14:52
Я просто использовал Homebrew, чтобы вернуться к Maven 2.2.1, так как простой brew install maven
установлен Maven 3.0.3.
Сначала вы должны оставить там maven dir, поэтому
$ brew unlink maven
Используйте команду отварочного клапана
$ 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 реорганизовал свое репо. Обновлен этот ответ для учета этого изменения.
На основе рабочего процесса, описанного в @tschundeee и @ обновлении Debilski 1 , я автоматизировал процедуру и добавил очистку в этот скрипт .
Загрузите , поместите его в свой путь и brewv <formula_name> <wanted_version>
. Для конкретного ОП это будет:
cd path/to/downloaded/script/
./brewv postgresql 8.4.4
:)
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/Library/Formula/flyway.rb
Я решил, по моему мнению, создать формулу для Maven 3.1.1, которой у homebrew/versions
не было. Для этого:
homebrew/versions
в github. $(brew --prefix)/Library/Taps
к локальной рабочей копии моей вилки. Я назову это my-homebrew/versions
. my-homebrew/versions/<formula>
. homebrew/versions
для моей новой формулы. Yay.
Если вы не можете найти свою версию с помощью brew search <formula>
, вы также можете попробовать просмотреть журналы фиксации для своей формулы, чтобы найти нужную версию:
вот пример установки более старого версия nginx через заваривание:
nginx: update 1.6.3 bottle eba75b9a1a474b9fc4df30bd0a32637fa31ec049
From там, мы можем установить 1.6.3
с sha и raw git url:
brew install https://raw.githubusercontent.com/Homebrew/homebrew/eba75b9a1a474b9fc4df30bd0a32637fa31ec049/Library/Formula/nginx.rb
Для версий, которые в настоящее время не используются в стандартных формулах приготовления, вы можете легко создать свой собственный кран с помощью инструмента из https://github.com/buildtools-version-taps/homebrew-versions-tap-tool
Обновленный ответ, так как это добавляет к тому, что @ lance-pollard уже отправлен в качестве рабочего ответа.
Как установить конкретную версию формулы (формулой, используемой в этом примере, является terraform
):
git log master -- Formula/terraform.rb
, если вы клонировали репо локально. brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/e4ca4d2c41d4c1412994f9f1cb14993be5b2c59a/Formula/terraform.rb
Обновление по строке библиотеки / Formula / postgresql.rb 8 до
http://ftp2.uk.postgresql.org/sites/ftp.postgresql.org/source/v8.4.6/postgresql-8.4.6.tar.bz2
И MD5 в строке 9 до
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
Надеюсь, что помогает:)
Проблема с homebrew/versions
заключается в том, что кто-то должен иметь эту конкретную версию программного обеспечения, перечисленную в репозитории, чтобы вы могли ее использовать. Кроме того, поскольку brew versions
больше не поддерживается, требуется другое решение. Для решений, которые указывают использование brew switch
, это будет работать, только если вы еще не сделали brew cleanup
, поскольку версия должна существовать на вашем компьютере.
У меня возникла проблема с желанием установить конкретную более ранняя версия docker-machine
, которая не указана в homebrew/versions
. Я решил это, используя приведенное ниже, которое также должно работать для любого установленного программного обеспечения. В приведенном ниже примере будет использоваться 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
. Это говорит мне, что на моей машине homebrew установлен на /usr/local
, а мой каталог Formula
по умолчанию находится по адресу /usr/local/Library/Formula
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 перечислены с последней по самую раннюю дату).
git checkout 5970e1 docker-machine.rb
brew uninstall docker-machine
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
получить последнюю версию и сохранить это будет идти вперёд.
git log --grep 0.4.1 docker-machine.rb
.
– Jerry Mindek
10 November 2015 в 20:24
/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula
– akauppi
24 October 2016 в 04:07
cairo
. По крайней мере, ответ «sealocal» показал почему-то.
– akauppi
24 October 2016 в 04:07
Вы можете использовать стратегию определения формулы и конкретной фиксации в истории формулы, которая соответствует версии пакета, который вы хотите установить.
t
на клавиатуре, чтобы активировать поиск файлов. Formula/mysql.rb
, доведя вас до местоположения файла forumla: https://github.com/Homebrew/homebrew-core/blob/master/Formula/mysql.rb . History
, которая находится по адресу https://github.com/Homebrew/homebrew-core/commits/master/Formula/mysql.rb . Если вас интересует MySQL 5.7.10, вы можете щелкнуть последнюю версию до 5.7.11, которая переходит на коммит GitHub: https://github.com/Homebrew/homebrew/commit/c77882756a832ac1d87e7396c114158e5619016c # Library / Formula / mysql.rb ПРИМЕЧАНИЕ. Возможно, вам придется просматривать историю фиксации в консоли на предложение GitHub, если история фиксации не загружается в вашем браузере. Замените фиксацию SHA выше в URL, если вы заинтересованы в том, чтобы зафиксировать ее на GitHub. В качестве альтернативы перейдите к шагу 7.
mysql.rb
, чтобы идентифицировать формулу и конкретную версию этой формулы (идентифицированную с помощью SHA в URL-адресе ниже). https://raw.githubusercontent.com/Homebrew/homebrew/c77882756a832ac1d87e7396c114158e5619016c/Library/Formula/mysql.rb $ brew install [URL from step 7]
$ brew install https://raw.githubusercontent.com/Homebrew/homebrew/c77882756a832ac1d87e7396c114158e5619016c/Library/Formula/mysql.rb
ПРИМЕЧАНИЕ. Этот ответ был обновлен, чтобы учесть удаление веб-сайта braumeister.org. Тот же принцип применяется, braumeister просто предоставил удобный для новичков способ навигации по версиям формул.
это может быть сделано очень легко для последней версии варева.
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)
Ни один из них действительно не работал для моего случая (Python), поэтому я добавлю свои 2 цента:
cd `brew --prefix`
git log Library/Formula/python.rb
Результат выглядит следующим образом:
< / blockquote>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
HOMEBREW_NO_AUTO_UPDATE
и читайте github.com/Homebrew/brew/issues/1188
– Wile E.
4 October 2016 в 10:27
cd
brew --prefix /Homebrew
и git log Library/Taps/homebrew/homebrew-core/Formula/python.rb
– Iulian Onofrei
15 January 2018 в 15:34
/Library/Taps
игнорируется.
– Iulian Onofrei
15 January 2018 в 15:36
Я просто скопировал более старый выпуск 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
Вот и все. Возможно, это полезно для всех.
Теперь есть гораздо более простой способ установить более раннюю версию формулы, которую вы ранее устанавливали. Просто используйте
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
просто меняет символические ссылки, это очень быстро. См. Дополнительную документацию на домашней Wiki в Внешние команды .
brew switch
полагается на уже запрограммированную версию. Однако, к сожалению, принятый в настоящее время ответ невероятно бесполезен, запутан и устарел. Здесь есть лучше ответы ниже, которые much i> более полезны.
– GDP2
8 December 2017 в 03:46