Homebrew встановити конкретну версію формули?


2195

Як встановити конкретну версію формули на домашній мові? Наприклад, postgresql-8.4.4 замість останнього 9.0.


2
postgresqlє дивним, оскільки він мав окремі версії в Homebrew в один момент, щось на кшталт bashможе бути кращим прикладом, оскільки він перейшов від 4.x до 5.x в межах однієї і тієї ж назви формули. Див stackoverflow.com/a/55764594/3794873
dragon788


2
Я прочитав усі відповіді.
Настає

Відповіді:


2556

TLDR: brew install postgresql@8.4.4 Дивіться відповідь нижче для отримання більш детальної інформації.


* ( Я відредагував свою відповідь, щоб дати більш ретельний робочий процес для встановлення / використання старих версій програмного забезпечення з домашньою мовою. Сміливо додайте примітку, якщо ви знайшли стару версію краще. )

Почнемо з найпростішого випадку:

1) Перевірте, чи встановлена ​​версія (але не активована)

Коли homebrew встановлює нову формулу, вона ставить її у варіантний каталог, як /usr/local/Cellar/postgresql/9.3.1. Тоді лише символічні посилання на цю папку встановлюються у всьому світі. В принципі, це дозволяє досить легко переходити між двома встановленими версіями. (*)

Якщо ви користуєтеся домашньою мовою довше і ніколи не видаляєте старіші версії (наприклад, наприклад brew cleanup), є ймовірність, що деякі старіші версії вашої програми все ще можуть існувати. Якщо ви хочете просто активувати цю попередню версію, brew switchце найпростіший спосіб зробити.

Перевірте brew info postgresql(чи brew switch postgresql <TAB>), чи встановлена ​​старіша версія:

$ brew info postgresql
postgresql: stable 9.3.2 (bottled)
http://www.postgresql.org/
Conflicts with: postgres-xc
/usr/local/Cellar/postgresql/9.1.5 (2755 files, 37M)
  Built from source
/usr/local/Cellar/postgresql/9.3.2 (2924 files, 39M) *
  Poured from bottle
From: https://github.com/Homebrew/homebrew/commits/master/Library/Formula/postgresql.rb
# … and some more

Ми бачимо, що старіша версія вже встановлена. Ми можемо активувати його за допомогою brew switch:

$ brew switch postgresql 9.1.5
Cleaning /usr/local/Cellar/postgresql/9.1.5
Cleaning /usr/local/Cellar/postgresql/9.3.2
384 links created for /usr/local/Cellar/postgresql/9.1.5

Давайте ще раз перевіримо, що активовано:

$ brew info postgresql
postgresql: stable 9.3.2 (bottled)
http://www.postgresql.org/
Conflicts with: postgres-xc
/usr/local/Cellar/postgresql/9.1.5 (2755 files, 37M) *
  Built from source
/usr/local/Cellar/postgresql/9.3.2 (2924 files, 39M)
  Poured from bottle
From: https://github.com/Homebrew/homebrew/commits/master/Library/Formula/postgresql.rb
# … and some more

Зауважте, що зірка *перейшла до нещодавно активованої версії

(*) Зверніть увагу, що brew switchпрацює лише до тих пір, поки всі залежності старішої версії все ще існують. У деяких випадках може знадобитися відновлення старішої версії. Тому використання brew switchв основному корисно, коли потрібно переключитися між двома версіями не надто далеко один від одного.

2) Перевірте, чи доступна версія у вигляді крана

Особливо, що стосується великих програмних проектів, дуже ймовірно, що існує достатньо високий попит на кілька (потенційно несумісних з API) основних версій певного програмного забезпечення. Станом на березень 2012 року, Homebrew 0.9 забезпечує механізм цього: brew tap& сховище версій домашньої версії .

Це сховище версій може містити резервні версії старих версій для кількох формул. (Переважно лише великі та відомі, але, звичайно, вони також матимуть декілька формул для postgresql.)

brew search postgresql покаже вам, де шукати:

$ brew search postgresql
postgresql
homebrew/versions/postgresql8    homebrew/versions/postgresql91
homebrew/versions/postgresql9    homebrew/versions/postgresql92

Ми можемо просто встановити його, набравши

$ brew install homebrew/versions/postgresql8
Cloning into '/usr/local/Library/Taps/homebrew-versions'...
remote: Counting objects: 1563, done.
remote: Compressing objects: 100% (943/943), done.
remote: Total 1563 (delta 864), reused 1272 (delta 620)
Receiving objects: 100% (1563/1563), 422.83 KiB | 339.00 KiB/s, done.
Resolving deltas: 100% (864/864), done.
Checking connectivity... done.
Tapped 125 formula
==> Downloading http://ftp.postgresql.org/pub/source/v8.4.19/postgresql-8.4.19.tar.bz2
# …

