2010-10-21 30 views
16

Me preguntaba cómo puede añadir una variante a un puerto si ya ha instalado el puerto. Por ejemplo, instalé el puerto 'vim' y me gustaría volver y agregar la variante python25. ¿Debo eliminar vim y volver a instalarlo? Esto es solo un ejemplo, realmente me gustaría saber el proceso para hacer esto para cualquier puerto.Añadiendo variantes en Puertos Mac

Gracias por cualquier ayuda, Greg

Respuesta

25

Solo se puede activar una variante de un puerto MacPorts al mismo tiempo. Sin embargo, en la terminología MacPorts, múltiples variantes y/o versiones de un puerto pueden ser installed simultáneamente. De ellos, a lo sumo uno es active, los demás son inactive. Si necesita alternar ocasionalmente entre variantes, puede activar una variante específica según sea necesario. Eso también desactivará automáticamente cualquier puerto activo en conflicto. Por ejemplo, he aquí una hipotética vim ejemplo (no probado completamente!):

$ 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

Estoy confundido. Como una variante es una opción de tiempo de compilación vim + python26 crea vim con soporte python26. A continuación, lo vuelve a compilar con el soporte de python31. ¿Cómo mantiene ambas opciones de compilación? ¿Es esta una función de puerto Mac? – wonbyte

+3

No soy un experto en el funcionamiento interno, pero básicamente guarda copias de cada puerto 'installed' (mira en'/opt/local/var/macports/software/'). El proceso de activación de un puerto crea enlaces duros desde los archivos hasta las ubicaciones normales ('/ opt/local/bin', etc.). La desactivación de un puerto elimina esos enlaces duros. Entonces, el proceso es rápido y no requiere copias adicionales de cada archivo, solo las entradas del enlace fijo. –

+0

Veo cómo funciona. ¡Muchísimas gracias por la ayuda! – wonbyte

-1

Sí es necesario volver a instalar. No hay forma de agregar una variante después, ni tiene sentido hacerlo. Las variantes afectan la configuración durante el proceso de compilación.

9

Creo macports soporta de forma nativa ahora con la opción --enforce-variants. Entonces en el caso anterior, el comando sería

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