2009-08-29 9 views
42

Construir desde el origen fuera de macports es muy fácil. Construir con macports toma para siempre y parece congelar el sistema operativo cada cierto tiempo. Es este comportamiento típico? Aunque parece una buena herramienta de empaque para os x, si tengo que pasar por este dolor cada vez durante cada instalación, creo que prescindiré de ello.¿Por qué Macports toma FOREVER para compilar paquetes simples?

+3

No considero que esta pregunta se responda a continuación. Contraste el rendimiento de macports contra cualquier otro gestor de paquetes, como apt-get, debe ser del orden de 100 veces más lento. – user363349

+2

Si no tiene una prueba real, no debe usar cantidades arbitrarias "100 veces". – anddam

+0

@ user363349: No es justo comparar macports con apt-get; Los repositorios de ecosistemas de Linux suelen tratarse en binarios precompilados. Macports compila todo el tiempo desde la fuente. La diferencia de velocidad puede explicarse por el enfoque. –

Respuesta

35

Si está ejecutando en un procesador Intel Core 2 Duo puede duplicar la velocidad de su construye cambiando la opción de configuración MacPorts se encuentra aquí:

/opt/local/etc/macports/macports.conf

# Number of simultaneous make jobs (commands) to use when building ports 
buildmakejobs  2 

estaba bebiendo yo cuando descubrí esto después reconstruí gcc;)

esta opción le permitirá utilizar tanto de la CPU para la construcción de paquetes.

+0

gracias por la propina! ¡el mío también fue comentado! – ennuikiller

+7

¿Alguien puede confirmar esto? El comentario en este campo para mí dice "Este valor # puede ajustarse a 0 por lo que el número de puestos de trabajo maquillaje simultáneas se establecerá en # el número de núcleos de CPU que se detecta de forma automática, o el número de GB # de física memoria más uno, lo que sea menor "... así que a menos que la detección de la CPU se rompa o tengas <2 gigas de RAM, ya debería estar haciendo lo correcto. – Trenton

+2

Pruébelo usted mismo. Como lo he hecho. Abra el Monitor de actividad, haga clic en CPU y observe la diferencia de actividad de cada núcleo cuando varíe la opción durante marcas. – galaxywatcher

8

"congelar el sistema operativo"? ¿Puedes ser mas específico? ¿Qué paquetes intentabas construir sobre qué versión de OS X en qué máquina?

En mi experiencia, DarwinPorts builds generalmente funciona correctamente en casi cualquier configuración compatible, en mi caso, que van desde un 256 G3 Pismo (año 2000) que se ejecuta 10.4 a pesar de que una reciente doble núcleo Intel iMac de 10.5. Sin embargo, debe ser paciente: puede llevar mucho tiempo, especialmente si hay muchos paquetes dependientes, que es uno de los inconvenientes de utilizar un administrador de paquetes como MacPorts o Fink. El aspecto positivo es que generalmente tiene un entorno mucho más controlado y, con la esperanza, probado que si instaló paquetes individuales de la fuente usted mismo. Y, si aún no lo ha hecho, asegúrese de actualizar a los últimos MacPorts: acaba de lanzarse la versión 1.8.0 y tiene algunas mejoras importantes, incluida una mejor compatibilidad con las versiones universales.

+0

1 ... a meter su cuchara con Ned, si lo que se está construyendo tiene una gran cantidad de dependencias de paquetes (y los paquetes tienen dependencias, etc.), tendrás que esperar un largo tiempo para conseguir su material compilado. –

+0

por congelar el sistema operativo me refiero a que deja de responder por unos segundos. Estoy ejecutando os x 10.6 en un Core Duo 2 macbook pro con 4 gb mem. Más que suficiente para manejar incluso los procesos más intensos de CPU/mem. Estoy comparando macports a yum, que he usado en sistemas Linux desde hace bastante tiempo, y de nuevo macports sólo parece mucho menos ágil .... – ennuikiller

+0

El ordenador se convierte periódicamente que no responde porque mucha construye e instala tener patrones muy ráfagas IO y está embotellando en IO de disco. No tiene nada que ver con la CPU o la memoria. No es tan malo con yum porque yum está instalando paquetes binarios precompilados, no construyéndolos. –

4

no me importa la espera de Mac Puertos para construir desde las fuentes en los últimos paquetes. Pero, ¿por qué no aprovechar todo este poder de procesamiento y ofrecer a los usuarios la opción de permitir que la compilación se cargue automáticamente en MacPorts o, aún mejor, que sea hash y ofrecida de igual a igual a otros usuarios de MacPorts que pueden elegir una opción 'turbo'.

+7

Probablemente porque en la actualidad la gente (yo incluido) es demasiado paranoico como para confiar en un binario de un extraño. Lo curioso es que la mayoría de nosotros nunca se molestan en buscar en el código fuente que construimos todos los días .... –

+2

me encontré con esta pregunta cuando se pregunta por qué se construye más que instala un binario, ya que esta "respuesta", se pregunta ... En cuanto a confíe, bueno, si confiamos en el árbol de fuentes de macports, entonces no veo ninguna razón para no confiar, por ejemplo, en una compilación de cosas ejecutada por macports.Eso requiere que los macports tengan recursos (hardware, tiempo, etc.) para construir cosas (para varias plataformas), pero ... ¿quizás hay alguna forma intermedia? Sé que preferiría las instalaciones binarias, siempre que exista cierto grado comparable de confianza. Seguramente no es menos seguro (inherentemente, de todos modos) que la fuente que uno no mira. – lindes

+0

No es p2p, pero este es el caso desde 2.0, no todos los paquetes están disponibles debido a la disponibilidad de licencias y recursos (el buildbot necesita procesar el archivo antes de que el archivo esté disponible). Los archivos están firmados, cf. http://packages.macports.org – anddam

5

DarwinPorts utilizados para sólo construyen desde la fuente y esto puede dar lugar a una diferencia de varios órdenes de magnitudo en comparación con un sistema de paquetes que traiga binarios. Considérese como ejemplo el caso de un gran paquete de alguna manera que se lleva a pocas horas para ser construido y comparar esto a la hora de descargarlo como un archivo que tiene un tamaño de unas pocas decenas de MB.

DarwinPorts utiliza herramientas de Apple para construir y sólo añade una sobrecarga insignificante al mismo tiempo de construcción que se podrían obtener fuera de MacPorts, cuanto mayor sea el paquete, cuanto menor sea la diferencia. Si experimenta una gran diferencia al crear un programa fuera de MP, debe presentar un ticket en el issue tracker con los detalles.

Dicho esto veo la cuestión es bastante antiguo, desde 2.0 Hay soporte para archivos binarios cf. Changelog - hay un repositorio macosforge apoyado con buildbots que producen archivos con firma y el valor predeterminado es ir a buscar estos archivos binarios en lugar de construir desde la fuente (que se puede forzar el uso de la bandera -s). La experiencia actual del usuario es más similar a la de los administradores binarios como apt-get, con la capacidad de cambiar las opciones de configuración y creación con bastante facilidad.

Cuestiones relacionadas