Homebrew installe une version spécifique de la formule?

Comment installer une version spécifique d’une formule en homebrew? Par exemple, postgresql-8.4.4 au lieu du dernier 9.0.

( J’ai ré-édité ma réponse pour donner un workflow plus complet pour installer / utiliser d’anciennes versions de logiciel avec homebrew. N’hésitez pas à append une note si vous avez trouvé l’ancienne version meilleure. )

Commençons par le cas le plus simple:

1) Vérifiez si la version est déjà installée (mais pas activée)

Lorsque homebrew installe une nouvelle formule, il le place dans un répertoire avec /usr/local/Cellar/postgresql/9.3.1 comme /usr/local/Cellar/postgresql/9.3.1 . Seuls les liens symboliques vers ce dossier sont alors installés globalement. En principe, il est très facile de basculer entre deux versions installées. (*)

Si vous utilisez l’homebrew depuis plus longtemps et que vous n’avez jamais supprimé les anciennes versions (en utilisant, par exemple, le brew cleanup ), il est probable qu’une version plus ancienne de votre programme existe toujours. Si vous souhaitez simplement activer cette version précédente, le brew switch est le moyen le plus simple de le faire.

Vérifiez avec les brew info postgresql (ou le brew switch postgresql ) si la version antérieure est installée:

 $ 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 

Nous voyons qu’une version plus ancienne est déjà installée. Nous pouvons l’activer en utilisant le 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 

Vérifions ce qui est activé:

 $ 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 

Notez que l’écanvas * a été déplacée vers la version nouvellement activée

(*) Veuillez noter que le brew switch ne fonctionne que tant que toutes les dépendances de l’ancienne version sont toujours présentes. Dans certains cas, une reconstruction de l’ancienne version peut être nécessaire. Par conséquent, utiliser le brew switch est surtout utile lorsque l’on veut basculer entre deux versions pas trop éloignées.

2) Vérifiez si la version est disponible en tapotement

Surtout pour les projets de plus gros logiciels, il est très probable qu’il existe une demande suffisamment élevée pour plusieurs versions majeures (potentiellement incompatibles avec les API) d’un certain logiciel. En mars 2012, Homebrew 0.9 fournit un mécanisme pour cela: brew tap et le référentiel des versions homebrew .

Ce référentiel de versions peut inclure des backports d’anciennes versions pour plusieurs formules. (Surtout que les grands et célèbres, mais bien sûr, ils auront aussi plusieurs formules pour postgresql.)

brew search postgresql vous montrera où regarder:

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

Nous pouvons simplement l’installer en tapant

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

Notez que cela a tapé automatiquement sur la touche homebrew/versions . (Vérifiez avec le brew tap , retirez avec l’ brew untap homebrew/versions .) Ce qui suit aurait été équivalent:

 $ brew tap homebrew/versions $ brew install postgresql8 

Tant que les formules de version backported sont à jour, cette approche est probablement la meilleure façon de traiter les anciens logiciels.

3) Essayez une formule du passé

Les approches suivantes sont répertoriées principalement pour la complétude. Les deux essaient de ressusciter une formule mort-vivant du référentiel d’infusion. En raison de changements de dépendances, de modifications de l’API dans la spécification de formule ou simplement d’un changement de l’URL de téléchargement, les choses peuvent ou non fonctionner.

Comme le répertoire complet de la formule est un repository git, il est possible d’installer des versions spécifiques à l’aide de commandes git simples. Cependant, nous devons trouver un moyen d’obtenir une validation là où l’ancienne version était disponible.

a) les temps historiques

Entre août 2011 et octobre 2014 , homebrew avait une commande de brew versions , qui crachait toutes les versions disponibles avec leurs hachages SHA respectifs. À partir d’octobre 2014, vous devez faire un brew tap homebrew/boneyard avant de pouvoir l’utiliser. Comme le nom l’indique, vous ne devriez probablement le faire qu’en dernier recours.

Par exemple

 $ 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 

Comme vous pouvez le voir, il est déconseillé de l’utiliser. Homebrew crache toutes les versions qu’il peut trouver avec son heuristique interne et vous montre comment récupérer les anciennes formules. Essayons.

 # 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 

Maintenant que l’ancienne version de postgresql est installée, nous pouvons réinstaller la dernière formule afin de garder notre référentiel propre:

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

brew switch est votre ami pour changer entre l’ancien et le nouveau.

b) les temps préhistoriques