Зверніть увагу , що це автоматично постукав в homebrew/versionsкран. (Позначте brew tap, видаліть brew untap homebrew/versions.) Наступне було б рівнозначним:

$ brew tap homebrew/versions
$ brew install postgresql8

Поки формули підтримуваних версій залишаються в курсі останніх, такий підхід, мабуть, є найкращим способом боротьби зі старішим програмним забезпеченням.

3) Спробуйте якусь формулу з минулого

Наступні підходи перераховані переважно для повноти. Обидва намагаються воскресити певну форму нежиті з сховища варіння. Через змінені залежності, зміни API у специфікації формули або просто зміна URL-адреси для завантаження, речі можуть або не працювати.

Оскільки весь каталог формул є сховищем git, можна встановити конкретні версії, використовуючи прості команди git. Однак нам потрібно знайти спосіб дійти до комітету, де була доступна стара версія.

а) історичні часи

У період з серпня 2011 року по жовтень 2014 року , homebrew мав brew versionsкоманду, яка виплюнула всі доступні версії з відповідними хешами SHA. Починаючи з жовтня 2014 року, ви повинні зробити попереднє використання, brew tap homebrew/boneyardперш ніж ви зможете ним скористатися. Як випливає з назви крана, ви, ймовірно, повинні робити це лише в крайньому випадку.

Напр

$ brew versions postgresql
Warning: brew-versions is unsupported and may be removed soon.
Please use the homebrew-versions tap instead:
  https://github.com/Homebrew/homebrew-versions
9.3.2    git checkout 3c86d2b Library/Formula/postgresql.rb
9.3.1    git checkout a267a3e Library/Formula/postgresql.rb
9.3.0    git checkout ae59e09 Library/Formula/postgresql.rb
9.2.4    git checkout e3ac215 Library/Formula/postgresql.rb
9.2.3    git checkout c80b37c Library/Formula/postgresql.rb
9.2.2    git checkout 9076baa Library/Formula/postgresql.rb
9.2.1    git checkout 5825f62 Library/Formula/postgresql.rb
9.2.0    git checkout 2f6cbc6 Library/Formula/postgresql.rb
9.1.5    git checkout 6b8d25f Library/Formula/postgresql.rb
9.1.4    git checkout c40c7bf Library/Formula/postgresql.rb
9.1.3    git checkout 05c7954 Library/Formula/postgresql.rb
9.1.2    git checkout dfcc838 Library/Formula/postgresql.rb
9.1.1    git checkout 4ef8fb0 Library/Formula/postgresql.rb
9.0.4    git checkout 2accac4 Library/Formula/postgresql.rb
9.0.3    git checkout b782d9d Library/Formula/postgresql.rb

Як бачите, він не радить його використовувати. Homebrew викладає всі версії, які він може знайти, за допомогою своєї внутрішньої евристики та показує вам спосіб отримати старі формули. Давайте спробуємо.

# First, go to the homebrew base directory
$ cd $( brew --prefix )
# Checkout some old formula
$ git checkout 6b8d25f Library/Formula/postgresql.rb
$ brew install postgresql
# … installing

Тепер, коли встановлена ​​старіша версія postgresql, ми можемо знову встановити останню формулу, щоб зберегти наше сховище в чистоті:

$ git checkout -- Library/Formula/postgresql.rb

brew switch твій друг, щоб змінити між старим і новим.

б) доісторичні часи

Для особливих потреб ми можемо також спробувати власну копання через репо-домашню мову.

$ cd Library/Taps/homebrew/homebrew-core && git log -S'8.4.4' -- Formula/postgresql.rb

git log -Sшукає всі коміти, в яких рядок '8.4.4'було додано або видалено у файлі Library/Taps/homebrew/homebrew-core/Formula/postgresql.rb. У результаті ми отримуємо два коміти.

commit 7dc7ccef9e1ab7d2fc351d7935c96a0e0b031552
Author: Aku Kotkavuo
Date:   Sun Sep 19 18:03:41 2010 +0300

    Update PostgreSQL to 9.0.0.

    Signed-off-by: Adam Vandenberg

commit fa992c6a82eebdc4cc36a0c0d2837f4c02f3f422
Author: David Höppner
Date:   Sun May 16 12:35:18 2010 +0200

    postgresql: update version to 8.4.4

Очевидно, fa992c6a82eebdc4cc36a0c0d2837f4c02f3f422чи є зацікавлення, яке нас зацікавило. Оскільки ця фіксація досить давня, ми спробуємо знизити повну інсталяцію домашньої версії (таким чином, API формули більш-менш гарантовано є дійсним):

$ git checkout -b postgresql-8.4.4 fa992c6a82eebdc4cc36a0c0d2837f4c02f3f422
$ brew install postgresql
$ git checkout master
$ git branch -d postgresql-8.4.4

