2010-10-21 24 views
16

Je me demandais comment vous pouvez ajouter une variante à un port si vous avez déjà installé le port. Par exemple, j'ai installé le port 'vim' et je voudrais revenir en arrière et ajouter la variante python25. Ai-je besoin de supprimer vim et de le réinstaller? Ceci est juste un exemple, je voudrais vraiment savoir le processus pour le faire pour n'importe quel port.Ajout de variantes dans les ports Mac

Merci pour toute aide, Greg

Répondre

25

Une seule variante d'un port MacPorts peut être active à un moment donné. Cependant, dans la terminologie MacPorts, plusieurs variantes et/ou versions d'un port peuvent être installed simultanément. Parmi ceux-ci, au plus un est active, les autres sont inactive. Si vous devez parfois alterner entre les variantes, vous pouvez activer une variante spécifique si nécessaire. Cela désactivera également automatiquement tout port actif en conflit. Par exemple, voici un exemple hypothétique vim (non vérifié!):

$ 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

Je suis confus. Comme une variante est une option de compilation, vim + python26 construit vim avec le support de python26. Vous le recompilez ensuite avec le support de python31. Comment conserve-t-il les deux options de compilation? Est-ce une fonctionnalité Mac Port? – wonbyte

+3

Je ne suis pas un expert sur les internes, mais essentiellement il conserve des copies de chaque port 'installed' (regardez dans/opt/local/var/macports/software /'). Le processus d'activation d'un port crée des liens durs à partir des fichiers vers les emplacements normaux ('/ opt/local/bin' etc.). La désactivation d'un port supprime ces liens matériels. Donc, le processus est rapide et ne nécessite pas de copies supplémentaires de chaque fichier, seulement les entrées de liens durs. –

+0

Je vois comment cela fonctionne. Merci beaucoup pour l'aide! – wonbyte

-1

Vous avez besoin de réinstaller. Il n'y a aucun moyen d'ajouter une variante après - et cela n'a même pas de sens de le faire. Les variantes affectent les paramètres pendant le processus de construction.

9

Je crois macports soutient nativement maintenant avec l'option --enforce-variants. Donc, dans le cas ci-dessus, la commande serait

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