Pour des besoins spéciaux, nous pouvons également essayer notre propre creusage à travers le référentiel homebrew.

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

git log -S recherche tous les commits dans lesquels la chaîne '8.4.4' été ajoutée ou supprimée dans le fichier Library/Formula/postgresql.rb . Nous obtenons deux commits en conséquence.

 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 

De toute évidence, fa992c6a82eebdc4cc36a0c0d2837f4c02f3f422 est la validation qui nous intéresse. Comme cette validation est assez ancienne, nous allons essayer de rétrograder l’installation complète de l’homebrew (de cette façon, l’API de la formule est plus ou moins garantie):

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

Vous pouvez ignorer la dernière commande pour conserver la référence dans votre référentiel git.

Une remarque: lors de l’enregistrement de l’ancien commit, vous modifiez temporairement votre installation homebrew. Donc, vous devriez faire attention car certaines commandes en homebrew peuvent être différentes de la version la plus récente.

4) Écrire manuellement une formule

Ce n’est pas trop difficile et vous pouvez ensuite le télécharger dans les versions Homebrew .

A.) Bonus: Pinning

Si vous souhaitez conserver une certaine version de, disons postgresql, et l’empêcher d’être mise à jour lorsque vous effectuez la brew update; brew upgrade naturelle brew update; brew upgrade procédure de brew update; brew upgrade , vous pouvez épingler une formule:

 $ brew pin postgresql 

Les formules épinglées sont répertoriées dans /usr/local/Library/PinnedKegs/ et une fois que vous souhaitez importer les dernières modifications et mises à jour, vous pouvez les désépingler à nouveau:

 $ brew unpin postgresql 

Workflow simple

Maintenant que Homebrew / versions est obsolète, Homebrew / core prend en charge plusieurs versions de formules avec un nouveau format de nommage.

Pour installer une version spécifique, par exemple postgresql 9.5, vous exécutez simplement:

 $ brew install postgresql@9.5 

Pour répertorier les versions disponibles, lancez une recherche avec @:

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

Il existe désormais un moyen beaucoup plus simple d’installer une ancienne version d’une formule précédemment installée. Utilisez simplement

 brew switch [formula] [version] 

Par exemple, je alterne régulièrement entre Node.js 0.4.12 et 0.6.5:

 brew switch node 0.4.12 brew switch node 0.6.5 

Puisque le brew switch simplement les liens symboliques, c’est très rapide. Voir plus de documentation sur le wiki Homebrew sous Commandes externes .

Mise à jour: 15/01/2015

  • Recherchez l’historique de validation du logiciel et de la version souhaités. Par exemple, je dois passer de la version docker 1.4.1 à la version 1.3.3: https://github.com/Homebrew/homebrew-core/commits/master/Formula/docker.rb
  • Affichez le fichier avec ce bouton: entrer la description de l'image ici
  • Cliquez sur le bouton Raw: Élément de la liste
  • Copiez l’ URL (url docker.rb dans cet exemple) de la barre d’adresse
  • brew install (il faudra peut-être brew unlink premier, p.ex. brew unlink docker )
  • brew switch docker 1.3.3
  • Revenez au docker 1.4.1 brew switch docker 1.4.1

De cet esprit

 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 

J’ai découvert une meilleure solution alternative que les autres solutions complexes.

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

Cela va télécharger et installer PostgreSQL 8.4.8


J’ai trouvé cette solution en commençant à suivre les étapes de recherche du repository et un commentaire dans le repository.

Après une petite recherche a révélé que quelqu’un a une collection de formulaires rares à préparer.


Si vous recherchez MySQL 5.1.x, essayez-le.

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

Dans le sens de la suggestion de @ halfcube, cela fonctionne très bien:

  1. Trouvez la bibliothèque que vous cherchez sur https://github.com/Homebrew/homebrew-core/tree/master/Formula
  2. Cliquez dessus: https://github.com/Homebrew/homebrew-core/blob/master/Formula/postgresql.rb
  3. Cliquez sur le bouton “histoire” pour consulter les anciens commits: https://github.com/Homebrew/homebrew-core/commits/master/Formula/postgresql.rb
  4. Cliquez sur celui que vous voulez: “postgresql: mettre à jour la version à 8.4.4”, https://github.com/Homebrew/homebrew-core/blob/fa992c6a82eebdc4cc36a0c0d2837f4c02f3f422/Library/Formula/postgresql.rb
  5. Cliquez sur le lien “brut”: 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