Ви можете пропустити останню команду, щоб зберегти посилання у вашому сховищі git.

Одне зауваження: перевіряючи старіший документ, ви тимчасово знижуєте інсталяцію домашнього перекладу. Отже, ви повинні бути обережними, оскільки деякі команди на домашньому мові можуть відрізнятися від останньої версії.

4) Вручну написати формулу

Це не надто важко, і ви можете потім завантажити його у власне сховище. Раніше було Homebrew-Versions , але зараз це припинено.

А.) Бонус: Прикріплення

Якщо ви хочете зберегти певну версію, скажімо, postgresql, навколо і не зупиняти її оновлення, виконуючи природну brew update; brew upgradeпроцедуру, ви можете зафіксувати формулу:

$ brew pin postgresql

Закріплені формули перераховані у вас, /usr/local/Library/PinnedKegs/і як тільки ви захочете внести останні зміни та оновлення, ви можете їх знову відкріпити :

$ brew unpin postgresql

18
Ви також можете просто перевірити формулу, використовуючи git checkout fa992 -- Library/Formula/postgresql.rb. Коли ви закінчите, ви можете скасувати зміни формули, використовуючи git revert HEAD Library/Formula/postgresql.rb && git checkout -- Library/Formula/postgresql.rb.
mipadi

18
Примітка. У новому встановленні Homebrew вам може знадобитися brew updateвстановити його Git repo.
Блу

556
Це смішно важко.
Dogweather

29
На сьогодні правильний каталог для виконання команд вручну проти сховища є cd $(brew --repository)/Library/Taps/homebrew/homebrew-core, тоді ви можете використовувати git checkout 4cce79d -- Formula/go.rbі HOMEBREW_NO_AUTO_UPDATE=1 brew install go.
Калін

12
домівка / версії застаріли
Ezekiel Victor

775

Простий робочий процес

Тепер, коли 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

8
Здається, найпростіший, але коли я копіюю та вставляю, отримуйте fatal: Not a git repository (or any of the parent directories): .git. Я cdзамість цього я просто впадаю в каталог (без FORMULANAME.rb), тоді роблюgit checkout 120938
Ramon Tayag

8
@RamonTayag, у мене була така ж проблема. Обов’язково cd /usr/localспочатку.
gjb

13
Я знайшов, що вам потрібен крок 3.5:brew unlink FORMULANAME
Намір

37
brew versions <formula>більше не підтримується
ejoubaud

4
@ dem7w2, ви можете створити символьні посилання за допомогою brew link --force postgresql@9.5. Якщо у вас вже встановлена ​​нова версія та ви хочете, щоб старіша версія була за замовчуванням, вам знадобиться і --overwriteтам.
Райан

457

Зараз існує набагато простіший спосіб встановити старішу версію формули, яку ви раніше встановили. Просто використовуйте

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просто змінюється посилання, це дуже швидко. Дивіться подальшу документацію на Homebrew Wiki у розділі Зовнішні команди .


2
Я спробував це, і це вдалося з повідомленням "33 посилання, створені для /usr/local/Cellar/node/0.4.7", але коли я запускаю вузол після цього, він не працює з повідомленням "-bash: / usr / local / bin / node: Такого файлу чи каталогу немає ". Будь-яка ідея, що могло піти не так? Примітка: я завантажив 0.4.7 вручну і помістив його в каталог підвалу, тому що я не знаю, як завантажити anyhting, але останню версію вузла за допомогою brew.
Сорош Хакамі

6
Я сподіваюся, ви знаєте, що є щось, що називається 'nvm' [ github.com/creationix/nvm] !
Гаурав Агарвал

40
Я покладаюся на вже встановлену версію пакета. Якщо у вас відсутня версія, вам все одно потрібно застосувати обрану відповідь.
Нік Сильний

1
Зокрема, для версії вузла mgmt, nvm - краще рішення, imho.
cweekly

5
@NicStrong Дійсно, brew switchпокладається на вже встановлену шукану версію. На жаль, однак прийнята в даний час відповідь неймовірно не є корисною, заплутаною та застарілою. Нижче є кращі відповіді, які набагато корисніші.
ВВП2

250

Оновлення: 15.01.2015

  • Знайдіть історію фіксації потрібного програмного забезпечення та версії. наприклад, мені потрібно перейти з версії докера 1.4.1 на 1.3.3: https://github.com/Homebrew/homebrew-core/commits/master/Formula/docker.rb
  • Перегляньте файл за допомогою цієї кнопки: введіть тут опис зображення
  • Натисніть кнопку "Сира": Елемент списку
  • Скопіюйте URL (URL цього docker.rb в цьому прикладі) з адресного рядка
  • brew install <url>(можливо, brew unlinkспочатку, наприклад brew unlink docker)
  • brew switch docker 1.3.3
  • Перейти назад до докера 1.4.1 brew switch docker 1.4.1

