¿Debo usar Fink, MacPorts, Homebrew u otra cosa para la administración de paquetes de MacOS? ¿Cuáles son las más populares actualmente? ¿Hay jugadores nuevos que valgan la pena, como Rudix?

Si bien tanto MacPorts como Homebrew son administradores de paquetes para Mac, y si bien ambos son efectivos, difieren en su intención y comprensión de la diferencia que puede ayudarlo a decidir cuál es la mejor para su situación.

En pocas palabras, Homebrew hace todo lo posible para actuar en armonía con el software ya presente en Darwin, la variante BSD de Unix enviada por Apple. MacPorts, por otro lado, hace todo lo posible para asegurarse de que está ejecutando una versión pura del software portado independientemente de lo que ya haya instalado Apple (o cualquier otra persona).

Como ejemplo, si un puerto requiere Python 2.7.x, Homebrew intentará que funcione con la versión de Python que ya está instalada en su Mac, mientras que MacPorts realizará una instalación por separado de la versión exacta de Python requerida por el puerto. incluso si es similar a lo que ya está allí.

Como resultado, brew instala menos software y es más tolerante con las diferencias de versión, mientras que MacPorts le brinda implementaciones más precisas de los puertos al costo de una mayor complejidad de la versión.

Si está transfiriendo a su Mac herramientas de Unix a diario y le importa más “solo funciona” y la facilidad de integración, vaya con Homebrew. Si está transfiriendo cosas que requieren una versión precisa del software de soporte por razones de rendimiento o confiabilidad, es probable que obtenga mejores resultados con MacPorts.

Ambos tienen sus advertencias porque al final del día, un administrador de paquetes está haciendo lo mejor que puede con un montón de dependencias de versiones interrelacionadas que son difíciles de administrar. Si bien es posible instalar algunos puertos con uno y otros con la alternativa, no recomiendo usar ambos en la misma máquina, ya que se confunden sobre qué versiones de software del sistema ya están “instaladas”.

También recomiendo usar Homebrew (homebrew.github.io). Las principales ventajas de Homebrew sobre los otros dos productos son, en mi opinión:

  • Se instala en cualquier lugar, ya sea en todo el sistema o en su propio directorio personal. No es necesario ser administrador para usar y administrar una instalación de Homebrew.
  • Homebrew intenta usar las bibliotecas y aplicaciones que vienen instaladas con Mac OS X. Puede instalar sus propias copias si lo desea, pero en la mayoría de los casos no es el comportamiento predeterminado.

Estoy de acuerdo con Richard en que los paquetes de Homebrew están más actualizados que los de MacPorts o Fink. Esto podría deberse al hecho de que Homebrew está alojado en GitHub y eso facilita que las personas contribuyan al proyecto.

Debido a que Homebrew se está vinculando a cosas que se instalan con Mac OS X, es probable que maneje una actualización de nivel de sistema operativo mejor que los otros dos productos. Sin embargo, eso no quiere decir que después de actualizar el sistema operativo no tendrá que volver a compilar algunos paquetes.

Rudix presenta una solución casi opuesta a la proporcionada por Homebrew. Proporcionan binarios precompilados para todas las versiones compatibles de MacOS que admiten, la instalación de paquetes es rápida. Se diferencian en que Rudix pretende vincular estáticamente todas las bibliotecas al binario, eliminando las dependencias entre paquetes y las dependencias en MacOS. A diferencia de Homebrew, necesitará privilegios de administrador para instalar estos paquetes.

Tener todo estáticamente vinculado significa que es menos probable que las cosas se rompan al actualizar su versión de MacOS y que, en su mayor parte, ningún paquete Rudix depende de ningún otro paquete Rudix. Al igual que MacPorts y Fink, es probable que los paquetes sigan a Homebrew y los que instales ocupen más espacio en el disco, pero para la mayoría de los paquetes, este aumento de tamaño no será una gran cosa. La instalación de paquetes también será mucho más rápida que Homebrew, ya que solo están colocando binarios en su máquina.

El Proyecto MacPorts es similar a Homebrew en que los paquetes se compilan en su máquina. Alojado por Apple en Mac OS Forge, tiene una gran cantidad de paquetes y en su mayoría están actualizados. Está modelado a la ligera después de la utilidad de puertos BSD, creo que la mayoría de sus paquetes implican la descarga y compilación del código fuente.

MacPorts instala todo en un directorio del sistema (es decir, / opt / local) y debe ser un administrador para administrar MacPorts. Intenta instalar sus propias copias de cualquier biblioteca o aplicación y esto puede hacer que la instalación de paquetes menores tome un tiempo bastante largo. Esto también introduce algo de fragilidad, por ejemplo, cuando se lanzaron paquetes de Snow Leopard que se basaban en Python no se instalarían porque el paquete de Python en MacPorts debía actualizarse para instalarse correctamente en Snow Leopard.

Por último, hay Fink. Fink también está inspirado en los puertos BSD, pero proporciona binarios para muchos de sus paquetes (como Rudix). Fink se instala en un directorio del sistema (es decir, / sw) y debe ser administrador para administrar los paquetes. Al igual que MacPorts, quiere instalar sus propias copias de casi todo. A diferencia de los MacPorts, es posible que esto no tarde tanto, ya que algunos de los paquetes son binarios precompilados.

Fink ( http://www.finkproject.org ) es un administrador de paquetes para Mac OS X que en realidad se basa en las herramientas de Debian dpkg y apt-get, y admite paquetes binarios. Sin embargo, una advertencia importante: Fink no tiene actualmente ningún paquete binario para Snow Leopard (Mac OS X 10.6).

Homebrew ( http://mxcl.github.com/homebrew/ ) parece ser la novedad en la gestión de paquetes de Mac OS X. Al igual que MacPorts, construye todo desde la fuente, pero a diferencia de Fink y MacPorts, intenta usar las herramientas y bibliotecas que vienen con Mac OS X siempre que sea posible. (Si esta es una característica o un error es discutible. Consulte, por ejemplo, https://trac.macports.org/wiki/F …)