Pytanie Homebrew instaluje określoną wersję formuły?


Jak zainstalować konkretną wersję formuły w homebrew? Na przykład postgresql-8.4.4 zamiast najnowszego 9.0.


1713
2017-10-21 12:58


pochodzenie


Postępuj zgodnie z tymi instrukcjami: effectif.com/mac-os-x/.... - Alex Sharp
Sprawdź stackoverflow.com/a/3949908/3256989 - ultraon
Z biegiem lat odpowiedź ewoluowała. Od 2018 za pomocą nodejs jako przykład: brew search node@ następnie brew install node@8 - MarkHu


Odpowiedzi:


(Ponownie zredagowałem swoją odpowiedź, aby uzyskać dokładniejszy workflow dla instalacji / używania starszych wersji oprogramowania z homebrew. Jeśli znajdziesz starszą wersję, dodaj notatkę.)

Zacznijmy od najprostszego przypadku:

1) Sprawdź, czy wersja jest już zainstalowana (ale nie aktywowana)

Kiedy homebrew instaluje nową formułę, umieszcza ją w wersjonowanym katalogu, takim jak /usr/local/Cellar/postgresql/9.3.1. Tylko symboliczne łącza do tego folderu są następnie instalowane globalnie. Zasadniczo ułatwia to przełączanie między dwiema zainstalowanymi wersjami. (*)

Jeśli używasz homebrew dłużej i nigdy nie usuwałeś starszych wersji (używając na przykład brew cleanup), może się zdarzyć, że jakaś starsza wersja twojego programu będzie nadal dostępna. Jeśli chcesz po prostu aktywować tę poprzednią wersję, brew switch to najprostszy sposób na zrobienie tego.

Sprawdź z brew info postgresql (lub brew switch postgresql <TAB>) czy zainstalowana jest starsza wersja:

$ 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

Widzimy, że niektóre starsze wersje są już zainstalowane. Możemy go aktywować za pomocą 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

Sprawdźmy dwukrotnie, co jest aktywowane:

$ 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

Zauważ, że gwiazda * przeniósł się do nowo aktywowanej wersji

(*) Proszę to zanotować brew switch działa tylko wtedy, gdy wszystkie zależności od starszej wersji są nadal dostępne. W niektórych przypadkach konieczna może być przebudowa starszej wersji. Dlatego za pomocą brew switch jest szczególnie przydatny, gdy chce się przełączać pomiędzy dwiema wersjami, które nie są zbytnio od siebie oddalone.

2) Sprawdź, czy wersja jest dostępna jako kran

Zwłaszcza w przypadku większych projektów oprogramowania jest bardzo prawdopodobne, że istnieje wystarczająco duże zapotrzebowanie na kilka (potencjalnie niezgodnych API) głównych wersji danego oprogramowania. Od marca 2012 r. Homebrew 0.9 zapewnia mechanizm do tego: brew tap & the wersje homebrew magazyn.

To repozytorium wersji może zawierać backporty starszych wersji dla kilku formuł. (Przeważnie tylko duże i sławne, ale oczywiście będą też miały kilka formuł dla postgresql.)

brew search postgresql pokaże ci gdzie szukać:

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

Możemy go po prostu zainstalować, pisząc

$ 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
# …

Zauważ, że nastąpiło to automatycznie stuknięty  homebrew/versions kran. (Sprawdź z brew tap, usuń za pomocą brew untap homebrew/versions.) Następujące byłoby równoważne:

$ brew tap homebrew/versions
$ brew install postgresql8

Dopóki formaty wersji przeniesionych są aktualne, podejście to jest prawdopodobnie najlepszym sposobem radzenia sobie ze starszym oprogramowaniem.

3) Wypróbuj formułę z przeszłości

Poniższe podejścia są wymienione głównie pod kątem kompletności. Obaj próbują wskrzesić jakąś nieumarłą formułę z repozytorium parzenia. Ze względu na zmienione zależności, zmiany interfejsu API w specyfikacji formuły lub po prostu zmianę w adresie URL pobierania rzeczy mogą działać lub nie.

Ponieważ cały katalog formuły jest repozytorium git, można zainstalować określone wersje przy użyciu zwykłych poleceń git. Musimy jednak znaleźć sposób, aby dostać się do zatwierdzenia, w którym stara wersja była dostępna.