З цієї суті

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

46
Це єдине, що працювало на мене. Дуже нерозумно, що менеджеру пакунків потрібно стільки обертання просто для установки попередньої версії. Можливо, мене зіпсували рубінові RVM і постачальники, але цей процес справді потрібно впорядкувати та абстрагувати.
поет-пам'ятник

3
Коли я намагався перейти до попередньої версії Ansible, мені довелося від’єднати формулу перед встановленням попередньої версії, як зазначено. Тому , перш ніж робити brew install <url>, brew unlink <formulaname>. В іншому випадку це найпростіший і стисліший спосіб (поки що) перейти до конкретної версії формули.
bigsweater

Ви натискаєте Rawкнопку на якому файлі ?!
Юліан Онофрей

1
Це працює, але періодично вам доводиться завантажувати необроблений .rb файл та змінювати контрольну суму, щоб уникнути сказки Homebrew на невідповідність SHA. Здається, GitHub велику частину дерев репо переглянув десь у 2017 році, і їх контрольні суми змінилися. (Насправді це спричинило велику плутанину в моїй команді, коли Базель почав провалюватися у хеш-невідповідностях минулого липня)
Chang Qian

6
Я легко знайшов адресуbrew log <formula>
kangkyu

128

Відповідно до пропозиції @ halfcube, це працює дуже добре:

  1. Знайдіть бібліотеку, яку шукаєте, за посиланням https://github.com/Homebrew/homebrew-core/tree/master/Formula
  2. Клацніть по ньому: https://github.com/Homebrew/homebrew-core/blob/master/Formula/postgresql.rb
  3. Натисніть кнопку "Історія", щоб переглянути старі комісії: https://github.com/Homebrew/homebrew-core/commits/master/Formula/postgresql.rb
  4. Клацніть потрібне: "postgresql: оновити версію до 8.4.4", https://github.com/Homebrew/homebrew-core/blob/8cf29889111b44fd797c01db3cf406b0b14e858c/Formula/postgresql.rb
  5. Клацніть посилання "raw": https://raw.githubusercontent.com/Homebrew/homebrew-core/8cf29889111b44fd797c01db3cf406b0b14e858c/Formula/postgresql.rb
  6. brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/8cf29889111b44fd797c01db3cf406b0b14e858c/Formula/postgresql.rb

8
Це найпростіший спосіб встановити потрібну версію пакету, якщо вона недоступна в основному репо, тому щоpackage@version
серп

7
Якщо ви не можете використовувати веб-інтерфейс, ви можете клонувати репо і робити це локально: використовувати, git log master -- Formula/PACKAGENAME.rbщоб отримати історію фіксації, перевірити правильну фіксацію, а потім запустіть brew install Formula/PACKAGENAME.rbїї встановити.
чіпбустер

7
Я думаю, що вам потрібно brew unlinkще brew installдо іншої версії.
studgeek

Хто це mxcl?
PJSCopeland

1
Я роблю це, 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

109

Я виявив краще альтернативне рішення, ніж інші складні рішення.

brew install https://raw.github.com/Homebrew/homebrew-versions/master/postgresql8.rb

Це дозволить завантажити та встановити PostgreSQL 8.4.8


Я знайшов це рішення, почавши виконувати кроки пошуку репо та а коментарів у репо.

Після невеликого дослідження встановив, що хтось має колекцію рідкісних формулювальних речовин, які слід приготувати.


Якщо ви шукаєте MySQL 5.1.x, спробуйте.

brew install https://raw.github.com/Homebrew/homebrew-versions/master/mysql51.rb

1
хм, brew install https://github.com/Homebrew/homebrew-versions/blob/master/node06.rbздавалося, не вдається із синтаксичними помилками.
Брайан Армстронг

6
@BrianArmstrong Ви маєте на увазі версію файлу у форматі html, тоді як вам потрібна необроблена версія .
Микита Волков

Перейдіть на сторінку github.com/Homebrew/homebrew/commits/master/Library/Formula/… , виберіть свою версію, перегляньте код, сировину - використовуйте цю URL-адресу.
jpillora

1
Не забувайте rawв URL
Faber

9
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

78

Ви можете використовувати стратегію ідентифікації формули та певного комітету в історії формули, який відповідає версії пакету, який ви хочете встановити.

  1. Перейдіть на сторінку https://github.com/Homebrew/homebrew-core

  2. Натисніть tна клавіатурі, щоб активувати пошук файлів.

  3. Визначте формулу, яка виглядає найбільш релевантною, можливо: Formula/mysql.rbпереведення вас до файлу форуму: https://github.com/Homebrew/homebrew-core/blob/master/Formula/mysql.rb .

  4. Перегляньте історію редагування, натиснувши 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-core/commit/c77882756a832ac1d87e7396c114158e5619016c#Formula/mysql.rb

