224 votos

¿Cuáles son los pros y los contras de MacPorts, Fink y Homebrew?

Estoy migrando de Ubuntu Linux a Mac, y todo es nuevo y estoy reaprendiendo muchas cosas.

En Linux tenía el excelente apt-get para gestionar los paquetes de software. Busqué en Google una alternativa para Mac y encontré MacPorts, Fink y Homebrew.

Utilizaré este ordenador principalmente para desarrollar aplicaciones Ruby on Rails.

Entonces, ¿cuáles son las diferencias entre ellos? ¿Cuáles son las ventajas y desventajas? ¿Cuál se mantiene mejor y tiene más paquetes?

7 votos

He editado tu título para que coincida con tu pregunta real. En la mayoría de los sitios de Stack Exchange las preguntas que piden "lo mejor" están mal vistas.

1 votos

¿Por qué necesitas algo de esto no será suficiente con las gemas de rubí?

0 votos

Para saber más sobre por qué los duplicados no son siempre malos: apple.stackexchange.com/questions/11461/ también hay algunas alternativas más allí

165voto

kLy Puntos 1439

Definitivamente, Homebrew. Empecé con Fink, luego cambié a MacPorts (más feliz), luego a Homebrew (mucho, mucho más feliz). Estas son las razones por las que uso cada uno (una lista de ventajas, si se quiere):

Fink

  • Basado en Apt - si vienes de un entorno basado en Debian, siéntete como en casa
  • Paquetes binarios: los paquetes están disponibles como binarios, por lo que no hay largos tiempos de compilación. En la práctica, sin embargo, me he encontrado con que los binarios precompilados estaban siempre obsoletos y tenía que compilar cosas para mi sistema de todos modos
  • Una buena selección de paquetes

MacPorts

  • La mayor selección de paquetes/puertos
  • En general, muy actualizados
  • Bonito sistema de variantes que permite personalizar la construcción
  • Archivos de puertos fáciles e intuitivos

Homebrew

  • Muy al día
  • Aprovechamiento máximo de lo que viene con OS X. A diferencia de Fink o MacPorts, no requiere que construyas/instales ruby y librerías desde cero sólo para instalar alguna pequeña herramienta basada en Ruby.
  • Se instala en /usr/local por lo que no es necesario modificar el PATH en ningún sitio
  • Todo es propiedad del usuario, por lo que ningún paquete necesita un acceso Root potencialmente arriesgado para instalarse
  • Cada paquete instalado está limpiamente encerrado en su propia bodega para que no tengas archivos perdidos por todo el sistema, sólo symlinks de bin, man, etc.
  • Ridículamente fácil para crear sus propios archivos de fórmulas (es decir, descriptores de paquetes)
  • Ya que viene de un fondo de ruby, otra ventaja es que todo está escrito en ruby y todos los foros son simples ruby scripts

0 votos

Los comentarios no son para ampliar la discusión; esta conversación ha sido trasladado al chat . Si es necesario liberar el bloqueo, por favor, plantee esa cuestión en Pregunte a Different Meta o con una bandera.

2 votos

@bmike Es extraño que añadas "Instalaciones más rápidas gracias a los binarios precompilados" a Homebrew sólo en 2021. Esto da una impresión bastante inexacta. No hay ninguna diferencia entre Homebrew y MacPorts en este sentido (no conozco los otros dos).

0 votos

Creo que vale la pena leer mi comentario de que esto es una opinión - los tres primeros puntos para Homebrew son las principales razones por las que no lo uso. Y el resto se aplica a macports excepto que utiliza tcl en lugar de ruby

86voto

YaOzI Puntos 441

MacPorts

Es más independiente de Mac OS X, esto significa que MacPorts simplemente ignorará muchas de las bibliotecas del sistema y softwares que ya están disponibles en Mac OS X y tirar de la suya propia en su lugar que podría ser más lento cuando la utilidad que se instala requiere algún conjunto de grandes bibliotecas y softwares.