a) czasy historyczne

pomiędzy Sierpień 2011 i październik 2014homebrew miał brew versions polecenie, które wypluło wszystkie dostępne wersje z odpowiednimi skrótami SHA. Od października 2014 r. Musisz zrobić brew tap homebrew/boneyard zanim będziesz mógł z niego korzystać. Jak sugeruje nazwa kranu, powinieneś prawdopodobnie robić to tylko w ostateczności.

Na przykład.

$ 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

Jak widać, odradza korzystanie z niego. Homebrew wypowiada wszystkie wersje, które może znaleźć w swojej wewnętrznej heurystyce i pokazuje sposób na odzyskanie starych formuł. Spróbujmy.

# 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

Po zainstalowaniu starszej wersji Postgresql możemy ponownie zainstalować najnowszą formułę, aby nasze repozytorium było czyste:

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

brew switch jest twoim przyjacielem, aby zmienić pomiędzy starym a nowym.

b) czasy prehistoryczne

Dla specjalnych potrzeb możemy również spróbować naszych własnych przekopów poprzez repozytorium homebrew.

$ git log -S'8.4.4' -- Library/Formula/postgresql.rb

git log -S wyszukuje wszystkie zatwierdzenia, w których ciąg znaków '8.4.4' został dodany lub usunięty w pliku Library/Formula/postgresql.rb. W rezultacie otrzymujemy dwa zatwierdzenia.

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

Oczywiście, fa992c6a82eebdc4cc36a0c0d2837f4c02f3f422 jest to zobowiązanie, które nas interesuje. Ponieważ to zatwierdzenie jest dość stare, postaramy się zdegradować całą instalację homebrew (w ten sposób formuła API jest mniej więcej gwarantowana):

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

Możesz pominąć ostatnie polecenie, aby zachować odniesienie w repozytorium git.

Jedna uwaga: podczas sprawdzania starszych zatwierdzeń, tymczasowo obniżyłeś swoją instalację homebrew. Należy więc zachować ostrożność, ponieważ niektóre polecenia w języku homebrew mogą różnić się od najnowszej wersji.

4) Ręcznie napisz formułę

Nie jest to zbyt trudne i możesz je przesłać do Wersje Homebrew.

A.) Bonus: Przypinanie

Jeśli chcesz zachować określoną wersję, powiedzmy postgresql, wokół i przestań ją aktualizować, kiedy robisz to, co naturalne brew update; brew upgrade procedura, możesz kołek formuła:

$ brew pin postgresql

Przypięte formuły są wymienione w /usr/local/Library/PinnedKegs/ a gdy chcesz wprowadzić najnowsze zmiany i aktualizacje, możesz odpiąć to znowu:

$ brew unpin postgresql

2120
2017-11-11 20:04



Możesz także po prostu sprawdzić formułę za pomocą git checkout fa992 -- Library/Formula/postgresql.rb. Kiedy skończysz, możesz cofnąć zmiany do formuły za pomocą git revert HEAD Library/Formula/postgresql.rb && git checkout -- Library/Formula/postgresql.rb. - mipadi
Uwaga: w przypadku nowej instalacji Homebrew może być konieczne brew update ustalić jego repozytorium Git. - Bluu
wygląda na to brew versions już nie działa? - jrmgx
To jest absurdalnie trudne. - Dogweather
Na dzień dzisiejszy właściwy katalog do wykonywania ręcznych poleceń w repozytorium jest cd $(brew --repository)/Library/Taps/homebrew/homebrew-core, wtedy możesz użyć git checkout 4cce79d -- Formula/go.rb i HOMEBREW_NO_AUTO_UPDATE=1 brew install go. - Calin


Prosty przepływ pracy

Teraz Homebrew / wersje zostały wycofane, Homebrew / core obsługuje wiele wersji formuł z nowym formatem nazewnictwa.

Aby zainstalować konkretną wersję, np. postgresql 9.5 po prostu uruchom:

$ brew install postgresql@9.5

Aby wyświetlić dostępne wersje, uruchom wyszukiwanie za pomocą @:

$ brew search postgresql@
==> Searching local taps...
postgresql@10.1      postgresql@9.4        postgresql@9.5        postgresql@9.6

633
2018-03-22 23:29



