Estoy migrando de Ubuntu Linux a Mac, y todo es nuevo y estoy volviendo a aprender muchas cosas.
En Linux tenía el excelente apt-get para administrar paquetes de software. Busqué en Google una alternativa en Mac y encontré sobre 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 se mantiene mejor y tiene más paquetes?
Comentarios
- Edité tu título para que coincida con tu pregunta real. En la mayoría de los sitios de Stack Exchange, la pregunta sobre » los mejores » están mal vistos.
- ¿Por qué necesitas de estas ‘ t ruby ‘ s gemas serán suficientes?
- para obtener más información sobre por qué los duplicados no son ‘ t siempre es malo: apple.stackexchange.com/questions/11461/… también hay algunas alternativas más allí
- Nunca lo usé yo mismo, pero quizás una comparación con pkgin también sería útil.
Respuesta
Definitivamente Homebrew. Empecé con Fink, luego cambié a MacPorts (más feliz), luego Homebrew (mucho, mucho más feliz). Estas son mis razones para usar cada uno (una lista profesional si lo desea):
Fink
- Basado en Apt: siéntase como en casa si viene de un país basado en Debian entorno
- Paquetes binarios: los paquetes están disponibles como binarios, por lo que no requieren tiempos de compilación largos. Prácticamente, aunque he descubierto que los binarios precompilados siempre estaban desactualizados y tenía que compilar cosas para mi sistema de todos modos
MacPorts
- A diferencia de homebrew do no depende de la biblioteca de MacOS que puede cambiar en el futuro.
- Instale todo en / opt / local
- Nice sistema de variantes que le permite personalizar la compilación
- Archivos de puerto fáciles e intuitivos, también le permite agregar los suyos propios
- admite muchas versiones de OSX y macos que se remontan a Tiger, incluidas las versiones de PowerPC. otra respuesta
Homebrew
- Aprovechamiento máximo de lo que viene con OS X. A diferencia de Fink o MacPorts, no requiere que construyas / instales Ruby y bibliotecas desde cero solo para instalar alguna pequeña herramienta basada en Ruby.
- Se instala en
/usr/local
- Instalar sin acceso de root
- Cada paquete instalado está limpio en un espacio aislado en su propia bodega para que no Tenga archivos perdidos en todo su sistema, solo enlaces simbólicos de bin, man, etc.
- Tiene guías y automatización para crear sus propios archivos de fórmulas (es decir. descriptores de paquetes)
- Escrito en ruby y todas las fórmulas son scripts de ruby concisos
- Se instala más rápido debido a binarios precompilados
pkgin
- Instalaciones más rápidas debido a binarios precompilados
- Todo lo instalado en / opt / pkg /
- respaldado por la comunidad pkgsrc y Joyent
- Conocido por trabajar en NetBSD, DragonFly BSD, Solaris, Debian, Mac OS X, Minix
https://pkgsrc.joyent.com/install-on-osx/
Comentarios
- Los comentarios no son para una discusión extensa; esta conversación ha sido movida al chat . Si es necesario liberar el bloqueo, plantee ese problema en Ask Different Meta o con una bandera.
Respuesta
MacPorts
Es más independiente de Mac OS X, esto significa que MacPorts simplemente ignorará muchas de las bibliotecas y software del sistema que ya disponible en Mac OS X y extrae uno propio , lo que podría ser más lento cuando la utilidad que instalas requiere un conjunto de grandes bibliotecas y software.
Pero este tipo de elección es más segura porque los paquetes que instalaste están menos influenciados por la actualización / actualización del sistema de Apple procedimiento.
Homebrew
Depende más de los paquetes instalados de Mac OS X existentes, por lo que esto acelerará la instalación de paquetes y minimizará las bibliotecas redundantes.
Pero el riesgo es que los paquetes instalados podrían no funcionar n 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 por defecto, con lo que a algunas personas no les gusta esto porque de alguna manera entran en conflicto con la tradición de Unix y pueden causar problemas si ya ha instalado algo allí (MySQL, etc.)
Aparte de estas diferencias, considerando los paquetes que estos dos pueden ofrecer, puede verificar con estos dos comandos si ya tiene MacPorts / Homebrew instalado, 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)
Comentarios
- Como comentario 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 el software para el que se puede decir que está disponible un instalador de OS X más apropiado (MacTeX). Además, los duplicados y las versiones anteriores no están en el repositorio predeterminado, pero se incluyen en repositorios alternativos tap . Compare esto con macports, que, por ejemplo, contiene un puerto IPython para todas las versiones de Python incluidas. Es una especie de filosofía diferente que naturalmente aumenta la cantidad de paquetes en macports.
- ¡Excelente enlace! terrychay.com/article/macports-vs-homebrew.shtml ¡Gracias!
- @YaOz, seguramente podrías cambiar homebrew para usar algo más que
/usr/local
? - @Pacerier Creo que cualquier otro lugar que no sea
/usr/local/
es «no admitido» o «desalentado» .
Responder
Solo para agregar algunos de mis propios pensamientos que parecen verdaderos alrededor de finales de 2014 al menos .
Homebrew, hace un par de años, definitivamente tiene la ventaja en términos de mentes compartidas. Encontrará muchos blogs con personas que hablan de lo felices que están con Homebrew, generalmente debido a todo el asunto de «MacPorts atrae en 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 de lo que era hace un par de años. Cuando me cambié por primera vez a OS X & estaba usando MacPorts, la filosofía de MP era realmente frustrante porque casi todo se creó desde la fuente. Una nueva instalación fue particularmente dolorosa / lenta. Sin embargo, durante el año pasado, basándome únicamente en mis propias impresiones, parece que el 90% de los paquetes 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 «Bottles», 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 contraria, MacPorts parece ser el «más rápido» de pción 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 o algo así & 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 juntos).
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 paquete, están escritos en TCL, que no es … exactamente un lenguaje de programación popular. bastante simple para crear su propio archivo portfile.
- HB se basa en GitHub & por lo que parece mucho más acogedor para los nuevos contribuyentes, mientras que MacPorts aloja su propio repositorio SVN en algún lugar Creo, que básicamente refleja las diferentes edades de ambos proyectos, supongo.
- Como se mencionó, el consenso general es que MacPorts ha sido reemplazado por HB &, con razón o erróneamente, eso atrae a más personas.
De lo contrario, YaOZl & kLy cubrió bastante bien la principal diferencia en términos de sudo, dependencias, etc. I descubro que MacPorts a veces genera algunos dolores de cabeza en términos de otros programas que no esperan que haya nada en /opt/local
, cosas que se instalan con permisos de root, etc. & hay algunas cosas que generalmente es mejor no instalar con MacPorts (p. ej. puede instalar Rails a través de MacPorts, pero estaría loco si no lo instalara 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 mundo pequeño & sin depender de alguna 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.
Comentarios
- » Como se mencionó, el consenso general es que MacPorts ha sido reemplazado por HB &, con razón o sin ella, eso atrae a más personas hacia él. » … esto se siente como una declaración muy superficial …ser popular que proporcionar calidad no es lo mismo y de ninguna manera implica que el segundo sea » reemplazado » por el primero.
- MacPorts ahora usa Github. Consulta guide.macports.org/#project.github : » El proyecto MacPorts utiliza el sistema de control de versiones distribuido de 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, incluido un repositorio de GitHub para el propio sistema MacPorts, para los puertos MacPorts e incluso para la guía que estás leyendo en este momento. »
Responder
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 que actualmente son compatibles con Apple, lo que generalmente significa las últimas tres versiones. Por ejemplo, a partir de agosto de 2020, solo Catalina, Mojave y High Sierra son compatibles con Homebrew.
Por el contrario, MacPorts se puede instalar en Tiger (!), Y el proyecto mantiene parches especiales para mantener el software trabajando siempre que sea posible. También mantienen una biblioteca » Legacy Support » que respalda los símbolos de las nuevas versiones de macOS a las más antiguas; vincular con esta biblioteca mientras se compila puede hacer que todo tipo 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 después de la fecha de vencimiento de Apple, esa es definitivamente una razón para ir con MacPorts.
Respuesta
Brew fue completamente suave para que lo use, por lo que no puedo decir sus contras. Algunas desventajas de MacPorts:
- usted tiene que instalar Xcode desde el sitio de desarrollador de Apple , por lo tanto, debe tener una cuenta de desarrollador de Apple (que ahora requiere tarjeta de crédito) y descargar casi 3,5 GB de material;
- si el puerto 873 (rsync) está bloqueado por su firewall, «tendrá que configurar manualmente el protocolo HTTPS ;
- el servidor HTTP (S) desde el cual se descargan los paquetes es (a menudo) extremadamente lento (menos de 20 KiB / s ayer; probado con un par de Gigabit muy confiables conexiones en diferentes países) y puede fallar con el error Operación demasiado lenta. Se transfirieron menos de 1024 bytes / seg durante los últimos 60 segundos , lo que te obliga a rehacer todo desde cero.
Hay varias preguntas muy populares sobre los dos primeros puntos.
Comentarios
- Esta fue mi experiencia instalar ImageMagick en 10.6; la preparación fue muy fácil, pero no ‘ t incluir el delegado JP2. imagemagick.org/script/binary-releases.php
- brew y macports solo requieren herramientas de línea de comandos de Xcode, así que lo mismo aquí.
- @Mark I ‘ No estoy seguro de lo que quieres decir, pero brew funcionó perfectamente para mí sin Xcode.
- Tú ‘ Necesitará un compilador para brew y MacPorts, que se puede instalar mediante las herramientas de línea de comandos de Xcode. No necesitará la aplicación Xcode.
- Olvidé lo feo que es sincronizar esa cosa cuando está detrás de un firewall … ¡ay!