Homebrew zainstalować konkretną wersję formuły?

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

Author: Jay P., 2010-10-21

20 answers

(ponownie edytowałem moją odpowiedź, aby dać bardziej dokładny przepływ pracy dla instalacji / korzystania ze starszych wersji oprogramowania z homebrew. Możesz dodać notatkę, jeśli uważasz, że stara wersja jest 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 jak /usr/local/Cellar/postgresql/9.3.1. Tylko dowiązania symboliczne 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), jest szansa, że jakaś starsza wersja twojego programu może nadal istnieć. Jeśli chcesz po prostu aktywować poprzednią wersję, brew switch jest najprostszym sposobem, aby to zrobić.

Sprawdź za pomocą 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 wersja jest już zainstalowana. 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 jeszcze raz, 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
Uwaga: gwiazda * została przeniesiona do nowo aktywowanej wersji

(*) należy pamiętać, że brew switch działa tylko tak długo, jak wszystkie zależności starszej wersji są nadal dostępne. W niektórych przypadkach konieczna może być przebudowa starszej wersji. Dlatego używanie brew switch jest najczęściej przydatne, gdy chcemy przełączać się między dwoma wersjami nie zbyt daleko od siebie.

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

Szczególnie 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 danego oprogramowania. Od marca 2012 roku, Homebrew 0.9 dostarcza do tego mechanizmu: brew tap & repozytorium Homebrew versions.

Że repozytorium wersji może zawierać Backporty starszych wersji dla kilka wzorów. (Głównie tylko te duże i znane, 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ć wpisują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 to automatycznie stuknęło stuknięcie homebrew/versions. (Sprawdź za pomocą brew tap, Usuń za pomocą brew untap homebrew/versions.) Następująca byłaby równoważna:

$ brew tap homebrew/versions
$ brew install postgresql8

Tak długo, jak wzory wersji wstecznej pozostają aktualne, podejście to jest prawdopodobnie najlepszy sposób radzenia sobie ze Starszym oprogramowaniem.

3) spróbuj jakiegoś wzoru 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 brew. Ze względu na zmienione zależności, zmiany API w specyfikacji formuły lub po prostu zmianę adresu URL pobierania, rzeczy mogą lub nie mogą działać.

Ponieważ cały katalog formuły jest repozytorium git, można zainstalować określone wersje używając zwykłych komend git. Musimy jednak znaleźć sposób na przejście do commita, w którym stara wersja była dostępna.

A) czasy historyczne

Pomiędzy sierpniem 2011 a październikiem 2014 , homebrew miał brew versions komendę, która wypluwała wszystkie dostępne wersje z ich odpowiednimi hashami SHA. Od października 2014 r. musisz wykonać brew tap homebrew/boneyard, zanim będziesz mógł go użyć. Jak sugeruje nazwa kranu, prawdopodobnie powinieneś zrobić to tylko w ostateczności.

Np.

$ 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

As you can odradza używanie go. Homebrew wypluwa wszystkie wersje, które może znaleźć ze swoją wewnętrzną heurystyką 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 utrzymać nasze repozytorium w czystości:]}
$ git checkout -- Library/Formula/postgresql.rb

brew switch Czy twój przyjaciel może zmienić między starym a nowym.

B) czasy prehistoryczne

Dla specjalnych potrzeb, możemy również spróbować naszych własne przekopywanie się przez repo homebrew.

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

git log -S wyszukuje wszystkie commity, w których łańcuch '8.4.4' został dodany lub usunięty w pliku Library/Formula/postgresql.rb. W rezultacie otrzymujemy dwa commity.

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 commit jesteśmy zainteresowani. Ponieważ ten commit jest dość stary, spróbujemy obniżyć wersję pełnej instalacji homebrew (w ten sposób, API formuły jest mniej więcej gwarantowane): {]}

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

Możesz pominąć ostatnią komendę, aby zachować odniesienie w repozytorium git.