Vous pouvez utiliser la stratégie d’identification de la formule et d’un commit particulier dans l’historique de la formule correspondant à la version du package que vous souhaitez installer.

  1. Allez sur https://github.com/Homebrew/homebrew-core

  2. Appuyez sur t sur votre clavier pour activer le moteur de recherche de fichiers.

  3. Identifiez une formule qui semble la plus pertinente, peut-être: Formula/mysql.rb , vous amenant à un emplacement de fichier Formula/mysql.rb : https://github.com/Homebrew/homebrew-core/blob/master/Formula/mysql.rb .

  4. Consultez l’historique des révisions en cliquant sur le bouton History situé à l’ adresse https://github.com/Homebrew/homebrew-core/commits/master/Formula/mysql.rb . Si MySQL 5.7.10 vous intéresse, vous pouvez cliquer sur la dernière révision antérieure à 5.7.11, qui navigue vers un commit GitHub:

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

REMARQUE: Il se peut que vous deviez afficher l’historique des validations dans votre console par suggestion de GitHub si l’historique de validation ne se charge pas dans votre navigateur. Remplacez le commit SHA ci-dessus dans l’URL si vous souhaitez voir cette validation sur GitHub. Sinon, passez à l’étape 7 ci-dessous.

  1. Cliquez sur le bouton “Afficher” pour afficher la source du fichier mysql.rb une fois la validation appliquée.

  2. Cliquez ensuite sur le bouton “Raw” pour afficher la source brute.

  3. Copiez l’URL. Vous pouvez également créer l’URL vous-même avec le nom de fichier mysql.rb pour identifier votre formule et la version particulière de cette formule (identifiée par le SHA de validation dans l’URL ci-dessous).

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

  4. Installez-le avec $ brew install [URL from step 7]

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

REMARQUE: Cette réponse a été mise à jour pour tenir compte de la suppression du site Web braumeister.org. Le même principe s’applique, braumeister avait simplement fourni une manière conviviale de naviguer dans les versions de formules.

Je viens d’utiliser Homebrew pour revenir à Maven 2.2.1 puisque la simple installation de Maven a installé Maven 3.0.3.

Vous devez d’abord quitter le répertoire maven

 $ brew unlink maven

Utilisez la commande tap tap

 $ brew tap homebrew / versions
 Cloner dans '/ usr / local / Library / Taps / homebrew-versions' ...
 remote: Comptage d'objects: 590, terminé.
 remote: Compression d'objects: 100% (265/265), terminé.
 remote: Total 590 (delta 362), réutilisé 549 (delta 325)
 Réception d'objects: 100% (590/590), 117,49 Ko |  79 Ki / s, terminé.
 Résolution des deltas: 100% (362/362), terminé.
 Formule taraudée 50

Maintenant, vous pouvez installer la formule maven2:

 $ brew install maven2
 ==> Téléchargement 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 fichiers, 3.1M, construits en 6 secondes
 $ mvn --version
 Apache Maven 2.2.1 (r801777; 2009-08-06 12: 16: 01-0700)
 Version Java: 1.6.0_37
 Java home: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
 Paramètres régionaux par défaut: en_US, encodage de la plate-forme: MacRoman
 Nom du système d'exploitation: Version "mac os x": "10.7.4" arch: "x86_64" Famille: "mac" 

Edit: Vous pouvez aussi simplement brew switch maven 2.2.1 pour passer à une autre version.

Edit: Le projet Apache Maven a réorganisé son repository. Mis à jour cette réponse pour tenir compte de ce changement.

Basé sur le workflow décrit par @tschundeee et la mise à jour 1 de @ Debilski , j’ai automatisé la procédure et ajouté du nettoyage dans ce script .

Téléchargez-le , placez-le dans votre chemin et brewv . Pour le PO spécifique, ce serait:

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

🙂

Sur la dernière version de homebrew (0.9.5 à ce jour), il y aura une recette spécifique pour la version du fût homebrew que vous voulez installer. Exemple:

 $ brew search mongodb mongodb mongodb24 mongodb26 

Ensuite, faites simplement brew install mongodb26 comme d’habitude.

Si vous avez déjà installé la dernière version, assurez-vous de dissocier la dernière version et de lier la version souhaitée: brew unlink mongodb && brew link mongodb26 .

Une réponse actualisée puisque cela ajoute à ce que @ lance-pollard a déjà publié comme réponse de travail.

