Homebrew instala versiune specifică a formula?

Cum pot instala o versiune specifică a o formula în homebrew? De exemplu, postgresql-8.4.4 în loc de cele mai recente 9.0.

Comentarii la întrebare (2)
Soluția

TLDR: brew instala postgresql@8.4.4 a se Vedea răspuns de mai jos pentru mai multe detalii.


(Am re-editat răspunsul meu pentru a da o mai aprofundată flux de lucru pentru instalarea/utilizarea software-ul mai vechi versiuni cu homebrew. Simțiți-vă liber pentru a adăuga o notă dacă ați găsit versiunea veche mai bine.*) Să începem cu cel mai simplu caz:

  1. Verifica, dacă versiunea este deja instalat (dar nu este activat)

    Când homebrew instalează o nouă formulă, se pune într-o versiune director ca /usr/local/Crama/postgresql/9.3.1. Doar link-uri simbolice în acest dosar sunt apoi instalate la nivel global. În principiu, acest lucru îl face destul de ușor pentru a comuta între două versiuni instalate. (*) Dacă ați fost utilizați homebrew pentru mai mult timp și nu a scos versiuni mai vechi (folosind, de exemplu, o fiertură de curățire), sunt șanse ca unele versiune mai veche a programului poate fi în continuare în jurul valorii de. Dacă doriți să pur și simplu a activa că versiunea anterioară, o fiertură de schimb este cel mai simplu mod de a face acest lucru. Verifica cu o fiertură de informații postgresql "(sau " brew comutator postgresql <TAB>) dacă versiunea mai veche este instalat:

$ 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

Vom vedea că unele versiuni mai vechi este deja instalat. Ne poate activa folosind o fiertură de schimb:

$ 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

Să verificați ceea ce este activat:

$ 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

Rețineți că steaua * a mutat la noua versiune activat () Vă rugăm să rețineți că o fiertură de schimb funcționează doar atâta timp cât toate dependențele de versiunea mai veche sunt încă în jurul valorii de. În unele cazuri, o reconstrui cu o versiune mai veche poate deveni necesară. Prin urmare, folosind o fiertură de comutator este util mai ales atunci când unul vrea să comutați între două versiuni nu prea departe unul de altul.* 2) Verificați dacă versiunea este disponibil ca un robinet

Mai ales pentru mari proiecte software, este foarte probabil că există o cerere suficient de mare pentru mai multe (potențial API incompatibile) versiuni majore a unui anumit bucată de software. În Martie 2012, Homebrew 0.9 oferă un mecanism pentru acest lucru: `brew apăsați & homebrew versiunile depozit. Care versiuni depozit pot include conflicte de versiuni mai vechi pentru mai multe formule. (Cea mai mare parte doar cele mari și celebre, dar, desigur, ei vor avea, de asemenea, mai multe formule pentru postgresql.) o fiertură de căutare postgresql vă va arăta unde să se uite:

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

Putem instala pur și simplu prin tastarea

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

Rețineți că acest lucru are în mod automat exploatat a homebrew/versiuni de la robinet. (Verificați cu o fiertură de la robinet, se scoate cu o fiertură de untap homebrew/versiuni.) Următoarele ar fi fost echivalentă:

$ brew tap homebrew/versions
$ brew install postgresql8

Atâta timp cât portate versiune formule de ședere de până-la-data, această abordare este, probabil, cel mai bun mod de a face cu software-ul mai vechi. 3) a Încerca o formulă din trecut

Următoarele abordări sunt enumerate mai ales pentru completitudine. Ambele încearcă să reînvie niște strigoi formula de preparare a cafelei depozit. Din cauza schimbat dependențe, API modificări în formula de spec sau pur și simplu o schimbare în URL-ul de descărcare, lucrurile pot sau nu pot lucra. Deoarece întreaga formulă director este un depozit git, se poate instala versiuni specifice folosind simplu git comenzi. Cu toate acestea, trebuie să găsim o modalitate de a obține de la un comis-în cazul în care versiunea veche a fost disponibil. a) istoric ori Între August 2011 și octombrie 2014, homebrew avut o fiertură de versiuni de comandă, care a scuipat toate disponibile versiuni cu normele lor SHA hash-uri. Începând din octombrie 2014, trebuie să faci o fiertură de la robinet homebrew/boneyard` înainte de a putea utiliza. Ca nume de la robinet sugerează, probabil, ar trebui să faci acest lucru doar ca o ultimă soluție. E. g.

