¿Cómo puedo preparar un enlace para una versión específica?

158

Tengo algunos barriles del mismo paquete en me /usr/local/Cellar/libfoogusta /usr/local/Cellar/libfoo/1.0.1, /usr/local/Cellar/libfoo/HEADy/usr/local/Cellar/libfoo/mycopy

¿Cómo puedo preparar un enlace a una versión específica?

jrwren
fuente

Respuestas:

310

La información de uso:

Usage: brew switch <formula> <version>

Ejemplo:

brew switch mysql 5.5.29

Puede encontrar las versiones instaladas en su sistema con info.

brew info mysql

Y para ver las versiones disponibles para instalar, puede proporcionar un número de versión falsa, ya que brew responderá útilmente con los números de versión disponibles:

brew switch mysql 0

Actualización (15.10.2014):

El brew versionscomando se ha eliminado de la preparación, pero, si desea utilizar este comando, primero ejecute brew tap homebrew/boneyard.

La forma recomendada para instalar una versión anterior es instalar desde el homebrew/versionsrepositorio de la siguiente manera:

$ brew tap homebrew/versions
$ brew install mysql55

Para obtener información detallada sobre todas las formas de instalar una versión anterior de una fórmula, lea esta respuesta .

SimonW
fuente
1
Seguí el método de actualización 15.10.2014 y necesitaba agregar /usr/local/Cellar/mysql55/5.5.40/bin a mi ruta. La mayoría de las cosas de Homebrew tienen un enlace simbólico en / usr / local / bin a / usr / local / Cellar ..., pero la instalación actualizada no agrega automáticamente este enlace simbólico.
Poderes
1
Todavía necesita vincular la versión instalada y sobrescribir su enlace actual usando: brew link --overwrite mysql55
Yann VR
2
Desafortunadamente, brew tap homebrew/versionsahora me da un error Error: homebrew/versions was deprecated. This tap is now empty as all its formulae were migrated'
Juraj Martinka
¿Hay alguna manera de averiguar qué versiones están disponibles sin versionso simplemente adivinando y comprobando switch?
Kyle Strand
1
versiones está en desuso por lo que creo que el único camino que queda es encontrar una fórmula antigua e instalarlo desde una URL directa
SimonW
12

Pregunté en #machomebrew y aprendí que puedes cambiar entre versiones usando brew switch.

$ brew switch libfoo mycopy 

para obtener la versión mycopy de libfoo.

jrwren
fuente
4

brew switch libfoo mycopy

Puede usar brew switchpara cambiar entre versiones del mismo paquete, si está instalado como subdirectorios versionados enCellar/<packagename>/

Esto mostrará una lista de las versiones instaladas (por ejemplo Cellar/sdl2/2.0.3, las he compilado Cellar/sdl2/2.0.4)

brew info sdl2

Luego para cambiar entre ellos

brew switch sdl2 2.0.4
brew info 

La información ahora se muestra al *lado del 2.0.4

Para instalar Cellar/<packagename>/<version>desde la fuente, puede hacer, por ejemplo

cd ~/somewhere/src/foo-2.0.4
./configure --prefix $(brew --Cellar)/foo/2.0.4
make

compruebe dónde se instala con

make install -n

si todo parece correcto

make install

Luego de cd $(brew --Cellar)hacer el cambio entre la versión.

Estoy usando brew version 0.9.5

stefanB
fuente
3

Si ha instalado, por ejemplo, php 5.4, podría cambiarse de la siguiente manera a php 5.5:

$ php --version
PHP 5.4.32 (cli) (built: Aug 26 2014 15:14:01) 
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies

$ brew unlink php54

$ brew switch php55 5.5.16

$ php --version
PHP 5.5.16 (cli) (built: Sep  9 2014 14:27:18) 
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
FelikZ
fuente
0

Si la respuesta de @ Simon no funciona en algunas de las mac, siga el proceso a continuación.

Si ya instaló swiftgen con los siguientes comandos:

$ brew update $brew install swiftgen

luego siga los pasos a continuación para ejecutar swiftgen con una versión anterior.

Paso 1: brew uninstall swiftgen Paso 2: Navegue a: https://github.com/SwiftGen/SwiftGen/releases y descargue el swiftgen con la versión: swiftgen-4.2.0.zip.

Descomprima el paquete en cualquiera de los directorios.

Paso 3: Ejecute lo siguiente en una terminal:

$ mkdir -p ~/dependencies/swiftgen
$ cp -R ~/<your_directory_name>/swiftgen-4.2.0/ ~/dependencies/swiftgen
$ cd /usr/local/bin
$ ln -s ~/dependencies/swiftgen/bin/swiftgen swiftgen
$ mkdir ~/Library/Application\ Support/SwiftGen
$ ln -s ~/dependencies/swiftgen/templates/ ~/Library/Application\ Support/SwiftGen/

$ swiftgen --version

Debería obtener: SwiftGen v0.0 (Stencil v0.8.0, StencilSwiftKit v1.0.0, SwiftGenKit v1.0.1)

ingrese la descripción de la imagen aquí

DILIP KOSURI
fuente