ПРИМІТКА. Можливо, вам доведеться переглянути історію фіксації у вашій консолі за пропозицією GitHub, якщо історія комісій не завантажується у вашому браузері. Замініть команду SHA комісії вище в URL-адресі, якщо вам цікаво бачити цю комісію на GitHub. Крім того, перейдіть до кроку 7 нижче.

  1. Натисніть кнопку "Переглянути", щоб переглянути джерело файлу mysql.rb після того, як було застосовано комісію.

  2. Потім натисніть кнопку "RAW", щоб переглянути вихідне джерело.

  3. Скопіюйте URL-адресу. Крім того, побудуйте URL-адресу самостійно з назвою mysql.rbфайлу, щоб визначити свою формулу та конкретну версію цієї формули (ідентифікована комісією SHA у URL-адресі нижче).

    https://raw.githubusercontent.com/Homebrew/homebrew-core/c77882756a832ac1d87e7396c114158e5619016c/Formula/mysql.rb

  4. Встановіть його за допомогою $ brew install [URL from step 7]

    $ brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/c77882756a832ac1d87e7396c114158e5619016c/Formula/mysql.rb
    

ПРИМІТКА. Цю відповідь було оновлено з метою видалення веб-сайту braumeister.org. Цей же принцип застосовується, braumeister просто запропонував зручним для початківців способом навігації у версіях формул.


13
На жаль, це занадто далеко в списку відповідей, але це найкраще рішення. Це те, що я використовую, за винятком використання braumeister, я просто переходжу на сторінку Homebrew GitHub формули, яку я хочу (наприклад, для gcc перейдіть на сторінку github.com/Homebrew/homebrew/blob/master/Library/Formula/gcc.rb ), а потім я проходжу "Історію" файлу, поки не доїду до потрібної версії.
Гай Когус

3
Це, безумовно, найкраще рішення в моєму випадку - встановити старішу версію Watchman, для якої не потрібен Xcode 8.1
Zachary Keener

3
Це дійсно найпростіший спосіб встановити старішу версію. Чудова відповідь
Мартин

4
Це працювало для мене, але мені довелося заварити відключення програм спочатку.
Бретт Вагнер

3
Це було найпростішим рішенням для мене. Це має бути вище, оскільки прийнята відповідь застаріла.
Tim W

35

Більшість інших відповідей на сьогодні застаріли. На жаль, у Homebrew досі немає вбудованого способу встановлення застарілої версії, якщо тільки ця версія не існує як окрема формула (наприклад python@2, postgresql@9.4 …).