Comment installer une version spécifique d’une formule (la formule utilisée dans cet exemple est terraform ):

  1. Trouvez votre fichier de formule, par exemple: https://github.com/Homebrew/homebrew-core/blob/master/Formula/terraform.rb
  2. Obtenez la version de validation de l’historique de github avec https://github.com/Homebrew/homebrew-core/commits/master/Formula/terraform.rb ou git log master -- Formula/terraform.rb si vous avez cloné le repo localement.
  3. Obtenez l’URL git brut avec la version de validation de votre formule: Si le lien de la formule dans github.com est https://github.com/Homebrew/homebrew-core/blob/e4ca4d2c41d4c1412994f9f1cb14993be5b2c59a/Formula/terraform.rb , votre URL brute sera être: https://raw.githubusercontent.com/Homebrew/homebrew-core/e4ca4d2c41d4c1412994f9f1cb14993be5b2c59a/Formula/terraform.rb
  4. Installez-le avec: brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/e4ca4d2c41d4c1412994f9f1cb14993be5b2c59a/Formula/terraform.rb

Cela pourrait être très facile pour la dernière version de l’infusion.

 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) 

Le problème avec homebrew/versions est que quelqu’un doit avoir la version spécifique du logiciel répertoriée dans le référentiel pour que vous puissiez l’utiliser. De plus, les brew versions n’étant plus sockets en charge, une autre solution est requirejse. Pour les solutions qui indiquent l’utilisation du brew switch , cela ne fonctionnera que si vous n’avez pas effectué de brew cleanup car la version doit exister sur votre ordinateur.

J’ai eu un problème avec le désir d’installer une ancienne version spécifique de docker-machine qui n’était pas répertoriée dans homebrew/versions . J’ai résolu ce problème en utilisant ce qui suit, qui devrait également fonctionner pour tout logiciel de armsage installé. L’exemple ci-dessous utilisera docker-machine comme package que je souhaite rétrograder de la version 0.5.0 vers la version 0.4.1.

  1. Accédez à votre répertoire Formula Homebrew.
    Vous pouvez déterminer cela en lançant des brew info [any package name] . Par exemple, brew info docker-machine , une brew info docker-machine , me donne une ligne qui me montre un chemin: /usr/local/Cellar/docker-machine/0.5.0 . Cela me dit que sur ma machine, homebrew est installé dans /usr/local et que mon répertoire de Formula se trouve par défaut dans /usr/local/Library/Formula

  2. Recherchez le fichier de formule spécifique (.rb) pour votre package. Comme je veux rétrograder docker-machine , je peux voir un fichier docker-machine.rb .

  3. Obtenez l’historique de version pour ce fichier de formule . Entrez git log docker-machine.rb . Cela listera l’historique de validation complet pour ce fichier. Vous verrez la sortie comme ceci:

     ...plus 

     commettre 20c7abc13d2edd67c8c1d30c407bd5e31229cacc
     Auteur: BrewTestBot 
     Date: Jeu Nov 5 16:14:18 2015 +0000

         docker-machine: mise à jour de la bouteille 0.5.0.

     commettre 8f615708184884e501bf5c16482c95eff6aea637
     Auteur: Vincent Lesierse 
     Date: mar oct 27 22:25:30 2015 +0100

         docker-machine 0.5.0

         Mise à jour du docker-machine à 0.5.0

         Ferme # 45403.

         Signé par: Dominyk Tiller 

     commettre 5970e1af9b13dcbeffd281ae57c9ab90316ba423
     Auteur: BrewTestBot 
     Date: lun. Sept. 21 14:04:04 2015 +0100

         docker-machine: mise à jour de la bouteille 0.4.1.

     commettre 18fcbd36d22fa0c19406d699308fafb44e4c8dcd
     Auteur: BrewTestBot 
     Date: dim août 16 09:05:56 2015 +0100

         docker-machine: mise à jour de la bouteille 0.4.1.

     ...plus

La partie délicate consiste à trouver le dernier commit pour la version spécifique que vous souhaitez. Dans ce qui précède, je peux dire que la dernière version 0.4.1 a été commit 5970e1af9b13dcbeffd281ae57c9ab90316ba423 avec cette balise de commit 5970e1af9b13dcbeffd281ae57c9ab90316ba423 : commit 5970e1af9b13dcbeffd281ae57c9ab90316ba423 . Les commits au-dessus de ce point commencent à utiliser la version 0.5.0 (les entrées du journal git sont répertoriées de la plus récente à la plus ancienne).

  1. Obtenez une version précédente du fichier de formule. En utilisant le tag de validation de l’étape 3 (vous pouvez utiliser les 6 premiers caractères), vous pouvez obtenir une version antérieure du fichier de formule en utilisant ce qui suit:

    git checkout 5970e1 docker-machine.rb

  2. Désinstallez la version actuelle de votre package. Exécutez simplement les commandes d’infusion normales pour désinstaller la version actuelle de votre package.
    Ex. brew uninstall docker-machine

  3. Installez l’ancienne version du paquet Maintenant, vous pouvez simplement exécuter la commande normale d’installation de brew et elle installera la formule dont vous avez besoin. Ex. brew install docker-machine