Pero este tipo de elección es más segura porque los paquetes que se instalan están menos influenciados por el procedimiento de actualización del sistema de Apple.


Homebrew

Depende más de los paquetes existentes instalados en Mac OS X, por lo que esto acelerará la instalación de paquetes y minimizará las bibliotecas redundantes.

Pero el riesgo es que los paquetes instalados se rompan debido a la actualización del sistema de Apple.

Por lo tanto, estos son los dos tipos diferentes de compensación.

Además, Homebrew se hace cargo /usr/local por defecto, con lo que a algunos no les gusta esto porque de alguna manera entra en conflicto con la tradición unix y podría causar problemas si ya has instalado algo allí (MySQL, etc.)


Aparte de estas diferencias, teniendo en cuenta los paquetes que estos dos pueden ofrecer, puedes comprobar con estos dos comandos si ya tienes instalado MacPorts/Homebrew, que te muestran los paquetes que proporcionan actualmente:

port list | wc -l
brew search | wc -l

Y descubrirás que MacPorts tiene muchos más paquetes que Homebrew.

(16917 v.s 2298 por ahora.)

28 votos

Como observación sobre el diferente número de paquetes: Homebrew decididamente no incluye paquetes para lenguajes de programación que tienen su propio sistema de empaquetado (rubygems/pip/cpan ) o para software para el que existe un instalador de OS X posiblemente más apropiado (MacTeX). Además, los duplicados y las versiones antiguas no están en el repo por defecto, sino que se incluyen en pulse repos. Compara esto con macports, que, por ejemplo, contiene un puerto IPython para todas las versiones de Python incluidas. Es un tipo de filosofía diferente que naturalmente aumenta el número de paquetes en macports.

2 votos

1 votos

@YaOz, Seguramente podrías cambiar el homebrew para usar otra cosa que no sea /usr/local ?

52voto

Anatoly Puntos 1

Sólo para añadir algunos de mis propios pensamientos que parecen verdaderos alrededor de finales de 2014 por lo menos.

El homebrew, desde hace un par de años, tiene definitivamente la ventaja en términos de mindshare. Encontrarás muchos blogs en los que la gente habla de lo contentos que están con Homebrew, normalmente por el tema de "MacPorts atrae a todo el mundo" frente a "Homebrew hace uso de lo que ya tienes".

Sin embargo, IMO, MacPorts es una bestia diferente ahora de lo que era hace un par de años. Cuando me cambié a OS X por primera vez y usaba MacPorts, la filosofía de MP era realmente frustrante porque casi todo estaba construido desde el código fuente. Una nueva instalación era particularmente dolorosa/lenta. Sin embargo, desde hace un año, y basándome únicamente en mis propias impresiones, parece que el 90% de los paquetes de MP son binarios, por lo que la instalación es ahora realmente rápida. Por lo que deduzco, Homebrew también se está moviendo en esta dirección con "Bottles", pero tengo la impresión de que la mayoría de las cosas que se instalan a través de HB en este momento se compilan desde el código fuente.

Así que, aunque sólo sea para ofrecer una opinión contraria, MacPorts parece ser realmente la opción "más rápida" en estos días. Sin embargo, la mayoría de las opiniones de la gente sobre MP parecen estar basadas en experiencias de alrededor de 2011-12 o así y realmente no tienen esto en cuenta. Tómese esto con un grano de sal, sin embargo, ya que no soy un usuario regular de HB (y es bastante doloroso usar ambos lado a lado).

Sin embargo, creo que HB tiene ventajas que significan que probablemente "ganará la guerra" a largo plazo

  • HB es todo Ruby, mientras que MacPorts, y sus fórmulas de paquetes, están escritas en TCL, que no es precisamente un lenguaje de scripting popular. Dicho esto, es muy sencillo crear tu propio archivo de puertos.
  • HB se basa en GitHub y por lo tanto parece mucho más acogedor para los nuevos contribuyentes, mientras que MacPorts alberga su propio repositorio SVN en algún lugar, creo - que básicamente refleja las diferentes edades de ambos proyectos, supongo.
  • Como se ha mencionado, el consenso general es que MacPorts ha sido sustituido por HB y, con razón o sin ella, eso atrae a más gente hacia él.

