Homebrew instalar la versión específica de la fórmula?


¿Cómo instalo una versión específica de una fórmula en homebrew? Por ejemplo, postgresql-8.4.4 en lugar de la última versión 9.0.

Author: Jay P., 2010-10-21

20 answers

(He reeditado mi respuesta para dar un flujo de trabajo más completo para instalar / usar versiones de software anteriores con homebrew. Siéntase libre de agregar una nota si encontró la versión anterior mejor.)

Comencemos con el caso más simple:

1) Compruebe si la versión ya está instalada (pero no activada)

Cuando homebrew instala una nueva fórmula, la coloca en un directorio versionado como /usr/local/Cellar/postgresql/9.3.1. Solo los enlaces simbólicos a esta carpeta se instalan globalmente. En principio, esto hace que sea bastante fácil cambiar entre dos versiones instaladas. (*)

Si ha estado usando homebrew durante más tiempo y nunca ha eliminado versiones anteriores (usando, por ejemplo brew cleanup), es probable que alguna versión anterior de su programa todavía pueda existir. Si simplemente desea activar esa versión anterior, brew switch es la forma más fácil de hacerlo.

Compruebe con brew info postgresql (o brew switch postgresql <TAB>) si la versión anterior está instalada:

$ 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

Vemos que algunos más viejos la versión ya está instalada. Podemos activarlo usando 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

Comprobemos qué está activado:

$ 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

Tenga en cuenta que la estrella * se ha movido a la versión recién activada

(*) Tenga en cuenta que brew switch solo funciona siempre y cuando todas las dependencias de la versión anterior todavía estén disponibles. En algunos casos, puede ser necesario reconstruir la versión anterior. Por lo tanto, usar brew switch es principalmente útil cuando uno quiere cambiar entre dos versiones no demasiado muy separados.

2) Compruebe, si la versión está disponible como un grifo

Especialmente para proyectos de software más grandes, es muy probable que haya una demanda lo suficientemente alta para varias versiones principales (potencialmente incompatibles con API) de una determinada pieza de software. A partir de marzo de 2012, Homebrew 0.9 proporciona un mecanismo para esto: brew tap & el repositorio homebrew versions.

Que el repositorio de versiones puede incluir backports de versiones anteriores para varias fórmulas. (En su mayoría solo los grandes y famosos, pero por supuesto también tendrán varias fórmulas para postgresql.)

brew search postgresql te mostrará dónde buscar:

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

Simplemente podemos instalarlo escribiendo

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

Tenga en cuenta que esto tiene automáticamente pulsado el homebrew/versions pulsado. (Comprobar con brew tap, eliminar con brew untap homebrew/versions.) Lo siguiente habría sido equivalente:

$ brew tap homebrew/versions
$ brew install postgresql8

Mientras las fórmulas de la versión backported se mantengan actualizadas, este enfoque es probablemente la mejor manera de lidiar con software más antiguo.

3) Pruebe alguna fórmula del pasado

Los siguientes enfoques se enumeran principalmente para completar. Ambos intentan resucitar alguna fórmula no muerta del repositorio de brew. Debido a cambios en las dependencias, cambios en la API en la especificación de la fórmula o simplemente un cambio en la URL de descarga, las cosas pueden o no funcionar.

Dado que todo el directorio de fórmulas es un repositorio git, se pueden instalar versiones específicas usando comandos git simples. Sin embargo, necesitamos encontrar una manera de llegar a un commit donde la versión anterior estaba disponible.

A) tiempos históricos

Entre Agosto de 2011 y octubre de 2014, homebrew tenía un comando brew versions, que escupía todas las versiones disponibles con sus respectivos hashes SHA. A partir de octubre de 2014, tienes que hacer un brew tap homebrew/boneyard antes de poder usarlo. Como sugiere el nombre del grifo, probablemente solo deberías hacer esto como último recurso.

Por ejemplo

$ 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

Como puedas mira, aconseja no usarlo. Homebrew escupe todas las versiones que puede encontrar con su heurística interna y le muestra una manera de recuperar las viejas fórmulas. Vamos a intentarlo.

# 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

Ahora que la versión anterior de postgresql está instalada, podemos volver a instalar la fórmula más reciente para mantener nuestro repositorio limpio:

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

brew switch es tu amigo para cambiar entre lo viejo y lo nuevo.

B) tiempos prehistóricos

Para necesidades especiales, también podemos probar nuestro propia excavación a través del repo homebrew.

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

git log -S busca todas las confirmaciones en las que se haya añadido o eliminado la cadena '8.4.4' en el archivo Library/Formula/postgresql.rb. Obtenemos dos confirmaciones como resultado.

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

