Come posso preparare un collegamento a una versione specifica?


158

Ho un paio di barili dello stesso pacchetto di /usr/local/Cellar/libfoocome /usr/local/Cellar/libfoo/1.0.1, /usr/local/Cellar/libfoo/HEADe/usr/local/Cellar/libfoo/mycopy

Come posso preparare un collegamento a una versione specifica?

Risposte:


310

Le informazioni sull'utilizzo:

Usage: brew switch <formula> <version>

Esempio:

brew switch mysql 5.5.29

Puoi trovare le versioni installate sul tuo sistema con info.

brew info mysql

E per vedere le versioni disponibili da installare, puoi fornire un numero di versione di dud, poiché brew risponderà utile con i numeri di versione disponibili:

brew switch mysql 0

Aggiornamento (15.10.2014):

Il brew versionscomando è stato rimosso da brew, ma, se si desidera utilizzare questo comando prima esecuzione brew tap homebrew/boneyard.

Il modo consigliato per installare una versione precedente è installare dal homebrew/versionsrepository come segue:

$ brew tap homebrew/versions
$ brew install mysql55

Per informazioni dettagliate su tutti i modi per installare una versione precedente di una formula leggi questa risposta .


1
Ho seguito il metodo di aggiornamento del 15.10.2014 e avevo bisogno di aggiungere /usr/local/Cellar/mysql55/5.5.40/bin al mio percorso. La maggior parte delle cose di Homebrew ha un link simbolico in / usr / local / bin a / usr / local / Cellar ..., ma l'installazione aggiornata non aggiunge automaticamente questo link simbolico.
Poteri

1
È ancora necessario collegare la versione installata e sovrascrivere il collegamento corrente utilizzando: brew link --overwrite mysql55
Yann VR

2
Purtroppo, brew tap homebrew/versionsora mi dà un errore Error: homebrew/versions was deprecated. This tap is now empty as all its formulae were migrated`
Juraj Martinka,

C'è un modo per capire quali versioni sono disponibili senza versionso semplicemente indovinando e controllando switch?
Kyle Strand,

1
le versioni sono obsolete, quindi penso che l'unico modo rimasto sia quello di trovare una vecchia formula e installarla da un URL diretto
SimonW

12

Ho chiesto in #machomebrew e ho imparato che puoi passare da una versione all'altra usando brew switch.

$ brew switch libfoo mycopy 

per ottenere la versione micropia di libfoo.


4

brew switch libfoo mycopy

È possibile utilizzare brew switchper passare tra le versioni dello stesso pacchetto, se è installato come sottodirectory con versione inCellar/<packagename>/

Questo elencherà le versioni installate (per esempio Cellar/sdl2/2.0.3, ho compilato Cellar/sdl2/2.0.4)

brew info sdl2

Quindi passare da una all'altra

brew switch sdl2 2.0.4
brew info 

Le informazioni ora vengono visualizzate *accanto alla 2.0.4

Per installare sotto Cellar/<packagename>/<version>da sorgente è possibile fare ad esempio

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

controlla dove viene installato

make install -n

se tutto sembra corretto

make install

Quindi, cd $(brew --Cellar)fai il passaggio da una versione all'altra.

sto usando brew version 0.9.5


3

Se è stato installato, ad esempio, php 5.4, è possibile passare a php 5.5 nel modo seguente:

$ 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

0

se la risposta di @ simon non funziona in alcuni dei Mac, segui la seguente procedura.

Se hai già installato swiftgen utilizzando i seguenti comandi:

$ brew update $brew install swiftgen

quindi seguire i passaggi seguenti per eseguire swiftgen con la versione precedente.

Passaggio 1: brew uninstall swiftgen Passaggio 2: accedere a: https://github.com/SwiftGen/SwiftGen/releases e scaricare swiftgen con la versione: swiftgen-4.2.0.zip.

Decomprimi il pacchetto in una qualsiasi delle directory.

Passaggio 3: eseguire quanto segue in un terminale:

$ 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

Dovresti ottenere: SwiftGen v0.0 (Stencil v0.8.0, StencilSwiftKit v1.0.0, SwiftGenKit v1.0.1)

inserisci qui la descrizione dell'immagine

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.