$ 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

După cum puteți vedea, se recomandă utilizarea acestuia. Homebrew scuipă toate versiunile se pot găsi cu sale interne euristică și vă arată o modalitate de a prelua vechile formule. Hai să încercăm.

# 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

Acum că mai în vârstă postgresql versiunea este instalat, putem să re-a instala cea mai recentă formulă în scopul de a păstra depozit curat:

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

o fiertură de schimb este prietenul tău pentru a schimba între vechi și nou. b) timpurile preistorice Pentru nevoi speciale, am putea încerca, de asemenea, propriile noastre săpat prin homebrew repo.

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

git log-S pare pentru toate comite în care string&#39;8.4.4&#39; fost fie adăugate sau eliminate în fișierul Bibliotecii/Robinete/homebrew/homebrew-core/Formula/postgresql.rb`. Avem două comite ca urmare.

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

Evident, fa992c6a82eebdc4cc36a0c0d2837f4c02f3f422 este comis de care suntem interesați. Deoarece acest lucru comite este destul de vechi, vom încerca să downgrade complet de instalare homebrew (în acest fel, formula API este mai mult sau mai puțin garantat pentru a fi valabil):

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

Puteți sări peste ultima comandă pentru a menține referință în depozit git. Unul rețineți: la check-out, în vârstă comis-o, temporar downgrade homebrew instalare. Deci, tu ar trebui să fii atent ca unele comenzi în homebrew-ar putea să fie diferite de cea mai recentă versiune. 4) Manual scrie o formulă

Nu e prea greu și puteți apoi încărcați-l la propriul depozit. Folosit pentru a fi Homebrew-Versiunile, dar care este acum întreruptă. A.) Bonus: Fixarea

Dacă doriți să păstrați o anumită versiune de, să zicem postgresql, în jurul valorii de și de a opri de la a fi actualizate atunci când faci naturale fiertură de actualizare; prepara upgrade` procedură, puteți pin o formulă:

$ brew pin postgresql

Prins formule sunt enumerate în /usr/local/Library/PinnedKegs/ și dacă doriți pentru a aduce în cele mai recente modificări și actualizări, puteți unpin din nou:

$ brew unpin postgresql
Comentarii (48)

Flux De Lucru Simplu

Acum, că Homebrew/versiuni a fost depreciat, Homebrew/core suportă mai multe versiuni de formule cu un nou format de nume.

Pentru a instala o versiune specifică, de exemplu, postgresql 9.5 pur și simplu rulați:

$ brew install postgresql@9.5

Pentru a lista versiuni disponibile rula o căutare cu @:

$ brew search postgresql@
==> Searching local taps...
postgresql@10.1 ✔     postgresql@9.4        postgresql@9.5        postgresql@9.6
Comentarii (14)

Nu's acum un mod mult mai ușor pentru a instala o versiune mai veche de o formula care'd instalate anterior. Pur și simplu utilizați

brew switch [formula] [version]

De exemplu, am alternează în mod regulat între Node.js 0.4.12 și 0.6.5:

brew switch node 0.4.12
brew switch node 0.6.5

Din brew switch schimbă doar simbolice, l's foarte repede. Vezi documente suplimentare cu privire la Homebrew Wiki sub Comenzi Externe.

Comentarii (7)

Update: 1/15/2015

  • Găsiți comite istorie a dorit software-ul și versiunea. de exemplu, am nevoie pentru a comuta de la docker versiunea 1.4.1 să 1.3.3: https://github.com/Homebrew/homebrew-core/commits/master/Formula/docker.rb
  • Vezi fișierul cu acest buton:
  • Faceți clic pe Prime butonul:
  • Copie URL (docher.rb url-ul în acest exemplu) din bara de adrese
  • fiertură de instala (ar trebui să brew deconectați mai întâi, de exemplu, bere deconectați docker)
  • fiertură de a comuta docker 1.3.3`
  • Comuta înapoi la docker 1.4.1 brew comutator docker 1.4.1

Din acest sinteza

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
Comentarii (13)

Am'am descoperit o alternativă mai bună soluție atunci alte soluții complexe.

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

Acest lucru va descărca și instala PostgreSQL 8.4.8


