Homebrew: come passare tra le versioni GCC 'gcc49' e 'gcc'?

3

Ho scioccamente disinstallato GCC 4.9 dopo brew upgrade ing in GCC 5. Tuttavia ho bisogno di entrambe le versioni e devo essere in grado di passare avanti e indietro. Ho pensato di poter fare solo brew switch 4.9.2 , ma la vecchia versione di GCC è stata installata nella cartella Cellar/gcc49/4.9.2 anziché Cellar/gcc/4.9.2 , quindi Homebrew non sa dove trovare la vecchia versione.

Come posso costringere Homebrew ad installare entrambe le versioni in Cellar/gcc ?

Cioè, ho:

brew list --versions gcc
# gcc 5.1.0
brew list --versions gcc49
# gcc49 4.9.2_1

Ma mi piacerebbe avere:

brew list --versions gcc
# gcc 5.1.0 4.9.2_1
    
posta shadowtalker 09.06.2015 - 01:41
fonte

2 risposte

3

Non puoi, quelle sono formule diverse e Homebrew non ti consente di installare una versione precedente di una formula.

La soluzione alternativa è rimuovere gcc , quindi tornare alla cronologia di Homebrew (ricorda che si tratta di un repository Git), ottenere la formula gcc com'era prima dell'aggiornamento 5.1.0, installarla, quindi aggiornare gcc per ottenere l'ultima versione.

L'aggiornamento delgcc del 5.1.0% è stato eseguito in% commit% home_home%:

$ cd $(brew --prefix)
$ git show -s 9cf3d4da1148c0a0d2f42c2fbe75f9a557339bab
commit 9cf3d4da1148c0a0d2f42c2fbe75f9a557339bab
Author: David Christenson <[email protected]>
Date:   Sat May 2 18:58:17 2015 -0600

    gcc 5.1.0

    Update to latest stable release, add option and patch for JIT, remove CLooG dependency,
    refactor language selection, add HEAD, use HTTPS mirror.

Devi eseguire il checkout del genitore:

$ git checkout 9cf3d4da1148c0a0d2f42c2fbe75f9a557339bab^

Quindi ottieni la formula 9cf3d4da1148c0a0d2f42c2fbe75f9a557339bab e salvala da qualche parte:

$ brew cat gcc > /tmp/gcc.rb

Se sei pigro, metto questa formula online qui . Ora puoi andare Ritorno al futuro :

$ git checkout master

Assicurati di aver rimosso il gcc attuale:

$ brew rm gcc

Ora installa la versione 4.9, dalla tua copia locale:

$ brew install /tmp/gcc.rb

O dalla mia copia online:

$ brew install https://gist.githubusercontent.com/bfontaine/eacd18e2c413005a7526/raw/320a73fc6e1bbf0009a08e6bd90e9d32c3409007/gcc.rb

Ora dovresti avere un'installazione GCC 4.9 funzionante. Ora, aggiorna per ottenere il 5.2:

$ brew upgrade gcc

Fatto.

$ brew ls --versions gcc
gcc 4.9.2_1 5.2.0
    
risposta data 22.07.2015 - 14:54
fonte
3

Puoi anche installare sia gcc49 che gcc5 da homebrew/versions :

brew tap homebrew/versions
brew install gcc49 gcc5

Puoi quindi fare riferimento esplicitamente a loro da gcc-4.9 e gcc-5 (o esportando variabili di ambiente come CC , CXX ecc.)

    
risposta data 08.01.2016 - 05:41
fonte

Leggi altre domande sui tag