На щастя, для інших формул існує набагато простіший спосіб, ніж звичний безлад, який раніше був необхідним. Ось повні інструкції:

  1. Шукайте правильну версію в журналах:

    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›
    

    Це покаже список хешів фіксації. Візьміть відповідний (здебільшого він повинен бути досить очевидним, і зазвичай це самий останній (тобто верхній).

  2. Знайдіть URL-адресу, за якою формула знаходиться у сховищі вище:

    brew info ‹formula› | grep ^From:
    
  3. Виправити URL-адресу:

    1. Замініть github.comнаraw.githubusercontent.com
    2. Замініть blob/masterхеш-коміт, який ми знайшли на першому кроці.
  4. Встановіть потрібну версію, замінивши masterв раніше знайденій URL-адресою хеш-код, наприклад:

    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 або будь-яку іншу формулу.


1
Вони, мабуть, змінили синтаксис, brew logтому будь-які додаткові -Fчи --grepпараметри для мене не вдалися.
dragon788

1
@ dragon788 Криваве пекло, Homebrew 2 повністю зламався brew log. Мені не можна заважати писати нову версію зараз, тому що це вимагає належного розбору повідомлення журналу git або альтернатива роботи git logбезпосередньо у відповідному сховищі. І цей журнал змін навіть не згадує про цю надзвичайну зміну. Поза дратує.
Конрад Рудольф

Якщо вони не визнають, що зміна поведінки є помилкою, здається, що External Commandможе знадобитися діяти в структурі, brewщоб повернути такий тип git logфільтрації. docs.brew.sh/External-Commands
dragon788

Це єдине місце, де мені вдалося знайти правильне brew extractвикористання, дякую!
dognotdog

Я б запропонував зробити спеціальний local0only натиснути першу частину вашої відповіді. Це дійсно здається найкращим рішенням в цілому.
studgeek

29

Я просто використав Homebrew, щоб повернутися до Maven 2.2.1 з простого часу brew install maven встановленого Maven 3.0.3.

Спочатку ви повинні залишити там Maven dir

$ варити від'єднати maven

Використовуйте команду заварювання крана

$ brew tap homebrew / версії
Клонування в '/ usr / local / Library / Taps / homebrew-version' ...
віддалений: Підрахунок об’єктів: 590, виконано.
віддалений: стиснення об’єктів: 100% (265/265), виконано.
віддалений: Всього 590 (дельта 362), повторно використаний 549 (дельта 325)
Приймаючі об'єкти: 100% (590/590), 117,49 Кб | 79 Кб / с, виконано.
Розв’язування дельти: 100% (362/362), виконано.
Формула 50

Тепер ви можете встановити формулу maven2:

$ brew встановити maven2
==> Завантаження 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 файлів, 3.1M, вбудовано за 6 секунд
$ mvn - конверсія
Apache Maven 2.2.1 (r801777; 2009-08-06 12: 16: 01-0700)
Версія Java: 1.6.0_37
Домашня сторінка Java: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
Локаль за замовчуванням: en_US, кодування платформи: MacRoman
Назва ОС: "mac os x" версія: "10.7.4" арка: "x86_64" Сім'я: "mac" 

Редагувати: Ви також можете просто brew switch maven 2.2.1перейти на іншу версію.

Редагувати: Проект Apache Maven реорганізував їх репо. Оновили цю відповідь, щоб врахувати цю зміну.


Це було дуже корисно. Зауважте, Apache Foundation реорганізував файли бінарних файлів Maven у конкретні каталоги версії (1,2,3), тому вам потрібно буде відредагувати maven.rb для 2.2.1 і, можливо, інші, щоб відповідати новій структурі. Наприклад, двійковий файл для 2.2.1 розміщувався за адресою: apache.org/dist/maven/maven-2/2.2.1/binaries/… . Зверніть увагу на "maven-2 / 2.2.1 /" у URL-адресі.
Чарльз Форсі

@CharlesForcey Ви маєте рацію щодо реорганізації Maven dist repo. Я оновлю відповідь, щоб використовувати пивоварний кран, щоб використовувати старішу формулу maven2. Дякуємо за коментар
Cameron Goodale

21

На основі робочого процесу, описаного в @tschundeee та оновлення @ Debilski 1 , я автоматизував процедуру і додав очищення в цей сценарій .

Завантажте його , поставте на свій шлях і brewv <formula_name> <wanted_version>. Для конкретної ОП це було б:

cd path/to/downloaded/script/
./brewv postgresql 8.4.4

:)


4
просто кльово. чому це не вариться?
Адріан