Am găsit această soluție, de a începe să urmați pașii de căutare repo și un comentariu în repo .

După un pic de cercetare a constatat că cineva are o colecție de rare formulars pentru a prepara cu.


Dacă vă căutați pentru MySQL 5.1.x, da acest un try.

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

Puteți utiliza strategia de identificare a formula și un anumit comite din istoria formula care se potrivește cu versiunea de pachetul'd place să instalați.

  1. Du-te la https://github.com/Homebrew/homebrew-core

  2. Apăsați " t " de pe tastatură pentru a activa file finder.

  3. Identifica o formulă care pare cel mai relevant, poate: Formula/mysql.rb`, aducându-vă la o formula de fișier de localizare: https://github.com/Homebrew/homebrew-core/blob/master/Formula/mysql.rb.

  4. Uita-te la revizuirea istorie, făcând clic pe butonul Istoric, care este situat la https://github.com/Homebrew/homebrew-core/commits/master/Formula/mysql.rb. Daca're interesat în MySQL 5.7.10, ați putea dori să faceți clic pe cele mai recente revizuiri înainte de a 5.7.11, care navighează la o GitHub comite:

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

NOTĂ: este posibil să Aveți pentru a vizualiza comite istorie în consola de pe GitHub's sugestie dacă comite istoria nu a încărca în browser-ul dumneavoastră. Înlocuiți comite SHA mai sus în URL-ul daca're interesat în a vedea că a comis pe GitHub. Alternativ, treceți la pasul 7, de mai jos.

  1. Faceți clic pe "Vezi" buton pentru a vizualiza sursa pentru mysql.rb fișier după comiterea a fost aplicat.

  2. Apoi, faceți clic pe "Prime" buton pentru a vizualiza prime de sursă.

  3. Copiați URL-ul. Alternativ, construi URL-te cu mysql.rb` nume fișier pentru a identifica, formula și o anumită versiune de formula (identificate prin commmit SHA în URL-ul de mai jos).

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

  1. Instalați-l cu $ prepara instala [URL-ul de la pasul 7]

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

NOTĂ: Acest răspuns a fost actualizat pentru a ține cont de îndepărtare a braumeister.org site-ul web. Același principiu se aplică, braumeister a oferit pur și simplu de un incepator-friendly mod de a naviga formula versiuni.

Comentarii (8)

Am folosit doar Homebrew pentru a merge înapoi la Maven 2.2.1 din simplu brew instala maven instalat Maven 3.0.3.

În primul rând trebuie să părăsească maven dir acolo deci

$ prepara deconectați maven

Utilizați prepara atingeți comanda

$ prepara apăsați homebrew/versiuni
Clonarea în '/usr/local/Library/Robinete/homebrew-versiuni'...
de la distanță: de Numărare obiecte: 590, făcut.
de la distanță: Comprimare obiecte: 100% (265/265), făcut.
de la distanță: Total 590 (delta 362), refolosite 549 (delta 325)
Primirea de obiecte: 100% (590/590), 117.49 KiB | 79 KiB/s, a terminat.
Rezolvarea delte: 100% (362/362), făcut.
Ascultate 50 de formula

Acum puteți instala maven2 formula:

$ prepara instala maven2
==> Descărcarea http://www.apache.org/dist/maven/maven-2/2.2.1/binaries/apache-maven-2.2.1-bin.tar.gz
######################################################################## 100.0%
/usr/local/Crama/maven2/2.2.1: 10 fișiere, 3.1 M, construit în 6 secunde
$ mvn --version
Apache Maven 2.2.1 (r801777; 2009-08-06 12:16:01-0700)
Versiune Java: 1.6.0_37
Java acasă: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Cuprins/Home
Default locale: en_US, platforma de codare: MacRoman
Sistem de OPERARE nume: "mac os x" versiune: "10.7.4" arc: "x86_64" Familia "mac" 