Wydaje się najprostszym, ale kiedy kopiuję i wklejam, zdobądź fatal: Not a git repository (or any of the parent directories): .git. ja tylko cd do katalogu (bez FORMULANAME.rb), a następnie wykonaj polecenie git checkout 120938 - Ramon Tayag
@RamonTayag, miałem ten sam problem. Upewnij się, że cd /usr/local pierwszy. - gjb
Znalazłem, że potrzebujesz kroku 3.5: brew unlink FORMULANAME - Intentss
brew versions <formula> nie jest już obsługiwany. - Emmanuel Joubaud
@ dem7w2, możesz utworzyć dowiązania symboliczne za pomocą brew link --force postgresql@9.5. Jeśli masz już zainstalowaną nowszą wersję i chcesz, aby starsza wersja była twoją domyślną, potrzebujesz --overwrite tam też. - Ryan


Istnieje teraz o wiele łatwiejszy sposób na zainstalowanie starszej wersji formuły, którą wcześniej zainstalowałeś. Po prostu użyj

brew switch [formula] [version]

Na przykład regularnie naprzemiennie między Node.js 0.4.12 i 0.6.5:

brew switch node 0.4.12
brew switch node 0.6.5

Od brew switch po prostu zmienia dowiązania symboliczne, jest bardzo szybki. Zobacz dalszą dokumentację na Homebrew Wiki pod Polecenia zewnętrzne.


425
2017-12-14 16:33



Spróbowałem tego i zakończyło się to komunikatem "33 linki stworzone dla /usr/local/Cellar/node/0.4.7", ale kiedy uruchomię węzeł, nie powiedzie się z komunikatem "-bash: / usr / local / bin / node: Brak takiego pliku lub katalogu ". Masz pojęcie, co mogło pójść nie tak? Uwaga: ręcznie pobrałem plik 0.4.7 i umieściłem go w katalogu w piwnicy, ponieważ nie wiem jak pobrać anyhting, ale ostatnią wersję węzła za pomocą brew. - Soroush Hakami
Mam nadzieję, że wiesz, że jest coś, co nazywa się "nvm" [github.com/creationix/nvm]! - Gaurav Agarwal
wow ... Żałuję, że nie została wybrana jako poprawna odpowiedź! +1 - Larry
Opieram się na już instalowanej wersji pakietu. Jeśli brakuje wersji, nadal musisz zastosować wybraną odpowiedź. - Nic Strong
@NicStrong Rzeczywiście, brew switch polega na tym, że poszukiwana wersja jest już zainstalowana. Niestety, obecnie zaakceptowana odpowiedź jest niezwykle pomocna, zawiła i przestarzała. Tam  są  lepszy odpowiedzi poniżej, które są dużo bardziej pomocne. - GDP2


Aktualizacja: 1/15/2015

  • Znajdź historię zatwierdzenia pożądanego oprogramowania i wersji. na przykład Muszę przejść z wersji 1.4.1 do doku w wersji 1.3.3: https://github.com/Homebrew/homebrew-core/commits/master/Formula/docker.rb
  • Wyświetl plik za pomocą tego przycisku: enter image description here 
  • Kliknij przycisk Raw: List item
  • Skopiuj URL (adres docker.rb w tym przykładzie) z paska adresu
  • brew install <url> (chyba będzie musiał brew unlink najpierw, np. brew unlink docker)
  • brew switch docker 1.3.3
  • Przejdź z powrotem do okna dokowanego 1.4.1 brew switch docker 1.4.1

Od tego sens

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

183
2017-07-19 23:42



To jest jedyna rzecz, która zadziałała dla mnie. Całkiem głupie, że menedżer pakietów wymaga tyle samo jasności, aby zainstalować wcześniejszą wersję. Być może jestem zepsuty przez ruby ​​RVM i bundler, ale proces ten naprawdę musi być usprawniony i wyabstrahowany. - poetmountain
Kiedy próbowałem przejść do poprzedniej wersji Ansible, musiałem odłączyć formułę przed instalacją poprzedniej wersji, jak wskazano. Więc zanim to zrobisz brew install <url>, brew unlink <formulaname>. W przeciwnym razie jest to najprostszy i najbardziej zwięzły (jak dotąd) sposób na przejście do określonej wersji formuły. - bigsweater
Pracował bez zarzutu. - isHristov
Uderzyłeś Raw przycisk na jakim pliku ?! - Iulian Onofrei
Działa, ale od czasu do czasu trzeba pobrać surowy plik .rb i zmienić sumę kontrolną, aby uniknąć sytuacji, w której Homebrew skarży się na niedopasowanie SHA. Wydaje się, że GitHub ma dużą część repozytoriów ponownie rearchizowanych w 2017 roku, a ich suma kontrolna uległa zmianie. (W rzeczywistości spowodowało to wiele zamieszania w moim zespole, gdy Bazel zaczął nie działać w niedopasowanych hasach w lipcu) - Chang Qian


