2010-10-21 7 views
16

Mi chiedevo come è possibile aggiungere una variante a una porta se la porta è già stata installata. Ad esempio, ho installato la porta "vim" e vorrei tornare indietro e aggiungere la variante python25. Devo cancellare vim e reinstallarlo? Questo è solo un esempio, mi piacerebbe davvero conoscere il processo per farlo per qualsiasi porta.Aggiunta di varianti nelle porte Mac

Grazie per qualsiasi aiuto, Greg

risposta

25

Solo una variante di una porta MacPorts può essere attiva in qualsiasi momento. Tuttavia, nella terminologia MacPorts, più varianti e/o versioni di una porta possono essere installed contemporaneamente. Di questi, al massimo uno è active, gli altri sono inactive. Se è necessario alternare occasionalmente tra varianti, è possibile attivare una variante specifica secondo necessità. Ciò disattiverà automaticamente anche tutte le porte attive in conflitto. Ad esempio, ecco un ipotetico vim esempio (non completamente testato!):

$ sudo port install vim +python26 
$ sudo port clean vim 
$ sudo port install vim +python31 
$ sudo port echo installed |grep vim 
vim       @7.3.21_0+python26 
vim       @7.3.21_0+python31 
$ sudo port activate vim @7.3.21_0+python26 
# ... edit with Python 2 
# ... 
$ sudo port activate vim @7.3.21_0+python31 
# ... edit with Python 3 
# ... 
+0

Sono confuso. Poiché una variante è un'opzione di compilazione, vim + python26 costruisce vim con il supporto a python26. Lo stai quindi ricompilando con il supporto per python31. Come mantiene entrambe le opzioni di compilazione? Si tratta di una funzionalità Mac Port? – wonbyte

+3

Non sono un esperto di internals ma essenzialmente conserva copie di ogni porta 'installed' (guardate in'/opt/local/var/macports/software/'). Il processo di attivazione di una porta crea collegamenti fisici dai file presenti nelle posizioni normali ('/ opt/local/bin' ecc.). La disattivazione di una porta rimuove quei collegamenti fisici. Quindi il processo è veloce e non richiede copie extra di ogni file, solo le voci del collegamento duro. –

+0

Vedo come funziona. Grazie mille per l'aiuto! – wonbyte

-1

Si ha bisogno di reinstallare. Non c'è modo di aggiungere una variante in seguito - né ha senso farlo. Le varianti influenzano le impostazioni durante il processo di compilazione.

9

Credo macports supporta nativamente questa ora con l'opzione --enforce-variants. Quindi nel caso precedente, il comando sarebbe

$ sudo port upgrade --enforce-variants vim +python25