Edit: Puteți, de asemenea, doar pentru a prepara comutator maven 2.2.1` pentru a comuta la o altă versiune.

Edit: Apache Maven proiect reorganizat lor repo. Actualizat acest răspuns a ține cont de această schimbare.

Comentarii (4)

Bazat pe fluxul de lucru descris de @tschundeee și @Debilski de actualizare 1, am automatizat procedură și a adăugat curățare în acest script.

Descarca, pune-l în calea ta și brewv <formula_name> <wanted_version>. Pentru OPERAȚIUNEA asta, ar fi:

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

:)

Comentarii (2)

Cele mai multe dintre celelalte răspunsuri sunt depășite până acum. Din păcate Homebrew încă nu are un built-in modul de a instala o versiune învechită, cu excepția cazului în care versiunea există ca o formulă separată (de exemplu, python@2, postgresql@9.4 ...).

Din fericire, pentru alte formule există un mod mult mai ușor decât complicată, care folosit pentru a fi necesar. Aici sunt instrucțiuni complete:

  1. Căutare pentru versiunea corectă în bușteni:

brew log formula

Defilați în jos/sus cu j/k sau tastele săgeată

sau de a folosi de exemplu. /4.4.23 pentru a căuta o anumită versiune

Această sintaxă funcționează doar pe pre-2.0 Homebrew versiuni

brew log --format=format:%H\ %s -F --grep="versiune" "formulă"

Aceasta va afișa o listă a comite hash-uri. Ia una care este corespunzătoare (cea mai mare parte ar trebui să fie destul de evident, și de obicei este cea mai recentă (de exemplu, partea de sus) unul.

  1. Găsi URL-ul la care formula se află în amonte de depozit:

brew info "formula" | grep ^Din:

  1. Fix URL-ul:

  2. Înlocuiți github.com " cu " raw.githubusercontent.com

  3. Înlocuiți `blob/master cu comită hash-am găsit în primul pas.

  4. Instalați versiunea dorită prin înlocuirea "maestru" în anterior a fost găsit URL-ul de comite hash, de exemplu:

brew instala https://raw.githubusercontent.com/Homebrew/homebrew-core/"hash"/Formula/"formula".rb