Obviamente, fa992c6a82eebdc4cc36a0c0d2837f4c02f3f422 es el commit que nos interesa. Como este commit es bastante antiguo, intentaremos degradar la instalación completa de homebrew (de esa manera, la API de fórmula está más o menos garantizada para ser válida):

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

, puede omitir el último comando para mantener la referencia en tu repositorio git.

Una nota: Al revisar la confirmación anterior, bajas temporalmente tu instalación de homebrew. Por lo tanto, debe tener cuidado ya que algunos comandos en homebrew pueden ser diferentes a la versión más reciente.

4) Escriba manualmente una fórmula

No es demasiado difícil y luego puede subirlo a Homebrew-Versions.

A.) Bonus: Fijación

Si desea mantener una cierta versión de, por ejemplo postgresql, alrededor y detenerlo de al actualizarse cuando realiza el procedimiento natural brew update; brew upgrade, puede fijar una fórmula:

$ brew pin postgresql

Las fórmulas ancladas se enumeran en /usr/local/Library/PinnedKegs/ y una vez que desee traer los últimos cambios y actualizaciones, puede desanclar de nuevo:

$ 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/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-01-12 22:45:18

Flujo de trabajo simple

Ahora que Homebrew/versions ha sido obsoleto, Homebrew/core soporta múltiples versiones de fórmulas con un nuevo formato de nomenclatura.

Para instalar una versión específica, por ejemplo postgresql 9.5, simplemente ejecute:

$ brew install [email protected]

Para listar las versiones disponibles ejecute una búsqueda con@:

$ 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/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-02-01 17:24:38

Ahora hay una forma mucho más fácil de instalar una versión anterior de una fórmula que había instalado anteriormente. Simplemente use

brew switch [formula] [version]

Por ejemplo, alterno regularmente entre Nodos.js 0.4.12 and 0.6.5:

brew switch node 0.4.12
brew switch node 0.6.5

Dado que brew switch solo cambia los enlaces simbólicos, es muy rápido. Ver más documentación en el Wiki de Homebrew bajo 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/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-12-14 16:33:26

Actualización: 15/1/2015

  • Encuentre el historial de confirmaciones del software y la versión deseados. por ejemplo, necesito cambiar de docker versión 1.4.1 a 1.3.3: https://github.com/Homebrew/homebrew-core/commits/master/Formula/docker.rb
  • Ver el archivo con este botón: introduzca la descripción de la imagen aquí
  • Haga clic en el botón Raw: Elemento de la lista
  • Copie la URL (docker.rb url en este ejemplo) desde la barra de direcciones
  • brew install <url> (puede tener que brew unlink primero, e. g. brew unlink docker)
  • brew switch docker 1.3.3
  • Volver a docker 1.4.1 brew switch docker 1.4.1

De esto esencia

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/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-05-22 03:55:19

He descubierto una solución alternativa mejor que las otras soluciones complejas.

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

Esto descargará e instalará PostgreSQL 8.4.8


Encontré esta solución comenzando a seguir los pasos de buscar el repositorio y un comentario en el repositorio .

Después de un poco de investigación encontró que alguien tiene una colección de formulares raros para preparar.


Si buscas MySQL 5.1.x, dale una oportunidad.

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/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-01-18 10:47:55

Siguiendo la sugerencia de @halfcube, esto funciona muy bien:

  1. Encuentra la biblioteca que estás buscando en https://github.com/Homebrew/homebrew-core/tree/master/Formula
  2. Haga clic en él: https://github.com/Homebrew/homebrew-core/blob/master/Formula/postgresql.rb
  3. Haga clic en el botón" historial" para ver las confirmaciones antiguas: https://github.com/Homebrew/homebrew-core/commits/master/Formula/postgresql.rb
  4. Haga clic en el que desee: "postgresql: update version to 8.4.4", https://github.com/Homebrew/homebrew-core/blob/fa992c6a82eebdc4cc36a0c0d2837f4c02f3f422/Library/Formula/postgresql.rb
  5. Haga clic en el enlace "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/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-08-04 03:46:15

Puede usar la estrategia de identificar la fórmula y una confirmación en particular en el historial de la fórmula que coincida con la versión del paquete que desea instalar.

  1. Ir a https://github.com/Homebrew/homebrew-core

  2. Pulse t en su teclado para activar el buscador de archivos.

  3. Identifique una fórmula que se vea más relevante, tal vez: Formula/mysql.rb, llevándole a una ubicación de archivo forumla: https://github.com/Homebrew/homebrew-core/blob/master/Formula/mysql.rb.

  4. Mira el historial de revisiones haciendo clic en el botón History, que se encuentra en https://github.com/Homebrew/homebrew-core/commits/master/Formula/mysql.rb. Si está interesado en MySQL 5.7.10, es posible que desee hacer clic en la última revisión anterior a 5.7.11, que navega a un GitHub commit:

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