Jedna uwaga: sprawdzając starszy commit, tymczasowo obniżasz wersję instalacji homebrew. Tak więc, powinieneś być ostrożny, ponieważ niektóre komendy w homebrew mogą się różnić od najnowszej wersji.

4) ręcznie napisz wzór

Nie jest to zbyt trudne i możesz następnie przesłać go do Homebrew-wersje .

A.) Bonus: Przypinanie

Jeśli chcesz zachować pewną wersję, powiedzmy postgresql, i zatrzymać ją przed gdy wykonujesz naturalną brew update; brew upgrade procedurę, możesz przypinać wzór:

$ brew pin postgresql

Przypięte wzory są wymienione w /usr/local/Library/PinnedKegs/ i gdy chcesz wprowadzić najnowsze zmiany i aktualizacje, możesz rozpinać Jeszcze raz:

$ brew unpin postgresql
 2150
Author: Debilski,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-12 22:45:18

Prosty Przepływ Pracy

Teraz, gdy Homebrew / versions został przestarzały, Homebrew / core obsługuje wiele wersji formuł z nowym formatem nazewnictwa.

Aby zainstalować konkretną wersję, np. postgresql 9.5 wystarczy uruchomić:

$ brew install [email protected]

Aby wyświetlić listę dostępnych wersji uruchom wyszukiwanie za pomocą@:

$ brew search postgresql@
==> Searching local taps...
[email protected][email protected]        [email protected]        [email protected]
 649
Author: Bijan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-01 17:24:38

Istnieje teraz znacznie ł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, i naprzemiennie regularnie między węzłem.js 0.4.12 i 0.6.5:

brew switch node 0.4.12
brew switch node 0.6.5

Ponieważ brew switch po prostu zmienia dowiązania symboliczne, jest to bardzo szybkie. Zobacz dalszą dokumentację na Homebrew Wiki Pod External Commands .

 433
Author: Trevor Burnham,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-12-14 16:33:26

Aktualizacja: 1/15/2015

  • Znajdź historię zatwierdzeń żądanego oprogramowania i wersji. np. muszę przełączyć się z Dockera w wersji 1.4.1 na 1.3.3: https://github.com/Homebrew/homebrew-core/commits/master/Formula/docker.rb
  • Wyświetl plik za pomocą tego przycisku: Tutaj wpisz opis obrazka
  • Kliknij przycisk Raw: Pozycja listy
  • skopiujURL (docker.rb url w tym przykładzie) z paska adresu
  • brew install <url> (może być najpierw brew unlink, np. brew unlink docker)
  • brew switch docker 1.3.3
  • Switch back to docker 1.4.1 brew switch docker 1.4.1

Z tego gist

brew update
brew versions FORMULA
cd `brew --prefix`
git checkout HASH Library/Formula/FORMULA.rb  # use output of "brew versions"
brew install FORMULA
brew switch FORMULA VERSION
git checkout -- Library/Formula/FORMULA.rb    # reset formula

## Example: Using Subversion 1.6.17
#
# $ brew versions subversion
# 1.7.3    git checkout f8bf2f3 /usr/local/Library/Formula/subversion.rb
# 1.7.2    git checkout d89bf83 /usr/local/Library/Formula/subversion.rb
# 1.6.17   git checkout 6e2d550 /usr/local/Library/Formula/subversion.rb
# 1.6.16   git checkout 83ed494 /usr/local/Library/Formula/subversion.rb
# 1.6.15   git checkout 809a18a /usr/local/Library/Formula/subversion.rb
# 1.6.13   git checkout 7871a99 /usr/local/Library/Formula/subversion.rb
# 1.6.12   git checkout c99b3ac /usr/local/Library/Formula/subversion.rb
# 1.6.6    git checkout 8774131 /usr/local/Library/Formula/subversion.rb
# 1.6.5    git checkout a82e823 /usr/local/Library/Formula/subversion.rb
# 1.6.3    git checkout 6b6d369 /usr/local/Library/Formula/subversion.rb
# $ cd `brew --prefix`
# $ git checkout 6e2d550 /usr/local/Library/Formula/subversion.rb
# $ brew install subversion
# $ brew switch subversion 1.6.17
# $ git checkout -- Library/Formula/subversion.rb
 190
