Estoy migrando de Ubuntu Linux a Mac, y todo es nuevo y estoy volviendo a aprender muchas cosas.
En Linux tuve el excelente apt-get para administrar paquetes de software. Busqué en Google una alternativa en Mac y encontré MacPorts, Fink y Homebrew.
Usaré esta computadora principalmente para desarrollar aplicaciones Ruby on Rails.
Entonces, ¿cuáles son las diferencias entre ellos? ¿Cuáles son las ventajas y desventajas? ¿Cuál está mejor mantenido y tiene más paquetes?
Definitivamente cerveza casera. Empecé con Fink, luego cambié a MacPorts (más feliz), luego a Homebrew (mucho, mucho más feliz). Estas son mis razones para usar cada uno (una lista profesional, por así decirlo):
/opt/local
/usr/local
(Intel) o /opt/homebrew
(Apple Silicon)/opt/pkg
Es más independiente de Mac OS X, esto significa que MacPorts simplemente ignorará muchas de las bibliotecas del sistema y el software que ya está disponible en Mac OS X y , en su lugar, extraerá el suyo propio , lo que podría ser más lento cuando la utilidad que instale requiera un conjunto de grandes bibliotecas y software.
Pero este tipo de elección es más segura porque los paquetes que instaló están menos influenciados por el procedimiento de actualización/actualización del sistema de Apple.
Depende más de los paquetes instalados de Mac OS X existentes, por lo que 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/actualización del sistema de Apple.
Entonces, estos son los dos tipos diferentes de compensación.
Además, Homebrew se hace cargo de /usr/local de forma predeterminada, lo que a algunas personas no les gusta porque de alguna manera entra en conflicto con la tradición de Unix y puede causar problemas si ya ha instalado algo allí (MySQL, etc.)
Además de estas diferencias, teniendo en cuenta los paquetes que estos dos pueden ofrecer, puede verificar con estos dos comandos si ya tiene instalado MacPorts/Homebrew, que le muestran los paquetes que proporcionan actualmente:
port list | wc -l
brew search | wc -l
Y descubrirá que MacPorts tiene muchos más paquetes que Homebrew.
(19399 vs 3583 el 13 de mayo de 2016)
/usr/local
?/usr/local/
sea "no compatible" o "desaconsejado".Solo para agregar algunos de mis propios pensamientos que parecen verdaderos alrededor de finales de 2014 al menos.
Homebrew, desde hace un par de años, definitivamente tiene la ventaja en términos de participación mental. Encontrará muchos blogs con personas que hablan de lo mucho más felices que están con Homebrew, generalmente debido a todo el asunto de "MacPorts atrae a todo el mundo" frente a "Homebrew hace uso de lo que ya tiene".
Sin embargo, en mi opinión, MacPorts es una bestia diferente ahora que hace un par de años. Cuando me cambié por primera vez a OS X y estaba usando MacPorts, la filosofía MP era realmente frustrante porque casi todo estaba construido desde la fuente. Una nueva instalación fue particularmente dolorosa/lenta. Sin embargo, durante el último año más o menos, 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 realmente rápida ahora. Por lo que deduzco, Homebrew también se está moviendo en esta dirección con "Botellas", pero tengo la impresión de que la mayoría de las cosas que instale a través de HB en este momento se compilarán desde la fuente.
Entonces, aunque solo sea para ofrecer una opinión compensatoria, MacPorts parece ser en realidad la opción "más rápida" en estos días. Sin embargo, las opiniones de la mayoría de las personas sobre MP parecen estar basadas en experiencias de alrededor de 2011-12 y realmente no toman esto en cuenta. Sin embargo, tómate esto con un grano de sal, ya que no soy un usuario habitual de HB (y es bastante doloroso usar ambos al mismo tiempo).
Sin embargo, creo que HB tiene ventajas que significan que probablemente "ganará la guerra" a largo plazo.
De lo contrario, YaOZl & kLy cubrieron bastante bien la principal diferencia en términos de sudo, dependencias, etc. Personalmente, encuentro que MacPorts a veces genera algunos dolores de cabeza en términos de que otros programas no esperan que haya nada /opt/local
, las cosas se instalan con permisos de raíz, etc. y hay algunas cosas que generalmente es mejor no instalar con MacPorts (por ejemplo, puede instalar Rails a través MacPorts, pero sería una locura no instalarlo a través de la administración normal de gemas de Ruby). Aparte de eso, aunque soy un gran admirador de la filosofía de MacPorts de construir su propio pequeño mundo y no depender de una biblioteca OS X preempaquetada, cuando funciona, y en su mayoría lo hace, todo es muy simple. Que es lo que realmente quieres de un administrador de paquetes. Y como mencioné, en este momento es bastante rápido configurar la mayoría de las cosas.
Espero que algo de eso haya sido útil.
Algo que otras respuestas (hasta ahora) no parecen haber mencionado es que MacPorts tiene un excelente soporte para versiones heredadas de macOS. Homebrew solo es compatible con los sistemas operativos actualmente compatibles con Apple, lo que generalmente significa las últimas tres versiones. Por ejemplo, a partir de febrero de 2022, solo Monterrey, Big Sur y Catalina son compatibles con Homebrew.
Por el contrario, MacPorts se puede instalar en Tiger (!), y el proyecto mantiene parches especiales para mantener el software funcionando siempre que sea posible. Esto incluye una biblioteca de "Soporte heredado" que respalda las funciones de las versiones más nuevas de macOS a las más antiguas; enlazar con esta biblioteca mientras se compila puede hacer que una variedad de software nuevo funcione repentinamente en sistemas más antiguos.
Entonces, si está ejecutando una versión anterior de macOS, o si cree que puede necesitar permanecer en un sistema operativo actual más allá de la fecha de vencimiento de Apple, probablemente debería optar por MacPorts.
Estoy en China y visitar github a menudo falla, lo que hace que la instalación de brew sea bastante complicada. Conozco algunos brew mirror en China, así que planteé un problema contra brew Proporcionar una manera fácil de cambiar los orígenes de homebrew . Lo arreglaron en 2.3 . Pero incluso con eso, la instalación de brew todavía no se suaviza, por ejemplo, presioné varias veces que después de la instalación, brew no puede encontrar ninguna fórmula.
qiulang@qiulangdeMacBook-Air redis % brew info wget
Error: No available formula with the name "wget".
==> Searching for a previously deleted formula (in the last month)...
Error: No previously deleted formula found.
qiulang@qiulangdeMacBook-Air redis % brew info redis
Error: No available formula with the name "redis".
==> Searching for a previously deleted formula (in the last month)...
Error: No previously deleted formula found.
Ahora sé que necesito "volver a tocar", pero durante esos momentos simplemente no sabía la razón exacta, excepto que la instalación de brew no fue exitosa.
Por desesperación, cambié macports y funciona bastante bien hasta ahora.
Brew fue completamente fácil de usar para mí, por lo que no puedo hablar sobre sus contras. Algunas desventajas de MacPorts:
Hay varias preguntas muy populares sobre los dos primeros puntos.
bmike