3
Більше не знайдено :(
D-32

18

Оновлена ​​відповідь, оскільки це додає до того, що @ lance-pollard вже розмістив як робочу відповідь.

Як встановити конкретну версію формули (формула використовується в цьому прикладі terraform):

  1. Знайдіть файл формули, наприклад: https://github.com/Homebrew/homebrew-core/blob/master/Formula/terraform.rb
  2. Отримайте версію фіксації з історії github за допомогою https://github.com/Homebrew/homebrew-core/commits/master/Formula/terraform.rb або git log master -- Formula/terraform.rbякщо ви клонували репо на локальному рівні.
  3. Отримайте необроблену URL-адресу git із версією вашої форми формули: Якщо посилання на формулу в github.com є https://github.com/Homebrew/homebrew-core/blob/e4ca4d2c41d4c1412994f9f1cb14993be5b2c59a/Formula/terraform.rb , ваша необроблена URL-адреса бути: https://raw.githubusercontent.com/Homebrew/homebrew-core/e4ca4d2c41d4c1412994f9f1cb14993be5b2c59a/Formula/terraform.rb
  4. Встановіть його за допомогою: brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/e4ca4d2c41d4c1412994f9f1cb14993be5b2c59a/Formula/terraform.rb

Щоб отримати необроблену URL-адресу git на кроці 3, ви також можете просто натиснути кнопку "Raw" та скопіювати URL-адресу, до якої переходить браузер.
Брайан Топінг

15

Офіційний метод (судячи з відповіді на https://github.com/Homebrew/brew/isissue/6028 )

На жаль, у 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 / тощо). За допомогою цієї установки a 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 або встановити його як оболонку за замовчуванням.


12

У новітній версії домашньої кави (0,9,5 станом на цей текст) буде визначений рецепт тієї версії саморобного бочка, яку ви хочете встановити. Приклад:

$ brew search mongodb
mongodb    mongodb24  mongodb26

Тоді просто робіть brew install mongodb26 як нормально.

У разі, якщо ви вже встановили останню версію, переконайтеся , що роз'єднати останню версію і зв'язати потрібну версію: brew unlink mongodb && brew link mongodb26.


Хоча це може відповісти на питання, бажано було б сюди включити істотні частини відповіді та надати посилання для довідки.
Ерік

1
@Erik Спасибі, виправлено.
Алекс Шарп

11

Проблема з homebrew/versions полягає в тому, що хтось повинен мати цю конкретну версію програмного забезпечення, перелічену у сховищі, щоб ви могли ним користуватися. Крім того, оскільки brew versionsце більше не підтримується, потрібно інше рішення. Для рішень, які вказують на використання brew switch, це буде працювати лише в тому випадку, якщо ви цього не робили, brew cleanupоскільки на вашому комп'ютері повинна існувати версія.

У мене виникла проблема з бажанням встановити певну старішу версію docker-machine якій не було зазначено homebrew/versions. Я вирішив це за допомогою наведеного нижче, який також повинен працювати для будь-якого встановленого програмного забезпечення. Наведений нижче приклад використовуватиме docker-machineяк пакет, який я хочу зменшити з версії 0.5.0 до 0.4.1.

  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

  2. Знайдіть конкретний файл формули (.rb) для вашого пакету. Оскільки я хочу знизити версію docker-machine, я можу побачити docker-machine.rbфайл.

  3. Отримайте історію версій цього файлу формули . Введіть git log docker-machine.rb. Тут буде вказано повну історію фіксації цього файлу. Ви побачите такий вихід:

    ... більше 

    фіксувати 20c7abc13d2edd67c8c1d30c407bd5e31229cacc
    Автор: BrewTestBot 
    Дата: Чт 5 листопада 16:14:18 2015 +0000

        докер-машина: оновлення пляшки 0,5,0.

    фіксувати 8f615708184884e501bf5c16482c95eff6aea637
    Автор: Вінсент Лесьєрсе 
    Дата: Вт 27 жовтня 22:25:30 2015 +0100

        докер-машина 0.5.0

        Оновлено докер-машину до 0,5.0

        Закривається # 45403.

        Підписався: Доміник Тіллер 

    фіксувати 5970e1af9b13dcbeffd281ae57c9ab90316ba423
    Автор: BrewTestBot 
    Дата: понеділок, 21 вересня 14:04:04 2015 +0100

        докер-машина: оновлення пляшки 0,4,1.

    зробити 18fcbd36d22fa0c19406d699308fafb44e4c8dcd
    Автор: BrewTestBot 
    Дата: Вс 16 серпня 09:05:56 2015 +0100

        докер-машина: оновлення пляшки 0,4,1.

    ... більше

Складна частина полягає в тому, щоб знайти останню версію конкретної версії, яку ви хочете. У наведеному вище, я можу сказати , остання версія 0.4.1 була здійснена з цієї фіксацією тега: commit 5970e1af9b13dcbeffd281ae57c9ab90316ba423. Коміти вище цього пункту починають використовувати версію 0.5.0 (записи журналу git перераховані від останньої до найдавнішої дати).

  1. Отримайте попередню версію файлу формул. Використовуючи тег фіксації з кроку №3 (можна використовувати перші 6 символів), ви можете отримати старішу версію файлу формули, використовуючи наступне:

    git checkout 5970e1 docker-machine.rb

  2. Видаліть поточну версію пакета. Просто запустіть звичайні команди варити, щоб видалити поточну версію пакету.
    Вих.brew uninstall docker-machine

  3. Встановіть більш стару версію пакета. Тепер ви можете просто запустити звичайну команду встановлення варіння, і вона встановить формулу, яку ви маєте на замовлення. Вих.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отримати найновішу версію і продовжувати її вперед.


1
Дуже ретельно запишіть @rchawdry, дякую. BTW: щоб знайти команду, яка відповідає потрібній версії, швидко додайте параметр --grep git log --grep 0.4.1 docker-machine.rb.
Джеррі Міндек

Для мене шлях був/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula
akauppi

Я так і не зміг знайти достатньо історії версій для cairoзаварки. @ відповідь sealocal чомусь показала більше.
akauppi

11

Настає 2020 рік, і більшість відповідей застаріли

Моя ситуація: postgresqlбуло модернізовано з 11 до 12 випадково. Я хочу зберегти 11.

  1. Зупинення БД:
brew services stop postgresql
  1. Встановити Postgres 11:
brew install postgresql@11
  1. Увімкніть це:
brew link postgresql@11 --force
  1. (Необов'язково) Rename DB каталог даних postgresдля postgres@11:
cd /usr/local/var
ls -lh
mv postgresql@11 postgresql@11-fresh-backup
mv postgres postgresql@11
  1. Запустіть БД:
brew services start postgresql@11

Якщо у вас є помилки, перевірте /usr/local/var/log/postgresql@11.log(зверніть увагу на @ 11).


6
Це працює лише для особливого випадку postgresql @ 11, який чітко зберігається навколо службовців Homebrew, щоб допомогти з міграцією сховищ даних (виконується за допомогою спеціальної команди brew postgresql-upgrade-database). Ця відповідь не корисна майже для будь-якої іншої формули.
Адам Врубель

@ AdamWróbel Я вирішив, що це чудово, щоб відповісти на початкове запитання про Postgres . brew postgresql-upgrade-databaseє, ну, для оновлення . Моя відповідь стосується використання старшої версії Postgres. Просто переключити двійкові файли не вийде.
Макс Малиш

Користувачі NodeJS, які не використовують менеджер версій, наприклад nvm, FYI, мені пощастило використовувати цю техніку для старих версій LTS. Принаймні під час написання v10 та v12 повинні бути доступні, наприклад brew install node@12 formulae.brew.sh/formula/node
лапи

9

Встановіть стару версію пакету варіння (приклад Flyway 4.2.0)

Знайдіть місцевого місцевого домашнього git dir або клонуйте Homebrew / homebrew-core локально

cd /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/

АБО

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


чому б просто не запустити brew install Formula/flyway.rbз homebrew-coreкаталогу? він працював для мене без використання raw.github..адреси
kangkyu

9

Я спробував більшість рішень тут, і вони застаріли. Мені довелося поєднувати деякі ідеї звідси з власною роботою. В результаті я створив сценарій, який допоможе мені зробити важкий підйом, який ви можете знайти тут

Використання:

brewv.sh formula_name desired_version

6

це можна зробити дуже просто для останньої версії заварки.

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)

2
... якщо хтось потрудився створити рецепт для цього пакету.
clacke

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

2
Життя змінюється, і ця відповідь є найбільш актуальною. Не забувайте HOMEBREW_NO_AUTO_UPDATEі читайте github.com/Homebrew/brew/isissue/1188
Wile E.

Правильні команди cd заварюють/Homebrewgit log Library/Taps/homebrew/homebrew-core/Formula/python.rb
prefix

Але навіть це не працює, тому що /Library/Tapsігнорується.
Юліан Онофрей

Не забувайте про це HOMEBREW_NO_AUTO_UPDATE. Так, не забудьте про речі не потрібно до тих пір , після того, як ви виявите , що вам потрібно це. xD
Джош Хабдас

Як щодо цього? HOMEBREW_NO_INSTALL_CLEANUPчи це не те, що потрібно пам’ятати?
kangkyu

6

Якщо ви не можете знайти свою версію за допомогою brew search <formula> , ви також можете спробувати перейти до журналів фіксів для вашої формули, щоб знайти потрібну версію:

ось приклад встановлення старішої версії nginx через brew:

Звідти ми можемо встановити 1.6.3URL-адресу sha та raw git:

brew install https://raw.githubusercontent.com/Homebrew/homebrew/eba75b9a1a474b9fc4df30bd0a32637fa31ec049/Library/Formula/nginx.rb


3

В даний час застарілі способи встановлення конкретних версій формул застаріли. Тож здається, що нам доводиться користуватися brew edit [formula]. Наприклад, ми хочемо встановити 62.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щоб остаточно завантажити 62.1версію.


як отримати sha256 ? у моєму випадкуhttps://storage.googleapis.com/dart-archive/channels/stable/release/1.24.3/sdk/dartsdk-macos-x64-release.zip
simo

1

Оновлення у рядку 8 до Бібліотека / Формула / postgresql.rb

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

Сподіваюся, що це допомагає :)


