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.
TLDR: brew instala [email protected]
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:
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
*
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
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'8.4.4'
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
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
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 [email protected]
Pentru a lista versiuni disponibile rula o căutare cu @:
$ brew search postgresql@
==> Searching local taps...
[email protected] ✔ [email protected] [email protected] [email protected]
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.
Update: 1/15/2015
(ar trebui să brew deconectați mai întâi, de exemplu, bere deconectați docker
)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
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
De-a lungul liniilor de @halfcube's sugestie, acest lucru funcționează foarte bine:
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.
Apăsați " t " de pe tastatură pentru a activa file finder.
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.
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:
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.
Faceți clic pe "Vezi" buton pentru a vizualiza sursa pentru mysql.rb fișier după comiterea a fost aplicat.
Apoi, faceți clic pe "Prime" buton pentru a vizualiza prime de sursă.
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).
$ 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.
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.
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
:)
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
, [email protected]
...).
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:
brew log formula
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.
brew info "formula" | grep ^Din:
Fix URL-ul:
Înlocuiți github.com " cu " raw.githubusercontent.com
Înlocuiți `blob/master cu comită hash-am găsit în primul pas.
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 executat
de 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.
Un alt mod de a atinge același scop pare a fi:
`` brew atingeți-noul nume de utilizator/repo-numele
prepara extract --version='4.4.23' bash numele de utilizator/repo-numele brew instala [email protected]
``
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 [email protected] în scopul de a utiliza versiunea dvs. specifice de Bash sau orice altă formulă.
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
):
git log master-Formula/terraform.rb
daca ai clonat repo la nivel local.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
.
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
git log --grep
sub capotaprepara extract --version=4.4.23 bash $USER/local-robinet
brew instala [email protected]
``
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 [email protected] î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ă.
Acest exemplu arată instalarea în vârstă bash 4.4.23, un exemplu util de la bash
formula în prezent instalează bash 5.
brew deconectați bash
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'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.
``
export BREW_FORMULA_SEARCH_VERSION=4.4.23 BREW_FORMULA_NAME=bash
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:
``
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 '/^De: /s///' \ -e 's/github.com/prime.githubusercontent.com/' \ -e 's%blob/%%' \ -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.
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.
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
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.
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 multcommit 20c7abc13d2edd67c8c1d30c407bd5e31229cacc Author: BrewTestBot <[email protected]> Date: Thu Nov 5 16:14:18 2015 +0000 docker-machine: update 0.5.0 bottle. commit 8f615708184884e501bf5c16482c95eff6aea637 Author: Vincent Lesierse <[email protected]> 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 <[email protected]> commit 5970e1af9b13dcbeffd281ae57c9ab90316ba423 Author: BrewTestBot <[email protected]> Date: Mon Sep 21 14:04:04 2015 +0100 docker-machine: update 0.4.1 bottle. commit 18fcbd36d22fa0c19406d699308fafb44e4c8dcd Author: BrewTestBot <[email protected]> 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ă).
git checkout 5970e1 docker-mașină.rb
Dezinstalarea pachetului actual versiune. Doar rula normal prepara comenzile să dezinstalați versiunea curentă de pachet. Ex. o fiertură de dezinstalare docker-mașină`
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.
cd /usr/local/Homebrew/Library/Robinete/homebrew/homebrew-core/
SAU
git clona [email protected]:Homebrew/homebrew-core.git
git log master-Formula/ruta de zbor.rb
o fiertură de a instala https://raw.githubusercontent.com/Homebrew/homebrew-core/793abfa325531415184e1549836c982b39e89299/Formula/flyway.rb `
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
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)
Dacă poți't găsi versiunea cu fiertură de căutare
aici este un exemplu pentru a instala o versiune mai veche de nginx prin intermediul prepara:
vezi, nginx: actualizare 1.6.3 sticla eba75b9a1a474b9fc4df30bd0a32637fa31ec049`
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`
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 [email protected] Data: Thu Jun 30 17:42:18 2016 +0100
python: clarifica pour_bottle motiv
comite cb3b29b824a264895434214e191d0d7ef4d51c85 Autor: BrewTestBot [email protected] Data: Wed Jun 29 14:18:40 2016 +0100
python: actualizare 2.7.12 sticla.
comite 45bb1e220341894bbb7de6fd3f6df20987dc14f0 Autor: Rakesh [email protected] Data: Wed Jun 29 10:02:26 2016 +0530
python 2.7.12
Închide #2452.
Semnat-pe-de: Tim D. Smith [email protected]
comite cf5da0547cd261f79d69e7ff62fdfbd2c2d646e9 Autor: BrewTestBot [email protected] 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
Î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 un
62.1versiune
icu4c(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ți
62.1` versiune.