Vous devrez peut-être relier à nouveau en utilisant le brew link docker-machine si nécessaire.

Si, à tout moment, vous souhaitez revenir à la dernière version d’un package spécifique, accédez au répertoire Formula et exécutez les commandes suivantes sur votre fichier de formule (.rb).

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

Ensuite, vous pouvez brew uninstall docker-machine et brew install docker-machine pour obtenir la dernière version et continuer ainsi.

Si vous ne trouvez pas votre version avec brew search , vous pouvez également essayer de parcourir les journaux de validation de votre formule pour trouver la version souhaitée:

Voici un exemple d’installation d’une ancienne version de nginx via brew:

  • Journal de validation de la formule ngxnx

  • voir nginx: update 1.6.3 bottle eba75b9a1a474b9fc4df30bd0a32637fa31ec049

De là, nous pouvons installer 1.6.3 avec l’URL sha et raw git:

brew install https://raw.githubusercontent.com/Homebrew/homebrew/eba75b9a1a474b9fc4df30bd0a32637fa31ec049/Library/Formula/nginx.rb

Aucun de ces éléments n’a vraiment fonctionné pour mon cas (Python), alors j’appendai mes 2 cents:

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

La sortie ressemble à ceci:

 commit 9ff2d8ca791ed1bd149fb8be063db0ed6a67a6de Author: Dominyk Tiller  Date: Thu Jun 30 17:42:18 2016 +0100 python: clarify pour_bottle reason commit cb3b29b824a264895434214e191d0d7ef4d51c85 Author: BrewTestBot  Date: Wed Jun 29 14:18:40 2016 +0100 python: update 2.7.12 bottle. commit 45bb1e220341894bbb7de6fd3f6df20987dc14f0 Author: Rakesh  Date: Wed Jun 29 10:02:26 2016 +0530 python 2.7.12 Closes #2452. Signed-off-by: Tim D. Smith  commit cf5da0547cd261f79d69e7ff62fdfbd2c2d646e9 Author: BrewTestBot  Date: Fri Jun 17 20:14:36 2016 +0100 python: update 2.7.11 bottle. ... 

I want version 2.7.11 so my hash is cf5da0547cd261f79d69e7ff62fdfbd2c2d646e9 (or cf5da05 for short). Next, I check out that version and install the formula python :

 git checkout cf5da05 brew install python 

Finally, clean up:

 git checkout master 

Install an old brew package version (Flyway 4.2.0 example)

Find your local homebrew git dir or clone Homebrew/homebrew-core locally

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

OU

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

List all available versions

git log master -- Formula/flyway.rb

Copy the commit ID for the version you want and install it directly

brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/793abfa325531415184e1549836c982b39e89299/Library/Formula/flyway.rb

Update on the Library/Formula/postgresql.rb line 8 to

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

And MD5 on line 9 to

 fcc3daaf2292fa6bf1185ec45e512db6 

Save and exit.

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

Now in this stage you might face the postgresql could not create shared memory segment error, to work around that update the /etc/sysctl.conf like this:

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

Try initdb /usr/local/var/postgres again, and it should run smooth.

To run postgresql on start

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

Hope that helps 🙂

I just copied an older release of elasticsearch into the /usr/local/Cellar/elasticsearch directory.

 $ 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 

C’est tout. Maybe it’s useful for anyone.

I decided, against my better judgment, to create a formula for Maven 3.1.1, which homebrew/versions did not have. Pour faire ça:

  1. I forked homebrew/versions on github.
  2. I symlinked from $(brew --prefix)/Library/Taps to the local working copy of my fork. I’ll call this my-homebrew/versions .
  3. I tested by specifying the formula as my-homebrew/versions/ .
  4. I sent a pull request to homebrew/versions for my new formula.

Yay.

For versions not currently in the default brew formulas, you can easily create your own tap with the tool from https://github.com/buildtools-version-taps/homebrew-versions-tap-tool