1

Я щойно скопіював у /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

Це воно. Можливо, це комусь корисно.


Некрасивий хакер. Але так, це працювало і для мене, поки я намагався шукати та встановлювати старішу версію консула! Ура.
darkdefender27

0

Я вирішив, проти свого кращого судження, створити формулу для Maven 3.1.1, якої homebrew/versionsне було. Зробити це:

  1. Я розпрощався homebrew/versions на github.
  2. Я посилався $(brew --prefix)/Library/Tapsна місцеву робочу копію моєї вилки. Я це зателефонуюmy-homebrew/versions .
  3. Я перевірив, вказавши формулу як my-homebrew/versions/<formula> .
  4. Я надіслав запит на homebrew/versionsотримання нової формули.

Так.


0

Для версій, які не містять формули заварювання за замовчуванням, ви можете легко створити власний кран за допомогою інструменту https://github.com/buildtools-version-taps/homebrew-versions-tap-tool


Здається, цей інструмент інтегрований у домашню мову зараз? Можна brew tap-new user/repoі тоді, brew extract --version='Major.minor' FORMULA user/repoі тоді brew install FORMULA@Major.minor.
dragon788

0

Я створив інструмент для полегшення процесу, прописаного в цій відповіді .

Щоб знайти пакет pkgз версією a.b.c, запустіть:

$ brew-install-specific pkg@a.b.c

У цьому списку буде перераховано pkgформули домашнього перекладу, які згадують про дану версію разом з їх URL-адресами GitHub.

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

Скопіюйте та запустіть задану команду для встановлення.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.