(Ultimul pas poate necesita rularea `brew unlink "formula" înainte.)


Dacă ați copiat o comite hash doriți să o utilizați, puteți folosi acest exemplu pentru a instala această versiune, înlocuind valoarea și bash cu comită hash și formula dorită.

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

Acest exemplu este instalarea bash 4.4.23 în loc de bash 5, deși, dacă ați efectuat o fiertură de upgradedupă aceea bash 5 ar obține instalat pe partea de sus, dacă nu primul executatde infuzie pin bash. În loc de a face acest lucru mai lin, FĂRĂ fixare, trebuie să instalați mai întâi cea mai recentă, cu o fiertură de a instala bash", apoi " brew deconectați bash, apoi instalați versiunea mai veche pe care doriți pe script-ul de mai sus, și apoi utilizați o fiertură de a comuta bash 4.4.23a înființat simbolice în versiunea mai veche. Acum o fiertură de upgrade ar n't afecta versiune de Bash. Poți prepara comutator bash` pentru a obține o listă de versiuni disponibile pentru a comuta la.


Alternative, folosind un obicei local-doar atingeți

Un alt mod de a atinge același scop pare a fi:

`` brew atingeți-noul nume de utilizator/repo-numele

extras cu o versiune pare să ruleze un grep sub capota

prepara extract --version='4.4.23' bash numele de utilizator/repo-numele brew instala bash@4.4.23

Notă acest "nu" atunci când încearcă să ia o sticlă de pe pachet și se pare că a

unele ciudat dublarea versiune în care de ieșire, dar acest lucru nu't fatale.

``

Acest lucru creează o formulă@versiunea în custom de la robinet pe care o puteți instala pe exemplul de mai sus. Dezavantajul este că, probabil, încă mai trebuie să `brew deconectați bash "și apoi" brew link bash@4.4.23 în scopul de a utiliza versiunea dvs. specifice de Bash sau orice altă formulă.

Comentarii (7)

O actualizare a răspuns din care se adaugă la ceea ce @lance-pollard deja postate ca răspuns de lucru.

Cum pentru a Instala versiune specifică a unei Formule (formula utilizată în acest exemplu este terraform):

  1. Găsi formula de fișiere, e.g: https://github.com/Homebrew/homebrew-core/blob/master/Formula/terraform.rb
  2. Obține comite versiune de la github istoria cu https://github.com/Homebrew/homebrew-core/commits/master/Formula/terraform.rb sau git log master-Formula/terraform.rb daca ai clonat repo la nivel local.
  3. Obține prime git URL cu comită versiune de formula: Dacă formula link-ul în github.com este https://github.com/Homebrew/homebrew-core/blob/e4ca4d2c41d4c1412994f9f1cb14993be5b2c59a/Formula/terraform.rb, prime URL-ul va fi: https://raw.githubusercontent.com/Homebrew/homebrew-core/e4ca4d2c41d4c1412994f9f1cb14993be5b2c59a/Formula/terraform.rb
  4. Instalați-l cu: o fiertură de a instala https://raw.githubusercontent.com/Homebrew/homebrew-core/e4ca4d2c41d4c1412994f9f1cb14993be5b2c59a/Formula/terraform.rb`
Comentarii (1)

Pe cea mai noua versiune de homebrew (0.9.5 ca din acest scris) nu va exista o reteta anume pentru versiunea homebrew butoi doriți să instalați. Exemplu:

$ brew search mongodb
mongodb    mongodb24  mongodb26

Atunci fă-o fiertură de a instala mongodb26` cum ar fi normal.

În cazul în care ai avut deja instalat cea mai recentă versiune, asigurați-vă că pentru a anula cea mai recentă versiune și link-ul dorit versiune: brew deconectați mongodb && prepara link-ul de mongodb26.

Comentarii (2)

Metodă oficială ( judecând după răspunsul la https://github.com/Homebrew/brew/issues/6028 )

Din păcate Homebrew încă nu are o evident built-in modul de a instala o versiune mai veche.

Din fericire, de cele mai multe formule de acolo e un mod mult mai ușor decât complicată, care folosit pentru a fi necesar. Aici sunt instrucțiuni complete folosind bash ca un exemplu:

`` brew atingeți-nou $USER/local-robinet

extras cu o versiune pare să ruleze o git log --grep sub capota

prepara extract --version=4.4.23 bash $USER/local-robinet

Instala noua versiune de la robinet

brew instala bash@4.4.23

Notă acest "nu" încercarea de a apuca o sticla pentru ambalaj și se pare că a

unele ciudat dublarea versiune în care de ieșire, dar acest lucru nu't fatale.

``

Acest lucru creează formula lui@versiunea în custom de la robinet pe care o puteți instala pe exemplul de mai sus. O notă importantă este că, probabil, ai nevoie să brew deconectați bash` dacă ați avut instalat anterior default/mai recentă versiune a formula și apoi bere link bash@4.4.23 în scopul de a utiliza versiunea dvs. specifice de Bash (sau orice altă formulă în cazul în care aveți cele mai recente și o versiune mai veche instalat).

Un potențial dezavantaj al acestei metode este că poate't de ușor comuta înainte și înapoi între versiunile pentru că în conformitate cu "brew" este un "diferite formule".

Dacă doriți să fie capabil de a utiliza o fiertură de comuta $FORMULA $VERSIUNE` ar trebui să utilizați următoarea metodă.


Scripted Metoda (Recomandat)

Acest exemplu arată instalarea în vârstă bash 4.4.23, un exemplu util de la bash formula în prezent instalează bash 5.

  • Instalați mai întâi cea mai recentă versiune a formula cu o fiertură de a instala bash`
  • apoi brew deconectați bash
  • apoi instalați versiunea mai veche vrei pe fragmentele de mai jos
  • în cele din urmă folosesc prepara comutator bash 4.4.23` a înființat legături simbolice pentru versiunea ta

Dacă ați efectuat o fiertură de upgrade după instalarea unei versiuni mai vechi, fără a instala cea mai recentă prima, apoi cea mai recentă ar obține instalat ciomăgeală ta versiune mai veche, dacă nu mai întâi executat de infuzie pin bash.

Pasii de aici a EVITA fixarea pentru că este ușor să uităm despre și s-ar putea pin-ul la o versiune care devine nesigur în viitor (a se vedea Shellshock/etc). Cu acest setup o fiertură de upgradear n&#39;t afecta versiune de Bash și puteți rula întotdeauna o fiertură de a comuta bash pentru a obține o listă de versiuni disponibile pentru a comuta la.

Copiați și inserați și edita "export" linii din fragmentul de cod de mai jos pentru a actualiza cu versiunea dorită și formula de nume, apoi copiați și inserați codul restul ca-este și va folosi aceste variabile pentru a face magie.

``

Această sintaxă de căutare funcționează cu noi Homebrew

export BREW_FORMULA_SEARCH_VERSION=4.4.23 BREW_FORMULA_NAME=bash

Acest lucru se va imprima orice/toate se angajează ca se potrivesc la versiunea și numele de formula

git-C $(brew --repo homebrew/core) log \ --format=format:%H\ %s -F --toate-meci \ --grep=$BREW_FORMULA_SEARCH_VERSION --grep=$BREW_FORMULA_NAME ``

Atunci când sunt anumite versiunea există în formulă, puteți utiliza de mai jos:

``

Devine doar cele mai recente Git commit SHA pentru script-ul de mai jos

export BREW_FORMULA_VERSION_SHA=$(git-C $(brew --repo homebrew/core) log \ --format=format:%H\ %s -F --toate-meci \ --grep=$BREW_FORMULA_SEARCH_VERSION --grep=$BREW_FORMULA_NAME | \ capul -1 | awk '{print $1}') ``

După ce ați exportat comite hash doriți să o utilizați, puteți utiliza acest pentru a instala această versiune a pachetului.

brew info $BREW_FORMULA_NAME \ | sed -n \ -e &#39;/^De: /s///&#39; \ -e &#39;s/github.com/prime.githubusercontent.com/&#39; \ -e &#39;s%blob/%%&#39; \ -e "s/master/$BREW_FORMULA_VERSION_SHA/p" \ | xargs prepara instala

Urmați instrucțiunile în formula de ieșire să-l pună în CALEA ta, sau setați-l ca implicit shell.

Comentarii (1)

Problema cu homebrew/versiuni este ca cineva să aibă o anumită versiune de software enumerate în depozit pentru tine de a fi capabil să-l folosească. De asemenea, din brew versiuni nu mai este acceptat, o altă soluție este necesar. Pentru soluții care să indice, folosind o fiertură de schimb, acest lucru va funcționa numai dacă te-ai't face o fiertură de curățire din moment ce versiune trebuie să existe pe calculatorul dumneavoastră.

Am avut o problema cu care doresc să instaleze o anumită versiune mai veche de docker-mașină, care nu a fost't enumerate în homebrew/versiuni. Am rezolvat acest lucru, folosind de mai jos, care ar trebui să funcționeze, de asemenea, pentru orice prepara software-ul instalat. Exemplul de mai jos se va folosi docker-mașină ca pachetul vreau să downgrade de la versiunea 0.5.0 la 0.4.1.

  1. Du-te la homebrew Formula director. Puteți determina acest lucru prin rularea brew info [orice nume pachet]. De exemplu, o fiertură de informații docker-mașinădă-mi o linie care arată mine o cale -/usr/local/Crama/docker-mașină/0.5.0. Acest lucru îmi spune că pe masina mea, homebrew este instalat în/usr/local și mi Formula directorul se află în mod implicit în /usr/local/Library/Formula

  2. Localiza formula de fișier (.rb) pentru pachet. Deoarece vreau să downgrade docker-mașină, eu pot vedea un docher-mașină.rb` de fișier.

  3. Obține versiunea istorie pentru această formulă de fișiere . Introduceți git log docker-mașină.rb. Aceasta va lista completă a comis istorie pentru acest fișier. Veți vedea de ieșire de genul asta:

...mai mult 
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

Partea dificilă este de a găsi cele mai recente comite specifice versiune vrei. În cele de mai sus, pot spune cea mai recentă versiunea 0.4.1 a fost săvârșită cu acest comite tag-ul : comite 5970e1af9b13dcbeffd281ae57c9ab90316ba423. Angajează mai sus de acest punct începe să utilizați versiunea 0.5.0 (git log intrări sunt listate de la cele mai recente la data cea mai apropiată).

  1. Obține o versiune anterioară de formula fișier. Folosind comite tag-ul de la pasul #3 (puteți folosi primele 6 caractere), puteți obține o versiune mai veche de formula fișier folosind următoarele:

git checkout 5970e1 docker-mașină.rb

  1. Dezinstalarea pachetului actual versiune. Doar rula normal prepara comenzile să dezinstalați versiunea curentă de pachet. Ex. o fiertură de dezinstalare docker-mașină`

  2. Instalați cea mai veche versiune pachet Acum, puteți rula doar bere normală a instala comandă și se va instala formula care trebuie checkout afară. Ex. brew instala docker-mașină

Poate fi necesar să re-link-ul de la infuzat link-ul de docker masina, daca este necesar.

Dacă în orice moment doriți pentru a reveni la cea mai recentă versiune a unui pachet specific, du-te în Formula director și problema următoarele comenzi pe formula de fișier (.rb)

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

Atunci prepara dezinstalare docker-mașină " și " infuzie instala docker-mașină` pentru a obține cea mai recentă versiune și păstrați-l în acest mod de a merge înainte.

Comentarii (3)

Instala un vechi prepara versiune pachet (Migratoare 4.2.0 exemplu)

Găsi local homebrew git dir sau clona Homebrew/homebrew-core la nivel local

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

SAU

git clona git@github.com:Homebrew/homebrew-core.git

Lista cu toate versiunile disponibile

git log master-Formula/ruta de zbor.rb

Copia comite ID-ul pentru versiunea dorită și instalați-o direct

o fiertură de a instala https://raw.githubusercontent.com/Homebrew/homebrew-core/793abfa325531415184e1549836c982b39e89299/Formula/flyway.rb `

Comentarii (2)

Am'am încercat cele mai multe dintre soluțiile aici și sunt depășite. Am avut de a combina unele idei de aici cu munca mea. Ca urmare am'am creat un script pentru a ajuta-mi face munca grea pe care o puteți găsi aici

Utilizare:

brewv.sh formula_name desired_version
Comentarii (0)

s-ar putea face foarte ușor pentru ultima versiune de preparare a cafelei.

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)
Comentarii (1)