Odkryłem lepsze, alternatywne rozwiązanie niż inne złożone rozwiązania.

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

Spowoduje to pobranie i zainstalowanie PostgreSQL 8.4.8


Znalazłem to rozwiązanie, rozpoczynając postępowanie z repozytorium i komentarz w repozytorium.

Po krótkim badaniu stwierdzono, że ktoś ma kolekcję rzadkich formuł do zaparzenia.


Jeśli szukasz MySQL 5.1.x, spróbuj tego.

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

93
2017-09-19 11:55



hmm, brew install https://github.com/Homebrew/homebrew-versions/blob/master/node06.rb wydawało się nie działać z błędami składni. - Brian Armstrong
Działa bezbłędnie! najlepsze rozwiązanie wszystkich wymienionych tutaj. - Nikita Volkov
@BrianArmstrong Odwołujesz się do wersji pliku w formacie html, gdy potrzebujesz wersja surowa. - Nikita Volkov
Nie zapomnij o raww adresie URL - Faber
homebrew-versions już nie ma i wszystko jest w porządku core teraz, więc ogólny przypadek to: brew install https://raw.github.com/Homebrew/homebrew-core/<COMMIT>/Formula/<FORMULA>.rb. COMMIT można znaleźć przechodząc do github.com/Homebrew/homebrew-core/commits/master/Formula/.... - PJSCopeland


Zgodnie z sugestią @ halfcube działa to bardzo dobrze:

  1. Znajdź bibliotekę, której szukasz https://github.com/Homebrew/homebrew-core/tree/master/Formula
  2. Kliknij: https://github.com/Homebrew/homebrew-core/blob/master/Formula/postgresql.rb
  3. Kliknij przycisk "Historia", aby zobaczyć stare zatwierdzenia: https://github.com/Homebrew/homebrew-core/commits/master/Formula/postgresql.rb
  4. Kliknij ten, który chcesz: "postgresql: zaktualizuj wersję do wersji 8.4.4", https://github.com/Homebrew/homebrew-core/blob/fa992c6a82eebdc4cc36a0c0d2837f4c02f3f422/Library/Formula/postgresql.rb
  5. Kliknij link "raw": https://raw.githubusercontent.com/Homebrew/homebrew-core/fa992c6a82eebdc4cc36a0c0d2837f4c02f3f422/Library/Formula/postgresql.rb
  6. brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/fa992c6a82eebdc4cc36a0c0d2837f4c02f3f422/Library/Formula/postgresql.rb

51
2017-10-16 22:12



Jest to najprostszy sposób zainstalowania potrzebnej wersji pakietu, jeśli jest on niedostępny w repozytorium głównym jako package@version - avy
Jeśli nie możesz skorzystać z interfejsu internetowego, możesz sklonować repozytorium i zrobić to lokalnie: użyj git log master -- Formula/PACKAGENAME.rb aby uzyskać historię zatwierdzania, sprawdź poprawny commit, a następnie uruchom brew install Formula/PACKAGENAME.rb zainstalować. - chipbuster
Myślę, że potrzebujesz brew unlink przed brew install innej wersji. - studgeek
Kto to mxcl? - PJSCopeland
robię to brew install https://github.com/Homebrew/homebrew-core/raw/afc10f17af8023906b87363a8340aeb62284329f/Formula/postgresql%409.6.rb ale dostaję błąd, prawdopodobnie z powodu @ znak: 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. Jakieś pomysły? - msciwoj