Por lo demás, YaOZl y kLy cubrieron bastante bien la diferencia principal en términos de sudo, dependencias, etc. Personalmente encuentro que MacPorts a veces conduce a algunos dolores de cabeza en términos de otros programas que no esperan nada para estar en /opt/local Por ejemplo, hay cosas que es mejor no instalar con MacPorts (por ejemplo, puedes instalar Rails a través de MacPorts, pero sería una locura no instalarlo a través de la gestión normal de Ruby). Aparte de eso, soy un gran fan de la filosofía de MacPorts de construir su propio mundo y no depender de una biblioteca preempacada de OS X - cuando funciona, y casi siempre lo hace, todo es muy simple. Que es lo que quieres de un gestor de paquetes realmente. Y como he mencionado, en este momento es bastante rápido para configurar la mayoría de las cosas.

Espero que algo de esto haya sido útil.

2 votos

"Como se ha dicho, el consenso general es que MacPorts ha sido sustituido por HB y, con razón o sin ella, eso atrae a más gente hacia él". ... esto parece una afirmación muy superficial... ser popular frente a ofrecer calidad no es lo mismo y de ninguna manera implica que la segunda sea "superada" por la primera.

4 votos

MacPorts utiliza ahora Github. Ver guide.macports.org/#project.github : "El proyecto MacPorts utiliza el sistema de control de versiones distribuido Git para gestionar el código de todo el proyecto. Nuestros repositorios maestros están alojados en GitHub. Mantenemos repositorios públicos para casi todo el código y la documentación de nuestro proyecto, incluyendo un repositorio GitHub para el propio sistema MacPorts, para los ports de MacPorts, e incluso para la guía que estás leyendo ahora mismo."

1 votos

La estrategia de MacPorts tiene más sentido con Apple siendo poco fiable sobre las librerías que distribuirá en su "próxima versión".

28voto

Wowfunhappy Puntos 33

Algo que otras respuestas (hasta ahora) no parecen haber mencionado es que MacPorts tiene un excelente soporte para las versiones heredadas de MacOS. Homebrew sólo es compatible con los sistemas operativos actualmente soportados por Apple, lo que normalmente significa las tres últimas versiones. Por ejemplo, a partir de agosto de 2020, sólo Catalina, Mojave y High Sierra son compatibles con Homebrew.

En cambio, MacPorts puede instalarse en Tiger (!), y el proyecto mantiene parches especiales para que el software siga funcionando siempre que sea posible. También mantienen una biblioteca "Legacy Support" que transporta los símbolos de las nuevas versiones de MacOS a las más antiguas; enlazar con esta biblioteca mientras se compila puede hacer que todo tipo de software nuevo funcione de repente en sistemas antiguos.

Por lo tanto, si estás ejecutando una versión antigua de MacOS, o si crees que puedes necesitar permanecer en un sistema operativo actual más allá de la fecha de caducidad de Apple, esa es definitivamente una razón para ir con MacPorts.

1voto

El uso de Brew fue completamente suave para mí, por lo que no puedo hablar de sus contras. Algunas desventajas de MacPorts:

Hay varias preguntas muy populares sobre los dos primeros puntos.

0 votos

Esta fue mi experiencia instalando ImageMagick en 10.6; brew fue muy fácil, pero no incluyó el delegado JP2. imagemagick.org/script/binary-releases.php

10 votos

Brew y macports sólo requieren las herramientas de línea de comandos de Xcode, así que lo mismo aquí.

0 votos

@Mark No estoy seguro de lo que quieres decir, pero el brew me ha funcionado perfectamente sin Xcode.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X