Comment puis-je brasser un lien vers une version spécifique?

158

J'ai quelques fûts du même paquet dans le même /usr/local/Cellar/libfoogenre /usr/local/Cellar/libfoo/1.0.1, /usr/local/Cellar/libfoo/HEADet/usr/local/Cellar/libfoo/mycopy

Comment puis-je créer un lien vers une version spécifique?

jrwren
la source

Réponses:

310

Les informations d'utilisation:

Usage: brew switch <formula> <version>

Exemple:

brew switch mysql 5.5.29

Vous pouvez trouver les versions installées sur votre système avec info.

brew info mysql

Et pour voir les versions disponibles à installer, vous pouvez fournir un numéro de version non conforme, car brew répondra utilement avec les numéros de version disponibles:

brew switch mysql 0

Mise à jour (15.10.2014):

La brew versionscommande a été supprimée de brew, mais si vous souhaitez utiliser cette commande, exécutez d'abord brew tap homebrew/boneyard.

La méthode recommandée pour installer une ancienne version consiste à installer à partir du homebrew/versionsdépôt comme suit:

$ brew tap homebrew/versions
$ brew install mysql55

Pour des informations détaillées sur toutes les façons d'installer une ancienne version d'une formule, lisez cette réponse .

SimonW
la source
1
J'ai suivi la méthode de mise à jour du 15.10.2014 et j'ai dû ajouter /usr/local/Cellar/mysql55/5.5.40/bin à mon chemin. La plupart des trucs Homebrew ont un lien symbolique dans / usr / local / bin vers / usr / local / Cellar ..., mais l'installation mise à jour n'ajoute pas automatiquement ce lien symbolique.
Pouvoirs du
1
Vous devez toujours lier la version installée et écraser votre lien actuel en utilisant: brew link --overwrite mysql55
Yann VR
2
Malheureusement, brew tap homebrew/versionsme donne maintenant une erreur Error: homebrew/versions was deprecated. This tap is now empty as all its formulae were migrated`
Juraj Martinka
Existe-t-il un moyen de déterminer quelles versions sont disponibles sans versionsou simplement deviner et vérifier avec switch?
Kyle Strand
1
versions est obsolète, donc je pense que le seul moyen qui reste est de trouver une ancienne formule et de l'installer à partir d'une URL directe
SimonW
12

J'ai demandé dans #machomebrew et j'ai appris que vous pouvez basculer entre les versions en utilisant le commutateur d'infusion.

$ brew switch libfoo mycopy 

pour obtenir la version mycopy de libfoo.

jrwren
la source
4

brew switch libfoo mycopy

Vous pouvez utiliser brew switchpour basculer entre les versions du même package, s'il est installé en tant que sous-répertoires versionnés sousCellar/<packagename>/

Cela répertorie les versions installées (par exemple, j'ai eu Cellar/sdl2/2.0.3, j'ai compilé Cellar/sdl2/2.0.4)

brew info sdl2

Puis basculer entre eux

brew switch sdl2 2.0.4
brew info 

Les informations s'affichent maintenant à *côté de la 2.0.4

Pour installer sous à Cellar/<packagename>/<version>partir de la source, vous pouvez faire par exemple

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

vérifier où il est installé avec

make install -n

si tout semble correct

make install

Ensuite, cd $(brew --Cellar)faites le basculement entre les versions.

j'utilise brew version 0.9.5

stefanB
la source
3

Si vous avez installé, par exemple, php 5.4, il peut être basculé de la manière suivante vers 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
la source
0

si la réponse de @ simon ne fonctionne pas dans certains mac, veuillez suivre le processus ci-dessous.

Si vous avez déjà installé swiftgen à l'aide des commandes suivantes:

$ brew update $brew install swiftgen

puis suivez les étapes ci-dessous pour exécuter swiftgen avec une version plus ancienne.

Étape 1: brew uninstall swiftgen Étape 2: Accédez à: https://github.com/SwiftGen/SwiftGen/releases et téléchargez le swiftgen avec la version: swiftgen-4.2.0.zip.

Décompressez le package dans l'un des répertoires.

Étape 3: Exécutez les opérations suivantes dans un 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

Vous devriez obtenir: SwiftGen v0.0 (Stencil v0.8.0, StencilSwiftKit v1.0.0, SwiftGenKit v1.0.1)

entrez la description de l'image ici

DILIP KOSURI
la source