Możesz użyć strategii identyfikowania formuły i konkretnego zatwierdzenia w historii formuły, która jest zgodna z wersją pakietu, który chcesz zainstalować.

  1. Iść do https://github.com/Homebrew/homebrew-core

  2. naciśnij t na klawiaturze, aby aktywować wyszukiwarkę plików.

  3. Zidentyfikuj formułę, która wygląda na najbardziej istotną: Formula/mysql.rb, przenosząc cię do lokalizacji pliku forumla: https://github.com/Homebrew/homebrew-core/blob/master/Formula/mysql.rb.

  4. Spójrz na historię zmian, klikając przycisk History przycisk, który znajduje się pod adresem https://github.com/Homebrew/homebrew-core/commits/master/Formula/mysql.rb. Jeśli interesuje Cię MySQL 5.7.10, możesz kliknąć najnowszą wersję przed 5.7.11, która przechodzi do zatwierdzenia GitHub:

    https://github.com/Homebrew/homebrew/commit/c77882756a832ac1d87e7396c114158e5619016c#Library/Formula/mysql.rb

UWAGA: Może być konieczne przejrzenie historii commitów w konsoli według sugestii GitHub, jeśli historia commitów nie zostanie załadowana w przeglądarce. Zastąp powyższy SHA w adresie URL, jeśli chcesz zobaczyć to zatwierdzenie na GitHub. Ewentualnie przejdź do kroku 7 poniżej.

  1. Kliknij przycisk "Widok", aby wyświetlić źródło pliku mysql.rb po zastosowaniu zatwierdzenia.

  2. Następnie kliknij przycisk "Raw", aby wyświetlić surowe źródło.

  3. Skopiuj adres URL. Możesz też samodzielnie zbudować adres URL za pomocą mysql.rb nazwa pliku identyfikująca formułę i konkretną wersję tej formuły (identyfikowana przez zgłoszony błąd SHA w poniższym adresie URL).

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

  4. Zainstaluj go za pomocą $ brew install [URL from step 7]

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

UWAGA: Ta odpowiedź została zaktualizowana w celu usunięcia witryny braumeister.org. Ta sama zasada obowiązuje, bo braumeister po prostu zapewnił przyjazny dla początkujących sposób nawigację w wersjach formuł.


50
2018-02-24 05:38



Niestety jest to zbyt daleko na liście odpowiedzi, ale jest najlepszym rozwiązaniem. To jest to, czego używam, z wyjątkiem tego, że zamiast używać braumeistera, po prostu przechodzę na stronę Homebrew GitHub o formule, której chcę (np. Dla gcc przejdź do github.com/Homebrew/homebrew/blob/master/Library/Formula/gcc.rb), a następnie przejdę do "Historii" pliku, dopóki nie dojdę do wersji, której chcę. - Guy Kogus
Było to zdecydowanie najlepsze rozwiązanie w moim przypadku - zainstalowanie starszej wersji Watchman, która nie wymagała Xcode 8.1 - Zachary Keener
wspaniała odpowiedź, zadziałała dla mnie - domoarigato
To naprawdę najprostszy sposób na zainstalowanie starszej wersji. Świetna odpowiedź - Martin M
To działało dla mnie, ale musiałem najpierw warzyć odłączyć oprogramowanie. - Brett Wagner


Po prostu użyłem Homebrew, aby wrócić do Maven 2.2.1 od czasu prostego brew install maven zainstalowany Maven 3.0.3.

Najpierw musisz opuścić tamtejszy reżim

$ brew unlink maven

Użyj polecenia napompowania

$ brew tap homebrew / versions
Klonowanie w "/ usr / local / Library / Taps / homebrew-versions" ...
remote: Liczenie obiektów: 590, gotowe.
remote: Kompresowanie obiektów: 100% (265/265), gotowe.
remote: łącznie 590 (delta 362), ponownie użyte 549 (delta 325)
Odbieranie obiektów: 100% (590/590), 117,49 KiB | Wykonano 79 KiB / s.
Usuwanie błędów: 100% (362/362), gotowe.
Tapped 50 formuła

Teraz możesz zainstalować formułę maven2:

$ brew zainstaluj maven2
==> Pobieranie 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 plików, 3.1M, wbudowane w 6 sekund
$ mvn --version
Apache Maven 2.2.1 (r801777; 2009-08-06 12: 16: 01-0700)
Wersja Java: 1.6.0_37
Strona główna Java: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
Domyślne ustawienia regionalne: en_US, kodowanie platformy: MacRoman
Nazwa systemu operacyjnego: "mac os x" wersja: "10.7.4" arch: "x86_64" Rodzina: "mac"