Author: Vishal,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-22 03:55:19

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

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

To pobierze i zainstaluje PostgreSQL 8.4.8


Znalazłem to rozwiązanie, zaczynając postępować zgodnie z krokami wyszukiwania repo i komentarz w repo .

Po kilku badaniach okazało się, że ktoś ma kolekcję rzadkich receptur do parzenia.


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

brew install https://raw.github.com/Homebrew/homebrew-versions/master/mysql51.rb
 95
Author: halfcube,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-18 10:47:55

Zgodnie z sugestią @ halfcube, to działa naprawdę dobrze:

  1. Znajdź bibliotekę, w której szukasz https://github.com/Homebrew/homebrew-core/tree/master/Formula
  2. Click it: https://github.com/Homebrew/homebrew-core/blob/master/Formula/postgresql.rb
  3. Kliknij przycisk "Historia", aby zobaczyć stare commity: https://github.com/Homebrew/homebrew-core/commits/master/Formula/postgresql.rb
  4. Kliknij ten, który chcesz: "postgresql: update version to 8.4.4",https://github.com/Homebrew/homebrew-core/blob/fa992c6a82eebdc4cc36a0c0d2837f4c02f3f422/Library/Formula/postgresql.rb
  5. Kliknij w 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
 57
Author: Lance Pollard,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-04 03:46:15

Możesz użyć strategii identyfikacji formuły i konkretnego commita w historii Formuły, który pasuje do wersji pakietu, który chcesz zainstalować.

  1. Przejdź do https://github.com/Homebrew/homebrew-core

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

  3. Określ formułę, która wygląda najistotniej, być może: 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ę wersji, klikając na przycisk History, który znajduje się w 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 Githuba commit:

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

Uwaga: Może być konieczne wyświetlenie historii zatwierdzeń w konsoli zgodnie z sugestią Githuba, jeśli historia zatwierdzeń nie ładuje się w przeglądarce. Zastąp powyższy commit SHA w adresie URL, jeśli chcesz zobaczyć ten commit na Githubie. Alternatywnie przejdź do kroku 7 poniżej.

  1. Kliknij przycisk" Zobacz", aby wyświetlić źródło dla mysql.plik rb po zatwierdzeniu.

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

  3. Skopiuj adres URL. Alternatywnie, Utwórz adres URL samodzielnie za pomocą nazwy pliku mysql.rb, aby zidentyfikować formułę i konkretną wersję tej formuły (zidentyfikowaną przez commmit SHA w adresie URL poniżej).

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

  4. Zainstaluj 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, aby uwzględnić usunięcie braumeister.org strona internetowa. Ta sama zasada obowiązuje, braumeister miał po prostu przyjazny dla początkujących sposób poruszania się wersjami formuł.

 52
Author: sealocal,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-15 20:06:45

Właśnie użyłem Homebrew, aby wrócić do Mavena 2.2.1, ponieważ Prosty brew install maven zainstalował Mavena 3.0.3.

Najpierw musisz zostawić maven dir tam więc

$ brew unlink maven

Użyj polecenia brew tap

$ brew tap homebrew/versions
Cloning into '/usr/local/Library/Taps/homebrew-versions'...
remote: Counting objects: 590, done.
remote: Compressing objects: 100% (265/265), done.
remote: Total 590 (delta 362), reused 549 (delta 325)
Receiving objects: 100% (590/590), 117.49 KiB | 79 KiB/s, done.
Resolving deltas: 100% (362/362), done.
Tapped 50 formula

Teraz możesz zainstalować formułę maven2:

$ brew install maven2
==> Downloading http://www.apache.org/dist/maven/maven-2/2.2.1/binaries/apache-maven-2.2.1-bin.tar.gz
######################################################################## 100.0%
/usr/local/Cellar/maven2/2.2.1: 10 files, 3.1M, built in 6 seconds
$ mvn --version
Apache Maven 2.2.1 (r801777; 2009-08-06 12:16:01-0700)
Java version: 1.6.0_37
Java home: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
Default locale: en_US, platform encoding: MacRoman
OS name: "mac os x" version: "10.7.4" arch: "x86_64" Family: "mac" 

Edit: Możesz też po prostu brew switch maven 2.2.1 przełączyć się na inną wersję.

Edit: Projekt Apache Maven zreorganizował swoje repo. Zaktualizowano tę odpowiedź, aby uwzględnić tę zmianę.

 27
Author: Cameron Goodale,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-02-06 20:40:12

Bazując na przepływie pracy opisanym przez @tschundeee i @Debilski ' s update 1 , zautomatyzowałem procedurę i dodałem cleanup w ten skrypt.

Pobierz , Umieść na swojej ścieżce i brewv <formula_name> <wanted_version>. Dla konkretnego PO będzie to:

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

:)

 21
Author: MattiSG,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:34:59

W najnowszej wersji homebrew (0.9.5 w chwili pisania tego tekstu) będzie określony przepis na wersję Homebrew keg, którą chcesz zainstalować. Przykład:

$ brew search mongodb
mongodb    mongodb24  mongodb26

Więc rób brew install mongodb26 Jak zwykle.

W przypadku, gdy zainstalowano już najnowszą wersję, należy odłączyć najnowszą wersję i połączyć żądaną wersję: brew unlink mongodb && brew link mongodb26.

 11
Author: Alex Sharp,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-05-01 02:05:23

Zaktualizowana odpowiedź, ponieważ dodaje to, co @ lance-pollard już opublikował jako odpowiedź robocza.

Jak zainstalować konkretną wersję Formuły (formuła użyta w tym przykładzie jest terraform):

  1. Znajdź swój plik formuły, np: https://github.com/Homebrew/homebrew-core/blob/master/Formula/terraform.rb
  2. Pobierz wersję zatwierdzania z historii Githuba za pomocą https://github.com/Homebrew/homebrew-core/commits/master/Formula/terraform.rb lub git log master -- Formula/terraform.rb jeśli sklonowali repo lokalnie.
  3. Get the raw GIT URL with the commit version of your formula: If the formula link in github.com na https://github.com/Homebrew/homebrew-core/blob/e4ca4d2c41d4c1412994f9f1cb14993be5b2c59a/Formula/terraform.rb, twój surowy URL będzie: https://raw.githubusercontent.com/Homebrew/homebrew-core/e4ca4d2c41d4c1412994f9f1cb14993be5b2c59a/Formula/terraform.rb
  4. zainstaluj za pomocą: brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/e4ca4d2c41d4c1412994f9f1cb14993be5b2c59a/Formula/terraform.rb
 11
Author: Miguel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-12-19 20:45:46

Można to zrobić bardzo łatwo w przypadku ostatniej wersji brew.

brew tap homebrew/versions
brew install subversion17 # for svn 1.7 branch instead of last available
brew install postgresql8  # for postgresql 8 (which you ask)
 7
Author: Speakus,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-12 09:23:08

Problem z homebrew/versions polega na tym, że ktoś musi mieć określoną wersję oprogramowania w repozytorium, abyś mógł z niej korzystać. Ponadto, ponieważ brew versions nie jest już obsługiwana, wymagane jest inne rozwiązanie. W przypadku rozwiązań, które wskazują użycie brew switch, będzie to działać tylko wtedy, gdy nie wykonałeś brew cleanup, ponieważ wersja musi istnieć na twoim komputerze.