NOTA: Es posible que tengas que ver el historial de confirmaciones en tu consola según la sugerencia de GitHub si el historial de confirmaciones no se carga en tu navegador. Reemplaza el SHA de confirmación anterior en la URL si estás interesado en ver esa confirmación en GitHub. Alternativamente, vaya al paso 7, a continuación.

  1. Haga clic en el botón" Ver " para ver el fuente para mysql.archivo rb después de aplicar la confirmación.

  2. Luego haga clic en el botón" Raw " para ver la fuente raw.

  3. Copie la URL. Alternativamente, construya la URL usted mismo con el nombre de archivo mysql.rb para identificar su fórmula y la versión particular de esa fórmula (identificada por el SHA de commmit en la URL debajo).

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

  4. Instálalo con $ brew install [URL from step 7]

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

NOTA: Esta respuesta fue actualizada para dar cuenta de la eliminación de la braumeister.org sitio web. El mismo principio se aplica, braumeister simplemente había proporcionado una manera amigable para principiantes para navegar por las versiones de fórmula.

 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/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-07-15 20:06:45

Acabo de usar Homebrew para volver a Maven 2.2.1 ya que el simple brew install maven instalado Maven 3.0.3.

Primero tienes que dejar el maven dir allí para

$ brew unlink maven

Utilice el comando 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

Ahora puede instalar la fórmula 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" 

Editar: También puede simplemente brew switch maven 2.2.1 cambiar a una versión diferente.

Editar: El proyecto Apache Maven reorganizó su repositorio. Se ha actualizado esta respuesta para tener en cuenta este cambio.

 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/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-02-06 20:40:12

Basado en el flujo de trabajo descrito por @tschundeee y la actualización 1 de@Debilski, automatizé el procedimiento y agregué limpieza en este script.

Descárguelo , póngalo en su camino y brewv <formula_name> <wanted_version>. Para el PO específico, sería:

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/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:34:59

En la nueva versión de homebrew (0.9.5 al momento de escribir este artículo) habrá una receta específica para la versión del barril de homebrew que desea instalar. Ejemplo:

$ brew search mongodb
mongodb    mongodb24  mongodb26

Entonces simplemente haz brew install mongodb26 como de costumbre.

En el caso de que ya haya instalado la última versión, asegúrese de desvincular la última versión y vincular la versión deseada: 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/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-05-01 02:05:23

Una respuesta actualizada desde entonces se suma a lo que @lance-pollard ya publicó como respuesta de trabajo.

Cómo instalar una versión específica de una Fórmula (la fórmula utilizada en este ejemplo es terraform):

  1. Encuentre su archivo de fórmula, por ejemplo: https://github.com/Homebrew/homebrew-core/blob/master/Formula/terraform.rb
  2. Obtenga la versión de confirmación del historial de github con https://github.com/Homebrew/homebrew-core/commits/master/Formula/terraform.rb o git log master -- Formula/terraform.rb si han clonado el repositorio localmente.
  3. Obtenga la URL de git sin procesar con la versión de confirmación de su fórmula: Si la fórmula enlaza github.com es https://github.com/Homebrew/homebrew-core/blob/e4ca4d2c41d4c1412994f9f1cb14993be5b2c59a/Formula/terraform.rb, tu URL raw será: https://raw.githubusercontent.com/Homebrew/homebrew-core/e4ca4d2c41d4c1412994f9f1cb14993be5b2c59a/Formula/terraform.rb
  4. instalarlo con: 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/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-12-19 20:45:46

Se podría hacer muy fácil para la última versión de 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/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-08-12 09:23:08

El problema con homebrew/versions es que alguien tiene que tener esa versión específica del software listada en el repositorio para que usted pueda usarla. Además, dado que brew versions ya no es compatible, se requiere otra solución. Para las soluciones que indican usar brew switch, esto solo funcionará si no ha hecho un brew cleanup ya que la versión debe existir en su computadora.

Tuve un problema al querer instalar una versión anterior específica de docker-machine que no estaba listada en homebrew/versions. Resolví esto. usando lo siguiente, que también debería funcionar para cualquier software instalado brew. El siguiente ejemplo usará docker-machine como el paquete que quiero degradar de la versión 0.5.0 a 0.4.1.

  1. Vaya a su directorio homebrew Formula.
    Puede determinar esto ejecutando brew info [any package name]. Por ejemplo, brew info docker-machine me da una línea que me muestra una ruta - /usr/local/Cellar/docker-machine/0.5.0. Esto me dice que en mi máquina, homebrew está instalado en /usr/localy mi Formula el directorio se encuentra por defecto en /usr/local/Library/Formula

  2. Localice el archivo de fórmula específico (.rb) para su paquete. Como quiero degradar docker-machine, puedo ver un archivo docker-machine.rb.

  3. Obtenga el historial de versiones de este archivo de fórmulas . Introduzca git log docker-machine.rb. Esto listará el historial completo de confirmaciones para este archivo. Verás una salida como esta:

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