Dacă poți't găsi versiunea cu fiertură de căutare `, puteți încerca, de asemenea, merge de-a lungul comite busteni pentru formulă pentru a găsi versiunea vrei:

aici este un exemplu pentru a instala o versiune mai veche de nginx prin intermediul prepara:

De acolo, putem instala `1.6.3 cu sha și prime git url:

o fiertură de a instala https://raw.githubusercontent.com/Homebrew/homebrew/eba75b9a1a474b9fc4df30bd0a32637fa31ec049/Library/Formula/nginx.rb`

Comentarii (0)

Nici unul din ei chiar a lucrat pentru cazul meu (Python), așa că am'll add my 2 cents:

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

De ieșire arată astfel:

comite 9ff2d8ca791ed1bd149fb8be063db0ed6a67a6de Autor: Dominyk Echea dominyktiller@gmail.com Data: Thu Jun 30 17:42:18 2016 +0100

python: clarifica pour_bottle motiv

comite cb3b29b824a264895434214e191d0d7ef4d51c85 Autor: BrewTestBot brew-test-bot@googlegroups.com Data: Wed Jun 29 14:18:40 2016 +0100

python: actualizare 2.7.12 sticla.

comite 45bb1e220341894bbb7de6fd3f6df20987dc14f0 Autor: Rakesh rakkesh@users.noreply.github.com Data: Wed Jun 29 10:02:26 2016 +0530