Edytować: Możesz także po prostu brew switch maven 2.2.1 aby przejść do innej wersji.

Edytować: Projekt Apache Maven zreorganizował repozytorium. Zaktualizowałem tę odpowiedź, aby uwzględnić tę zmianę.


27
2018-02-12 20:35



Właśnie tego chciałem dzięki! - micmcg
Cieszę się, że okazało się to przydatne. - Cameron Goodale
To było bardzo pomocne. Zauważ, że apache Foundation zreorganizowała listę plików binarnych do wersji (1,2,3) konkretnych katalogów, więc będziesz musiał edytować plik maven.rb w wersji 2.2.1 i być może inne, aby pasowały do ​​nowej struktury. Na przykład plik binarny dla wersji 2.2.1 znajduje się pod adresem: apache.org/dist/maven/maven-2/2.2.1/binaries/.... Zwróć uwagę na "maven-2 / 2.2.1 /" w adresie URL. - Charles Forcey
@CharlesForcey Masz rację co do reorganizacji maven dist repo. Zaktualizuję odpowiedź, aby użyć kranu do parzenia, aby użyć starszej formuły maven2. Dziękuję za komentarz. - Cameron Goodale


W oparciu o przepływ pracy opisany przez @tschundeee i Aktualizacja @ Debilskiego 1, Zautomatyzowałem procedurę i dodałem porządki ten skrypt.

Pobierz to, włóż to na swoją ścieżkę i brewv <formula_name> <wanted_version>. Dla konkretnego PO będzie to:

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

:)


21
2017-07-09 14:06



po prostu niesamowite. dlaczego nie jest to w warzywie? - Adrian
@mattisg, dlaczego mogę to zrobić tylko raz? - James B
<3 ty! dzięki za to! - Felipe Lima
Nie znaleziono więcej :( - D-32


W najnowszej wersji homebrew (0.9.5 od tego pisania) będzie specjalny przepis na wersję beczki homebrew, którą chcesz zainstalować. Przykład:

$ brew search mongodb
mongodb    mongodb24  mongodb26

Więc po prostu zrób brew install mongodb26 jak normalnie.

Jeśli masz już zainstalowaną najnowszą wersję, pamiętaj, aby odłączyć najnowszą wersję i połączyć wybraną wersję: brew unlink mongodb && brew link mongodb26.


11
2018-04-30 22:01



Chociaż może to odpowiedzieć na pytanie, byłoby lepiejaby uwzględnić istotne części odpowiedzi tutaj, i podać link do odniesienia. - Erik
@Erik Dzięki, naprawione. - Alex Sharp


Zaktualizowana odpowiedź, ponieważ dodaje do tego, co @ lance-pollard już opublikował jako działającą odpowiedź.

Jak zainstalować określoną wersję formuły (formuła używana w tym przykładzie to terraform):

  1. Znajdź swój plik formuły, np .: https://github.com/Homebrew/homebrew-core/blob/master/Formula/terraform.rb
  2. Pobierz wersję commit z historii Githuba https://github.com/Homebrew/homebrew-core/commits/master/Formula/terraform.rb lub git log master -- Formula/terraform.rb jeśli sklonowałeś repo na miejscu.
  3. Uzyskaj nieprzetworzony URL git z wersją zatwierdzenia formuły: jeśli link do formuły w github.com jest https://github.com/Homebrew/homebrew-core/blob/e4ca4d2c41d4c1412994f9f1cb14993be5b2c59a/Formula/terraform.rbTwój nieprzetworzony URL będzie: https://raw.githubusercontent.com/Homebrew/homebrew-core/e4ca4d2c41d4c1412994f9f1cb14993be5b2c59a/Formula/terraform.rb
  4. Zainstaluj go za pomocą: brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/e4ca4d2c41d4c1412994f9f1cb14993be5b2c59a/Formula/terraform.rb

11
2017-12-19 20:45



Dziękuję bardzo! - Linh
Aby uzyskać nieprzetworzony adres URL git w kroku 3, możesz także kliknąć przycisk "Raw" i skopiować adres URL, do którego przeglądarka Cię zaprowadzi. - Brian Topping