Miałem problem z chęcią zainstalowania konkretnej starszej wersji docker-machine, która nie była wymieniona w homebrew/versions. Rozwiązałem to. korzystanie z poniższych, które powinny również działać dla każdego zainstalowanego oprogramowania brew. Poniższy przykład użyje docker-machine jako pakietu, który chcę obniżyć z wersji 0.5.0 do 0.4.1.

  1. Przejdź do katalogu homebrew Formula.
    Możesz to określić, uruchamiając brew info [any package name]. Na przykład brew info docker-machine daje mi linię, która pokazuje mi ścieżka - /usr/local/Cellar/docker-machine/0.5.0. To mówi mi, że na mojej maszynie homebrew jest zainstalowany na /usr/local i mój Formula katalog znajduje się domyślnie w /usr/local/Library/Formula

  2. Zlokalizuj konkretny plik formuły (.rb) za przesyłkę. Ponieważ chcę obniżyć wersję docker-machine, widzę plik docker-machine.rb.

  3. Pobierz historię wersji tego pliku formuły . Wpisz git log docker-machine.rb. Spowoduje to wyświetlenie pełnej historii zmian dla tego pliku. Zobaczysz wynik w następujący sposób:

    ...more 

    commit 20c7abc13d2edd67c8c1d30c407bd5e31229cacc
    Author: BrewTestBot 
    Date:   Thu Nov 5 16:14:18 2015 +0000

        docker-machine: update 0.5.0 bottle.

    commit 8f615708184884e501bf5c16482c95eff6aea637
    Author: Vincent Lesierse 
    Date:   Tue Oct 27 22:25:30 2015 +0100

        docker-machine 0.5.0

        Updated docker-machine to 0.5.0

        Closes #45403.

        Signed-off-by: Dominyk Tiller 

    commit 5970e1af9b13dcbeffd281ae57c9ab90316ba423
    Author: BrewTestBot 
    Date:   Mon Sep 21 14:04:04 2015 +0100

        docker-machine: update 0.4.1 bottle.

    commit 18fcbd36d22fa0c19406d699308fafb44e4c8dcd
    Author: BrewTestBot 
    Date:   Sun Aug 16 09:05:56 2015 +0100

        docker-machine: update 0.4.1 bottle.

    ...more

Najtrudniejszą częścią jest znalezienie najnowszego commita dla konkretnej wersji. Z powyższego wynika, że najnowsza wersja 0.4.1 została zatwierdzona z tagiem commit: commit 5970e1af9b13dcbeffd281ae57c9ab90316ba423. Commity powyżej tego punktu zaczynają się od wersji 0.5.0(wpisy git log są wyświetlane od najnowszej do najwcześniejszej daty).

  1. Pobierz poprzednią wersję pliku formuły. Używając znacznika commit z kroku # 3 (możesz użyć pierwszych 6 znaków), możesz uzyskać starszą wersję pliku formuły używając następującego wzoru:

    git checkout 5970e1 docker-machine.rb

  2. Odinstaluj bieżący pakiet wersja. Wystarczy uruchomić zwykłe polecenia brew, aby odinstalować bieżącą wersję pakietu.
    Ex. brew uninstall docker-machine

  3. Zainstaluj starszą wersję pakietu Teraz możesz po prostu uruchomić normalną komendę instalacji brew i zainstaluje formułę, którą masz do kasy. Ex. brew install docker-machine

W razie potrzeby może być konieczne ponowne połączenie za pomocą brew link docker-machine.

Jeśli w dowolnym momencie chcesz powrócić do najnowszej wersji konkretnego pakietu, przejdź do katalogu formuły i wydać następujące polecenia na pliku formuły (.rb)

git reset HEAD docker-machine.rb
git checkout -- docker-machine.rb

Następnie możesz brew uninstall docker-machine i brew install docker-machine, aby uzyskać najnowszą wersję i zachować ją w ten sposób do przodu.

 7
Author: rchawdry,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-10 17:30:15

Jeśli nie możesz znaleźć swojej wersji za pomocą brew search <formula>, Możesz również spróbować przejrzeć dzienniki zmian dla formuły, aby znaleźć żądaną wersję:

Nginx jest jednym z najbardziej rozpoznawalnych produktów na świecie.]}

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

 5
Author: lfender6445,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-15 18:32:15

Żadne z nich nie zadziałało na moją sprawę (Python), więc dodam moje 2 grosze:

cd `brew --prefix`
git log Library/Formula/python.rb

Wyjście wygląda tak:

commit 9ff2d8ca791ed1bd149fb8be063db0ed6a67a6de
Author: Dominyk Tiller <[email protected]>
Date:   Thu Jun 30 17:42:18 2016 +0100

    python: clarify pour_bottle reason

commit cb3b29b824a264895434214e191d0d7ef4d51c85
Author: BrewTestBot <[email protected]>
Date:   Wed Jun 29 14:18:40 2016 +0100

    python: update 2.7.12 bottle.

commit 45bb1e220341894bbb7de6fd3f6df20987dc14f0
Author: Rakesh <[email protected]>
Date:   Wed Jun 29 10:02:26 2016 +0530

    python 2.7.12

    Closes #2452.

    Signed-off-by: Tim D. Smith <[email protected]>

commit cf5da0547cd261f79d69e7ff62fdfbd2c2d646e9
Author: BrewTestBot <[email protected]>
Date:   Fri Jun 17 20:14:36 2016 +0100

    python: update 2.7.11 bottle.

...

Chcę wersję 2.7.11 więc mój hash to cf5da0547cd261f79d69e7ff62fdfbd2c2d646e9 (lub cf5da05 W skrócie). Następnie sprawdzam tę wersję i instaluję formułę python:

git checkout cf5da05
brew install python

Wreszcie posprzątać:

git checkout master
 5
Author: tenfishsticks,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-05 21:18:07

Zainstaluj starą wersję pakietu brew (przykład Flyway 4.2.0)

Znajdź lokalny homebrew Git dir lub clone Homebrew / homebrew-core lokalnie

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

Lub

git clone [email protected]:Homebrew/homebrew-core.git

Lista wszystkich dostępnych wersji

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/Library/Formula/flyway.rb

 2
Author: ffghfgh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-24 16:12:16

Aktualizacja biblioteki / Formuły / postgresql.RB linia 8 do

http://ftp2.uk.postgresql.org/sites/ftp.postgresql.org/source/v8.4.6/postgresql-8.4.6.tar.bz2

I MD5 na linii 9 do

fcc3daaf2292fa6bf1185ec45e512db6

Zapisz i zakończ.

brew install postgres
initdb /usr/local/var/postgres

Teraz na tym etapie możesz napotkać błąd postgresql could not create shared memory segment, aby obejść tę aktualizację /etc/sysctl.conf w następujący sposób:

kern.sysv.shmall=65536
kern.sysv.shmmax=16777216

Spróbuj ponownie initdb /usr/local/var/postgres, a powinno działać gładko.

Aby uruchomić postgresql na starcie

launchctl load -w /usr/local/Cellar/postgresql/8.4.6/org.postgresql.postgres.plist

Mam nadzieję, że to pomoże:)

 1
Author: mmrs151,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-07-13 16:30:50

Właśnie skopiowałem starsze wydanie elasticsearch do katalogu /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
To wszystko. Może to się komuś przyda.
 1
Author: Thaars,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-06 15:44:48

Postanowiłem, wbrew mojej lepszej ocenie, stworzyć wzór dla Mavena 3.1.1, którego homebrew/versions nie miał. Aby to zrobić:

  1. rozwidlałem homebrew/versions na GitHubie.
  2. połączyłem symbolicznie z {[2] } do lokalnej kopii roboczej mojego forka. Nazwę to my-homebrew/versions.
  3. przetestowałem podając wzór jako my-homebrew/versions/<formula>.
  4. wysłałem prośbę do homebrew/versions o moją nową formułę.
Yay.
 0
Author: J. B. Rainsberger,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-11-02 13:30:57

W przypadku wersji, które nie znajdują się obecnie w domyślnych formułach brew, możesz łatwo utworzyć własny kran za pomocą narzędzia z https://github.com/buildtools-version-taps/homebrew-versions-tap-tool

 0
Author: Lutzifer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-15 17:18:52