La parte difícil es encontrar la última confirmación para la versión específica que desea. En lo anterior, puedo decir la la última versión 0.4.1 fue confirmada con esta etiqueta de confirmación: commit 5970e1af9b13dcbeffd281ae57c9ab90316ba423. Las confirmaciones anteriores a este punto comienzan a usar la versión 0.5.0 (las entradas de registro de git se enumeran desde la fecha más reciente hasta la más antigua).

  1. Obtenga una versión anterior del archivo de fórmula. Usando la etiqueta de confirmación del paso # 3 (puede usar los primeros 6 caracteres), puede obtener una versión anterior del archivo de fórmula usando lo siguiente:

    git checkout 5970e1 docker-machine.rb

  2. Desinstalar su paquete actual versión. Simplemente ejecute los comandos normales de brew para desinstalar la versión actual de su paquete.
    Ex. brew uninstall docker-machine

  3. Instale la versión anterior del paquete Ahora, solo puede ejecutar el comando normal brew install e instalará la fórmula que tiene para finalizar la compra. Ex. brew install docker-machine

Puede que tenga que volver a enlazar utilizando el brew link docker-machine si es necesario.

Si en cualquier momento desea volver a la última versión de un paquete específico, vaya a el directorio de fórmulas y emitir los siguientes comandos en su archivo de fórmulas (.rb)

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

Entonces usted puede brew uninstall docker-machine y brew install docker-machine para obtener la última versión y mantenerlo de esa manera en el futuro.

 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/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-11-10 17:30:15

Si no puede encontrar su versión con brew search <formula>, también puede intentar revisar los registros de confirmación de su fórmula para encontrar la versión que desea:

Aquí hay un ejemplo para instalar una versión anterior de nginx a través de brew:

Desde allí, podemos instalar 1.6.3 con el sha y la url de git raw:

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/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-09-15 18:32:15

Ninguno de estos realmente funcionó para mi caso (Python), así que agregaré mis 2 centavos:

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

La salida se ve así:

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.

...

Quiero la versión 2.7.11 así que mi hash es cf5da0547cd261f79d69e7ff62fdfbd2c2d646e9 (o cf5da05 para abreviar). A continuación, compruebo esa versión e instalo la fórmula python:

git checkout cf5da05
brew install python

Finalmente, limpiar:

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/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-07-05 21:18:07

Instale una versión antigua del paquete brew (ejemplo Flyway 4.2.0)

Encuentra tu homebrew local git dir o clona Homebrew/homebrew-core localmente

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

O

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

Lista todas las versiones disponibles

git log master -- Formula/flyway.rb

Copie el ID de confirmación de la versión que desee e instálelo directamente

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/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-05-24 16:12:16

Actualización de la Librería/Formula/postgresql.rb línea 8 a

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

Y MD5 en la línea 9 a

fcc3daaf2292fa6bf1185ec45e512db6

Guardar y salir.

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

Ahora, en esta etapa, podría enfrentar el error postgresql could not create shared memory segment, para evitar esa actualización del /etc/sysctl.conf de la siguiente manera:

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

Intente initdb /usr/local/var/postgres de nuevo, y debería funcionar sin problemas.

Para ejecutar postgresql al inicio

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

Espero que eso ayude:)

 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/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-07-13 16:30:50

Acabo de copiar una versión anterior de elasticsearch en el directorio /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

Eso es todo. Tal vez sea útil para cualquiera.

 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/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-04-06 15:44:48

Decidí, contra mi mejor juicio, crear una fórmula para Maven 3.1.1, que homebrew/versions no tenía. Para hacer esto:

  1. I bifurcada homebrew/versions en github.
  2. Hice un enlace simbólico de $(brew --prefix)/Library/Taps a la copia local de trabajo de mi bifurcación. Voy a llamar a esto my-homebrew/versions.
  3. Probé especificando la fórmula como my-homebrew/versions/<formula>.
  4. Envié una solicitud de extracción a homebrew/versions para mi nueva fórmula.

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/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-11-02 13:30:57

Para las versiones que no están actualmente en las fórmulas de brebaje predeterminadas, puede crear fácilmente su propio toque con la herramienta de 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/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-07-15 17:18:52