Jak zainstalować określoną wersję formuły w Homebrew? Na przykład postgresql-8.4.4 zamiast najnowszej wersji 9.0.
installation
versioning
homebrew
Gravis
źródło
źródło
postgresql
jest dziwny, ponieważ w pewnym momencie miał osobne wersje w Homebrew, coś takiegobash
może być lepszym przykładem, ponieważ zmienił się z 4.x na 5.x w obrębie tej samej nazwy formuły. Zobacz stackoverflow.com/a/55764594/3794873Odpowiedzi:
TLDR: więcej szczegółów
brew install [email protected]
znajdziesz w odpowiedzi poniżej .* ( Ponownie zredagowałem moją odpowiedź, aby zapewnić dokładniejszy obieg pracy podczas instalowania / używania starszych wersji oprogramowania z Homebrew. Możesz dodać notatkę, jeśli starsza wersja była lepsza. )
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 dowiązania symboliczne do tego folderu są następnie instalowane globalnie. Zasadniczo czyni to dość łatwym przełączanie między dwiema zainstalowanymi wersjami. (*)Jeśli używasz homebrew przez dłuższy czas i nigdy nie usunąłeś starszych wersji (używając na przykład
brew cleanup
), istnieje szansa, że niektóre starsze wersje twojego programu mogą być nadal dostępne. Jeśli chcesz po prostu aktywować poprzednią wersję,brew switch
jest to najłatwiejszy sposób.Sprawdź za pomocą
brew info postgresql
(lubbrew switch postgresql <TAB>
), czy starsza wersja jest zainstalowana:Widzimy, że niektóre starsze wersje są już zainstalowane. Możemy go aktywować za pomocą
brew switch
:Sprawdźmy dokładnie, co jest aktywowane:
Pamiętaj, że gwiazda
*
została przeniesiona do nowo aktywowanej wersji(*) Należy pamiętać, że
brew switch
działa tylko tak długo, jak długo istnieją wszystkie zależności starszej wersji. W niektórych przypadkach może być konieczna przebudowa starszej wersji. Dlatego używaniebrew switch
jest szczególnie przydatne, gdy chce się przełączać między dwiema wersjami niezbyt daleko od siebie.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 niekompatybilnych z API) głównych wersji określonego oprogramowania. Od marca 2012 r. Homebrew 0.9 zapewnia taki mechanizm:
brew tap
i repozytorium wersji Homebrew .To repozytorium wersji może zawierać backporty starszych wersji dla kilku formuł. (Przeważnie tylko duże i znane, ale oczywiście będą miały również kilka formuł dla postgresql.)
brew search postgresql
pokaże Ci, gdzie szukać:Możemy po prostu zainstalować, pisząc
Pamiętaj, że automatycznie dotknęło to
homebrew/versions
kranu. (Sprawdź za pomocąbrew tap
, usuń za pomocąbrew untap homebrew/versions
.) Poniższe byłoby równoważne:Tak długo, jak formułowane wersje są aktualne, podejście to jest prawdopodobnie najlepszym sposobem radzenia sobie ze starszym oprogramowaniem.
3) Wypróbuj jakąś formułę z przeszłości
Następujące podejścia są wymienione głównie dla kompletności. Obaj próbują wskrzesić jakąś nieumarłą formułę z repozytorium naparu. Ze względu na zmienione zależności, zmiany interfejsu API w specyfikacji formuły lub po prostu zmianę adresu URL pobierania rzeczy mogą, ale nie muszą działać.
Ponieważ cały katalog formuł jest repozytorium git, można instalować określone wersje za pomocą zwykłych poleceń git. Musimy jednak znaleźć sposób na uzyskanie zatwierdzenia, w którym dostępna była stara wersja.
a) czasy historyczne
Pomiędzy sierpniem 2011 r. A październikiem 2014 r. Homebrew wydało
brew versions
polecenie, które wypluwało wszystkie dostępne wersje za pomocą odpowiednich skrótów SHA. Od października 2014 r. Musisz to zrobić,brew tap homebrew/boneyard
zanim będziesz mógł z niego korzystać. Jak sugeruje nazwa kranu, prawdopodobnie powinieneś to zrobić tylko w ostateczności.Na przykład
Jak widać, odradza się go używać. Homebrew wyrzuca wszystkie wersje, które może znaleźć dzięki swojej wewnętrznej heurystyce i pokazuje sposób na odzyskanie starych formuł. Spróbujmy.
Po zainstalowaniu starszej wersji postgresql możemy ponownie zainstalować najnowszą formułę, aby utrzymać nasze repozytorium w czystości:
brew switch
jest twoim przyjacielem do zmiany między starym a nowym.b) czasy prehistoryczne
Na specjalne potrzeby możemy również spróbować samodzielnie sięgnąć po repozytorium homebrew.
git log -S
szuka wszystkich zatwierdzeń, w których ciąg'8.4.4'
został dodany lub usunięty w plikuLibrary/Taps/homebrew/homebrew-core/Formula/postgresql.rb
. W rezultacie otrzymujemy dwa commity.Oczywiście
fa992c6a82eebdc4cc36a0c0d2837f4c02f3f422
jest to zatwierdzenie, którym jesteśmy zainteresowani. Ponieważ to zatwierdzenie jest dość stare, spróbujemy obniżyć wersję pełnej instalacji homebrew (w ten sposób API formuły jest mniej więcej gwarantowane):Możesz pominąć ostatnie polecenie, aby zachować odwołanie w repozytorium git.
Jedna uwaga: Podczas sprawdzania starszego zatwierdzenia tymczasowo obniżasz instalację Homebrew. Dlatego należy zachować ostrożność, ponieważ niektóre polecenia w homebrew mogą różnić się od najnowszej wersji.
4) Ręcznie napisz wzór
Nie jest to zbyt trudne i możesz następnie przesłać je do własnego repozytorium. Kiedyś były to wersje Homebrew , ale teraz jest to wycofane.
A.) Bonus: Przypinanie
Jeśli chcesz zachować pewną wersję, powiedzmy postgresql, i zatrzymać aktualizację podczas wykonywania naturalnej
brew update; brew upgrade
procedury, możesz przypiąć formułę:Przypięte formuły są wymienione na liście,
/usr/local/Library/PinnedKegs/
a gdy chcesz wprowadzić najnowsze zmiany i aktualizacje, możesz je ponownie odpiąć :źródło
git checkout fa992 -- Library/Formula/postgresql.rb
. Po zakończeniu możesz cofnąć zmiany w formule za pomocągit revert HEAD Library/Formula/postgresql.rb && git checkout -- Library/Formula/postgresql.rb
.brew update
ustanowienie repozytorium Git.cd $(brew --repository)/Library/Taps/homebrew/homebrew-core
, wtedy możesz użyćgit checkout 4cce79d -- Formula/go.rb
iHOMEBREW_NO_AUTO_UPDATE=1 brew install go
.Prosty przepływ pracy
Teraz, gdy Homebrew / wersje jest przestarzałe, Homebrew / core obsługuje wiele wersji formuł z nowym formatem nazewnictwa.
Aby zainstalować określoną wersję, np. Postgresql 9.5, wystarczy uruchomić:
Aby wyświetlić listę dostępnych wersji, uruchom wyszukiwanie za pomocą @:
źródło
fatal: Not a git repository (or any of the parent directories): .git
. Właśniecd
do katalogu zamiast (bez FORMULANAME.rb), a następnie zrobićgit checkout 120938
cd /usr/local
Najpierw pamiętaj .brew unlink FORMULANAME
brew versions <formula>
nie jest już obsługiwany.brew link --force [email protected]
. Jeśli masz już zainstalowaną nowszą wersję i chcesz, aby starsza wersja była domyślna, również tam będziesz potrzebować--overwrite
.Jest teraz o wiele łatwiejszy sposób na zainstalowanie starszej wersji formuły, którą wcześniej zainstalowałeś. Po prostu użyj
Na przykład regularnie zmieniam między Node.js 0.4.12 i 0.6.5:
Ponieważ
brew switch
po prostu zmienia dowiązania symboliczne, jest bardzo szybki. Zobacz dalszą dokumentację na Wiki Homebrew pod Poleceniami zewnętrznymi .źródło
brew switch
polega na tym, że poszukiwana wersja jest już zainstalowana. Niestety, obecnie przyjęta odpowiedź jest niesamowicie nieprzydatna, skomplikowana i nieaktualna. Poniżej znajdują się lepsze odpowiedzi, które są znacznie bardziej pomocne.Aktualizacja: 15.01.2015
brew install <url>
(możebrew unlink
najpierw trzeba np.brew unlink docker
)brew switch docker 1.3.3
brew switch docker 1.4.1
Z tego sedna
źródło
brew install <url>
,brew unlink <formulaname>
. W przeciwnym razie jest to najprostszy i najbardziej zwięzły (jak dotąd) sposób przełączenia się na określoną wersję formuły.Raw
przycisk na jakim pliku ?!brew log <formula>
Zgodnie z sugestią @ halfcube działa to naprawdę dobrze:
brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/8cf29889111b44fd797c01db3cf406b0b14e858c/Formula/postgresql.rb
źródło
package@version
git log master -- Formula/PACKAGENAME.rb
aby uzyskać historię zatwierdzeń, sprawdź poprawne zatwierdzenie, a następnie uruchom,brew install Formula/PACKAGENAME.rb
aby je zainstalować.brew unlink
wcześniejbrew install
innej wersji.mxcl
jestbrew install https://github.com/Homebrew/homebrew-core/raw/afc10f17af8023906b87363a8340aeb62284329f/Formula/postgresql%409.6.rb
ale dostaję błąd, prawdopodobnie ze względu na@
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?Odkryłem lepsze rozwiązanie alternatywne niż inne złożone rozwiązania.
Spowoduje to pobranie i zainstalowanie PostgreSQL 8.4.8
Znalazłem to rozwiązanie, rozpoczynając od przeszukiwania repozytorium i komentarza w repozytorium.
Po drobnych badaniach odkryto, że ktoś ma kolekcję rzadkich formułek do zaparzenia.
Jeśli szukasz MySQL 5.1.x, spróbuj.
źródło
brew install https://github.com/Homebrew/homebrew-versions/blob/master/node06.rb
wydawało się , że zawiodło z błędami składniowymi.raw
adresie URLhomebrew-versions
nie ma, a wszystko to nacore
teraz, więc ogólny przypadek jest:brew install https://raw.github.com/Homebrew/homebrew-core/<COMMIT>/Formula/<FORMULA>.rb
.COMMIT
można je znaleźć na stronie github.com/Homebrew/homebrew-core/commits/master/Formula/… .Możesz użyć strategii identyfikacji formuły i konkretnego zatwierdzenia w historii formuły, która pasuje do wersji pakietu, który chcesz zainstalować.
Idź do https://github.com/Homebrew/homebrew-core
Naciśnij
t
na klawiaturze, aby aktywować wyszukiwarkę plików.Zidentyfikuj formułę, która wygląda najtrafniej, na przykład:
Formula/mysql.rb
prowadząca do lokalizacji pliku forumla: https://github.com/Homebrew/homebrew-core/blob/master/Formula/mysql.rb .Przejrzyj historię zmian, klikając
History
przycisk znajdujący się na stronie https://github.com/Homebrew/homebrew-core/commits/master/Formula/mysql.rb . Jeśli interesuje Cię MySQL 5.7.10, możesz chcieć kliknąć najnowszą wersję przed 5.7.11, która prowadzi do zatwierdzenia GitHub:https://github.com/Homebrew/homebrew-core/commit/c77882756a832ac1d87e7396c114158e5619016c#Formula/mysql.rb
UWAGA: Konieczne może być przejrzenie historii zatwierdzeń w konsoli zgodnie z sugestią GitHub, jeśli historia zatwierdzeń nie ładuje się w przeglądarce. Zamień powyżej zatwierdzenie SHA w adresie URL, jeśli chcesz zobaczyć to zatwierdzenie na GitHub. Alternatywnie przejdź do kroku 7 poniżej.
Kliknij przycisk „Widok”, aby wyświetlić źródło pliku mysql.rb po zastosowaniu zatwierdzenia.
Następnie kliknij przycisk „Raw”, aby wyświetlić surowe źródło.
Skopiuj adres URL. Alternatywnie, sam zbuduj adres URL z
mysql.rb
nazwą pliku, aby zidentyfikować formułę i konkretną wersję tej formuły (zidentyfikowaną przez comma SHA w poniższym adresie URL).https://raw.githubusercontent.com/Homebrew/homebrew-core/c77882756a832ac1d87e7396c114158e5619016c/Formula/mysql.rb
Zainstaluj za pomocą
$ brew install [URL from step 7]
UWAGA: Ta odpowiedź została zaktualizowana w celu uwzględnienia usunięcia witryny braumeister.org. Obowiązuje ta sama zasada, Braumeister po prostu zapewnił przyjazny dla początkujących sposób poruszania się po wersjach formuł.
źródło
Większość innych odpowiedzi jest już nieaktualna. Niestety Homebrew nadal nie posiada wbudowanego sposób instalowania przestarzałej wersji, chyba że wersja istnieje jako odrębny wzoru (np
python@2
,[email protected]
...).Na szczęście w przypadku innych formuł istnieje znacznie łatwiejszy sposób niż zawiły bałagan, który kiedyś był konieczny. Oto pełne instrukcje:
Wyszukaj poprawną wersję w dziennikach:
Spowoduje to wyświetlenie listy skrótów zatwierdzeń. Wybierz taki, który jest odpowiedni (przeważnie powinien być dość oczywisty i zwykle jest najnowszy (tj. Najwyższy).
Znajdź adres URL, pod którym formuła znajduje się w repozytorium nadrzędnym:
Napraw adres URL:
github.com
zraw.githubusercontent.com
blob/master
skrótem zatwierdzenia, który znaleźliśmy w pierwszym kroku.Zainstaluj żądaną wersję, zastępując
master
wcześniej znaleziony adres URL hashem zatwierdzenia, np .:(Ostatni krok może wymagać uruchomienia
brew unlink ‹formula›
wcześniej.)Jeśli skopiowałeś skrót zatwierdzenia, którego chcesz użyć, możesz użyć czegoś takiego jak ten przykład, aby zainstalować tę wersję, zastępując wartość oraz
bash
skrótem zatwierdzenia i żądaną formułą.W tym przykładzie zainstalowano wersję bash 4.4.23 zamiast bash 5, ale jeśli wykonałeś
brew upgrade
później, bash 5 zostałby zainstalowany ponad, chyba że najpierw wykonałeśbrew pin bash
. Zamiast tego, aby uczynić to płynniejszym BEZ przypinania, należy najpierw zainstalować najnowszą wersjębrew install bash
, abrew unlink bash
następnie zainstalować starszą wersję, którą chcesz, zgodnie ze skryptem powyżej, a następnie użyćbrew switch bash 4.4.23
do skonfigurowania dowiązań symbolicznych do starszej wersji. Teraz abrew upgrade
nie powinno wpływać na twoją wersję Bash. Możeszbrew switch bash
uzyskać listę dostępnych wersji, na które możesz się przełączyć.Alternatywnie przy użyciu niestandardowego kranu tylko lokalnego
Innym sposobem osiągnięcia tego samego celu wydaje się:
Spowoduje to utworzenie
formula@version
niestandardowego kranu, który można zainstalować zgodnie z powyższym przykładem. Minusem jest to, że prawdopodobnie nadal musisz,brew unlink bash
a następniebrew link [email protected]
, aby użyć określonej wersji Bash lub jakiejkolwiek innej formuły.źródło
brew log
więc wszelkie dodatkowe-F
lub--grep
opcje zawiodły dla mnie.brew log
. Nie mogę sobie teraz pozwolić na napisanie nowej wersji, ponieważ wymaga to prawidłowego parsowania komunikatu dziennika git lub alternatywnego uruchomieniagit log
bezpośrednio w odpowiednim repozytorium. Dziennik zmian nawet nie wspomina o tej przełomowej zmianie. Bardziej irytujące.External Command
że konieczne może być działanie w ramach struktury,brew
aby odzyskać tego rodzajugit log
filtrowanie. docs.brew.sh/External-Commandsbrew extract
użycie, dzięki!Właśnie użyłem Homebrew, aby wrócić do Maven 2.2.1 od czasu prostej
brew install maven
instalacji Maven 3.0.3.Najpierw musisz opuścić tam maven reż
Użyj polecenia zaparzania
Teraz możesz zainstalować formułę maven2:
Edycja: Możesz także
brew switch maven 2.2.1
przełączyć się na inną wersję.Edycja: Projekt Apache Maven zreorganizował swoje repozytorium. Zaktualizowałem tę odpowiedź, aby uwzględnić tę zmianę.
źródło
W oparciu o przepływ pracy opisany przez @tschundeee i aktualizację 1 Debilskiego 1 zautomatyzowałem procedurę i dodałem czyszczenie w tym skrypcie .
Pobierz , umieść na swojej ścieżce i
brewv <formula_name> <wanted_version>
. W przypadku konkretnego PO byłoby to::)
źródło
Zaktualizowana odpowiedź, ponieważ dodaje do tego, co @ lance-pollard już opublikował jako odpowiedź roboczą.
Jak zainstalować określoną wersję formuły (w tym przykładzie użyto wzoru
terraform
):git log master -- Formula/terraform.rb
jeśli lokalnie sklonowałeś repo.brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/e4ca4d2c41d4c1412994f9f1cb14993be5b2c59a/Formula/terraform.rb
źródło
Oficjalna metoda (na podstawie odpowiedzi na https://github.com/Homebrew/brew/issues/6028 )
Niestety Homebrew wciąż nie ma oczywistego wbudowanego sposobu instalowania starszej wersji.
Na szczęście dla większości formuł istnieje o wiele łatwiejszy sposób niż zawiły bałagan, który kiedyś był potrzebny. Oto pełne instrukcje
bash
na przykładzie:Spowoduje to utworzenie
formula@version
niestandardowego kranu, który można zainstalować zgodnie z powyższym przykładem. Ważną uwagą jest to, że prawdopodobnie potrzebujesz,brew unlink bash
jeśli wcześniej zainstalowałeś domyślną / najnowszą wersję formuły, a następniebrew link [email protected]
, aby użyć konkretnej wersji Bash (lub innej formuły, w której masz zainstalowaną najnowszą i starszą wersję).Potencjalnym minusem tej metody jest to, że nie można łatwo przełączać się między wersjami, ponieważ zgodnie z
brew
nią jest to „inna formuła”.Jeśli chcesz mieć możliwość korzystania
brew switch $FORMULA $VERSION
, powinieneś użyć następnej metody.Metoda skryptowa (zalecana)
Ten przykład pokazuje instalację starszej wersji bash 4.4.23, przydatny przykład, ponieważ
bash
formuła obecnie instaluje wersję bash 5.brew install bash
brew unlink bash
brew switch bash 4.4.23
aby skonfigurować dowiązania symboliczne do swojej wersjiJeśli
brew upgrade
wykonałeś po zainstalowaniu starszej wersji bez instalowania najnowszej wersji, najnowsza wersja zostanie zainstalowana, zamykając starszą wersję, chyba że najpierw ją wykonałeśbrew pin bash
.Kroki tutaj UNIKAJ przypinania, ponieważ łatwo jest o nim zapomnieć i możesz przypiąć do wersji, która stanie się niepewna w przyszłości (patrz Shellshock / etc). Dzięki tej konfiguracji
brew upgrade
nie powinno to wpływać na twoją wersję Bash i zawsze możesz uruchomić,brew switch bash
aby uzyskać listę wersji dostępnych do przełączenia.Skopiuj i wklej i edytuj
export
wiersze z fragmentu kodu poniżej, aby zaktualizować żądaną wersję i nazwę formuły, a następnie skopiuj i wklej resztę w niezmienionej postaci, a ona wykorzysta te zmienne do wykonania magii.Jeśli masz pewność, że wersja istnieje w formule, możesz użyć poniższego:
Po wyeksportowaniu skrótu zatwierdzenia, którego chcesz użyć, możesz go użyć do zainstalowania tej wersji pakietu.
Postępuj zgodnie ze wskazówkami w formule wyjściowej, aby umieścić ją w zmiennej PATH lub ustawić jako domyślną powłokę.
źródło
W najnowszej wersji homebrew (od wersji 0.9.5) będzie określony przepis na wersję beczki homebrew, którą chcesz zainstalować. Przykład:
Więc po prostu rób
brew install mongodb26
jak normalnie.W przypadku, gdy jesteś już zainstalowaną najnowszą wersję, należy odłączyć najnowszą wersję i połączyć żądaną wersję:
brew unlink mongodb && brew link mongodb26
.źródło
Jest rok 2020 i większość odpowiedzi jest nieaktualna
Moja sytuacja:
postgresql
została przypadkowo zaktualizowana z 11 do 12. Chcę zachować 11.postgres
napostgres@11
:Jeśli masz jakieś błędy, sprawdź
/usr/local/var/log/[email protected]
(zauważ @ 11).źródło
brew postgresql-upgrade-database
). Ta odpowiedź nie jest przydatna w prawie żadnej innej formule.brew postgresql-upgrade-database
jest, cóż, do aktualizacji . Moja odpowiedź dotyczy używania starszej wersji Postgres. Po prostu zmiana plików binarnych nie będzie działać.nvm
FYI Miałem szczęście, używając tej techniki do starszych wersji LTS. Przynajmniej w momencie pisania wersji 10 i 12 powinna być dostępna, np.brew install node@12
Formulae.brew.sh/formula/nodeProblem
homebrew/versions
polega na tym, że ktoś musi mieć tę konkretną wersję oprogramowania wymienioną w repozytorium, abyś mógł z niej korzystać. Ponadto, ponieważbrew versions
nie jest już obsługiwany, wymagane jest inne rozwiązanie. W przypadku rozwiązań wskazujących użyciebrew switch
będzie to działać tylko wtedy, gdy nie zostało to zrobione,brew cleanup
ponieważ wersja musi istnieć na komputerze.Miałem problem z instalacją konkretnej starszej wersji,
docker-machine
której nie wymieniono whomebrew/versions
. Rozwiązałem to, korzystając z poniższej instrukcji, która powinna również działać w przypadku dowolnego oprogramowania zainstalowanego w napoju. Poniższy przykład posłużydocker-machine
jako pakiet, który chcę obniżyć z wersji 0.5.0 do 0.4.1.Idź do swojego domu
Formula
katalogu .Możesz to ustalić, uruchamiając
brew info [any package name]
. Na przykład,brew info docker-machine
daje mi linię, która pokazuje mi ścieżkę -/usr/local/Cellar/docker-machine/0.5.0
. To mówi mi, że na moim komputerze homebrew jest zainstalowany w,/usr/local
a mójFormula
katalog domyślnie znajduje się w/usr/local/Library/Formula
Znajdź konkretny plik formuły (.rb) dla swojego pakietu. Ponieważ chcę obniżyć wersję
docker-machine
, widzędocker-machine.rb
plik.Pobierz historię wersji tego pliku formuły . Enter
git log docker-machine.rb
. Spowoduje to wyświetlenie pełnej historii zatwierdzeń dla tego pliku. Zobaczysz takie dane wyjściowe:Trudność polega na znalezieniu najnowszego zatwierdzenia dla konkretnej wersji, którą chcesz. W powyższym przykładzie, mogę powiedzieć, najnowsza wersja 0.4.1 został popełniony przy tym popełnić tag:
commit 5970e1af9b13dcbeffd281ae57c9ab90316ba423
. Zatwierdzenia powyżej tego punktu zaczynają korzystać z wersji 0.5.0 (wpisy dziennika git są wymienione od najnowszej do najwcześniejszej daty).Pobierz poprzednią wersję pliku formuły. Korzystając ze znacznika zatwierdzenia z kroku 3 (możesz użyć pierwszych 6 znaków), możesz uzyskać starszą wersję pliku formuły, używając:
git checkout 5970e1 docker-machine.rb
Odinstaluj aktualną wersję pakietu. Wystarczy uruchomić normalne polecenia parzenia, aby odinstalować bieżącą wersję pakietu.
Dawny.
brew uninstall docker-machine
Zainstaluj starszą wersję pakietu Teraz możesz po prostu uruchomić normalną komendę brew, aby zainstalować formułę, którą wypisałeś. Dawny.
brew install docker-machine
W razie potrzeby konieczne może być ponowne połączenie
brew link docker-machine
.Jeśli w dowolnym momencie chcesz przywrócić najnowszą wersję określonego pakietu, przejdź do katalogu Formula i wydaj następujące polecenia w pliku formuły (.rb)
Następnie możesz
brew uninstall docker-machine
ibrew install docker-machine
uzyskać najnowszą wersję i iść do przodu.źródło
git log --grep 0.4.1 docker-machine.rb
./usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula
cairo
naparu. Odpowiedź @ sealocal z jakiegoś powodu pokazała więcej.Zainstaluj starą wersję pakietu parzenia (przykład Flyway 4.2.0)
Znajdź lokalnego git dir lub klonuj Homebrew / homebrew-core lokalnie
cd /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/
LUB
git clone [email protected]:Homebrew/homebrew-core.git
Wyświetl wszystkie dostępne wersje
git log master -- Formula/flyway.rb
Skopiuj identyfikator zatwierdzenia dla żądanej wersji i zainstaluj go bezpośrednio
brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/793abfa325531415184e1549836c982b39e89299/Formula/flyway.rb
źródło
brew install Formula/flyway.rb
zhomebrew-core
katalogu? zadziałało dla mnie bezraw.github..
adresuWypróbowałem większość rozwiązań tutaj i są one nieaktualne. Odtąd musiałem połączyć kilka pomysłów z własną pracą. W rezultacie stworzyłem skrypt, który pomoże mi wykonać ciężkie podnoszenie, które można znaleźć tutaj
Stosowanie:
źródło
można to zrobić bardzo łatwo dla ostatniej wersji naparu.
źródło
Żaden z nich tak naprawdę nie działał w mojej sprawie (Python), więc dodam moje 2 centy:
Dane wyjściowe wyglądają tak:
Chcę wersję,
2.7.11
więc mój skrót jestcf5da0547cd261f79d69e7ff62fdfbd2c2d646e9
(lubcf5da05
w skrócie). Następnie sprawdzam tę wersję i instaluję formułępython
:Wreszcie posprzątaj:
źródło
HOMEBREW_NO_AUTO_UPDATE
i przeczytaj github.com/Homebrew/brew/issues/1188cd
brew/Homebrew
git log Library/Taps/homebrew/homebrew-core/Formula/python.rb
/Library/Taps
jest ignorowane.HOMEBREW_NO_AUTO_UPDATE
. Tak, nie zapomnij o rzeczy trzeba aż po odkryć jest to potrzebne. xDHOMEBREW_NO_INSTALL_CLEANUP
czy nie jest to coś, o czym musisz pamiętać?Jeśli nie możesz znaleźć swojej wersji
brew search <formula>
, możesz także przejrzeć dzienniki zatwierdzeń dla formuły, aby znaleźć żądaną wersję:oto przykład instalacji starszej wersji nginx przez brew:
Dziennik zatwierdzania formuły ngxnx
widzieć
nginx: update 1.6.3 bottle eba75b9a1a474b9fc4df30bd0a32637fa31ec049
Stamtąd możemy zainstalować
1.6.3
z sha i raw git url:brew install https://raw.githubusercontent.com/Homebrew/homebrew/eba75b9a1a474b9fc4df30bd0a32637fa31ec049/Library/Formula/nginx.rb
źródło
Obecnie stare sposoby instalowania określonych wersji formuł są przestarzałe. Wygląda na to, że musimy użyć
brew edit [formula]
. Powiedzmy na przykład, że chcemy zainstalować62.1
wersjęicu4c
(potrzebną np. Dopostgresql 10.5
). Wtedy będziesz musiałŻe tu trzeba zmienić
url
,version
isha256
(być możemirror
) do odpowiednich62.1
ciągów.następnie uruchom,
brew reinstall icu4c
aby w końcu pobrać62.1
wersję.źródło
sha256
? w moim przypadkuhttps://storage.googleapis.com/dart-archive/channels/stable/release/1.24.3/sdk/dartsdk-macos-x64-release.zip
Zaktualizuj w Bibliotece / Formule / postgresql.rb wiersz 8 do
I MD5 na linii 9 do
Zapisz i wyjdź.
Teraz na tym etapie możesz napotkać
postgresql could not create shared memory segment
błąd, aby obejść tę aktualizację w/etc/sysctl.conf
następujący sposób:Spróbuj
initdb /usr/local/var/postgres
ponownie, a powinno działać płynnie.Aby uruchomić postgresql przy starcie
Mam nadzieję, że to pomoże :)
źródło
Właśnie skopiowałem starszą wersję elasticsearch do
/usr/local/Cellar/elasticsearch
katalogu.Otóż to. Może jest to przydatne dla każdego.
źródło
Zdecydowałem, wbrew mojej lepszej ocenie, stworzyć formułę dla Maven 3.1.1, której
homebrew/versions
nie ma. Aby to zrobić:homebrew/versions
na github.$(brew --prefix)/Library/Taps
do lokalnej kopii roboczej mojego widelca. Zadzwonię do tegomy-homebrew/versions
.my-homebrew/versions/<formula>
.homebrew/versions
mojej nowej formuły.Tak
źródło
W przypadku wersji, które nie są obecnie w domyślnych formułach zaparzania, możesz łatwo utworzyć własny kran za pomocą narzędzia z https://github.com/buildtools-version-taps/homebrew-versions-tap-tool
źródło
brew tap-new user/repo
a potembrew extract --version='Major.minor' FORMULA user/repo
i wtedybrew install [email protected]
.Stworzyłem narzędzie ułatwiające proces opisany w tej odpowiedzi .
Aby znaleźć pakiet
pkg
z wersjąa.b.c
, uruchom:Spowoduje to wyświetlenie zatwierdzeń w
pkg
formule homebrew, które wspominają daną wersję wraz z ich adresami URL GitHub.Sprawdź zatwierdzenie z podanego adresu URL i wprowadź indeks wybranego zatwierdzenia.
Skopiuj i uruchom podane polecenie, aby zainstalować.
źródło