python 2.7.12

Închide #2452.

Semnat-pe-de: Tim D. Smith git@tim-smith.us

comite cf5da0547cd261f79d69e7ff62fdfbd2c2d646e9 Autor: BrewTestBot brew-test-bot@googlegroups.com Data: Fri Jun 17 20:14:36 2016 +0100

python: actualizare 2.7.11 sticla.

...

Vreau versiune 2.7.11 meu hash este cf5da0547cd261f79d69e7ff62fdfbd2c2d646e9 "(sau " cf5da05 pentru scurt). Apoi, am check out această versiune și instalați formula "pitonul":

git checkout cf5da05
brew install python

În cele din urmă, curat:

git checkout master
Comentarii (5)

În prezent, vechile moduri de instalarea formule specifice versiuni au fost depreciat. Deci se pare ca avem de a folosi o fiertură de editare [formula]. E. g. spunem că vrem să instalați un62.1versiuneicu4c(necesare de exemplu pentru postgresql 10.5). Atunci'd trebuie să

> brew edit icu4c
# drops you to editor

Aici ai'd trebuie să-și modifice url, versiune și sha256 (probabil, de asemenea, "oglindă") corespunzătoare 62.1 siruri de caractere.

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"

apoi rulați-o fiertură de reinstalați icu4cîn cele din urmă să descărcați62.1` versiune.

Comentarii (1)