Como posso criar link para uma versão específica?

158

Eu tenho alguns barris do mesmo pacote em /usr/local/Cellar/libfoocomo /usr/local/Cellar/libfoo/1.0.1, /usr/local/Cellar/libfoo/HEADe/usr/local/Cellar/libfoo/mycopy

Como posso criar um link para uma versão específica?

jrwren
fonte

Respostas:

310

As informações de uso:

Usage: brew switch <formula> <version>

Exemplo:

brew switch mysql 5.5.29

Você pode encontrar as versões instaladas no seu sistema com info.

brew info mysql

E para ver as versões disponíveis para instalação, você pode fornecer um número de versão duvidoso, pois o brew responderá de maneira útil com os números de versão disponíveis:

brew switch mysql 0

Atualização (15.10.2014):

O brew versionscomando foi removido do brew, mas, se você deseja usar esse comando, execute primeiro brew tap homebrew/boneyard.

A maneira recomendada de instalar uma versão antiga é instalar a partir do homebrew/versionsrepositório da seguinte maneira:

$ brew tap homebrew/versions
$ brew install mysql55

Para informações detalhadas sobre todas as maneiras de instalar uma versão mais antiga de uma fórmula, leia esta resposta .

SimonW
fonte
1
Segui o método de atualização de 15.10.2014 e precisava adicionar /usr/local/Cellar/mysql55/5.5.40/bin ao meu caminho. A maioria das coisas do Homebrew tem um link simbólico em / usr / local / bin para / usr / local / Cellar ..., mas a instalação atualizada não adiciona automaticamente esse link simbólico.
Poderes
1
Você ainda precisa vincular a versão instalada e substituir sua ligação atual usando: Link bebida mysql55 --overwrite
Yann VR
2
Infelizmente, brew tap homebrew/versionsagora me dá um erro Error: homebrew/versions was deprecated. This tap is now empty as all its formulae were migrated`
Juraj Martinka
Existe uma maneira de descobrir quais versões estão disponíveis sem versionsou apenas adivinhar e verificar switch?
Kyle Strand
1
versões é obsoleto então eu acho que a única maneira esquerda é encontrar uma fórmula antiga e instalá-lo a partir de uma URL direta
SimonW
12

Eu perguntei no #machomebrew e aprendi que você pode alternar entre versões usando o switch brew.

$ brew switch libfoo mycopy 

para obter a versão mycopy do libfoo.

jrwren
fonte
4

brew switch libfoo mycopy

Você pode usar brew switchpara alternar entre versões do mesmo pacote, se ele estiver instalado como subdiretórios com versão emCellar/<packagename>/

Isso listará as versões instaladas (por exemplo Cellar/sdl2/2.0.3, eu compilei Cellar/sdl2/2.0.4)

brew info sdl2

Então, para alternar entre eles

brew switch sdl2 2.0.4
brew info 

As informações agora são exibidas *ao lado do 2.0.4

Para instalar sob a Cellar/<packagename>/<version>fonte, você pode fazer, por exemplo

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

verifique onde é instalado

make install -n

se tudo parece correto

make install

Em seguida, cd $(brew --Cellar)faça a alternância entre versões.

estou a usar brew version 0.9.5

stefanB
fonte
3

Se você instalou, por exemplo, o php 5.4, ele pode ser alterado da seguinte maneira para o 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
fonte
0

se a resposta do @ simon não estiver funcionando em alguns macs, siga o processo abaixo.

Se você já instalou o swiftgen usando os seguintes comandos:

$ brew update $brew install swiftgen

siga as etapas abaixo para executar o swiftgen com a versão mais antiga.

Etapa 1: brew uninstall swiftgen Etapa 2: Navegue para: https://github.com/SwiftGen/SwiftGen/releases e faça o download do swiftgen com a versão: swiftgen-4.2.0.zip.

Descompacte o pacote em qualquer um dos diretórios.

Etapa 3: execute o seguinte em um 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

Você deve obter: SwiftGen v0.0 (Stencil v0.8.0, StencilSwiftKit v1.0.0, SwiftGenKit v1.0.1)

insira a descrição da imagem aqui

DILIP KOSURI
fonte