MacPorts vs. Fink vs. Homebrew [duplicado]

39

Esta pregunta ya tiene una respuesta aquí:

Siempre usé MacPorts para instalar y mantener mis compiladores GCC y otros programas. Ahora he oído hablar de Fink y Homebrew. Parece que estas dos utilidades están ganando terreno en la comunidad Mac, pero no entiendo la diferencia entre ellas.

¿Cuál es la principal diferencia entre MacPorts, Fink y Homebrew? ¿Hay alguna diferencia en calidad o rendimiento?


fuente
3
También está Rudix .
lhf
44
¿ Esta pregunta anterior responde a tus necesidades?
bmike

Respuestas:

30

Fink ha existido desde al menos 2001. Fink y DarwinPorts son gestores de paquetes que quieren ser "ortogonal" al sistema, es decir, se instalan su propia versión de python, perl, bibliotecas, compiladores, etc., en los árboles propios (/ SW para Fink, / opt / local para MacPorts). La razón de esto es que no tienen control sobre lo que Apple hace con su software, y ocasionalmente rompió las cosas cuando Apple actualizó sus propias cosas.

Por lo que entiendo, Homebrew quiere estar más "integrado" con el sistema, utiliza las bibliotecas que proporciona Apple e instala sus cosas en /usr/local/binotras carpetas estándar. Supongo que eso significa que la elección del software es más limitada con Homebrew, no puedo imaginar que se pueda instalar KDE con él, pero no lo he intentado.

Un punto para Fink vs. MacPorts: hace unos años, el proyecto Fink proporcionó paquetes binarios; es decir, puede descargar e instalar los paquetes sin compilarlos usted mismo. Su administrador de paquetes todavía tiene esa capacidad, solo que no ha habido binarios disponibles durante mucho tiempo. No sé si eso ha cambiado mientras tanto.

En resumen: sin las cosas binarias, Fink y MacPorts son muy similares. Deberían tener más paquetes disponibles que Homebrew, mientras que Homebrew debería ocupar menos espacio en disco por los motivos que mencioné anteriormente. En cuanto a la calidad: nunca he instalado Homebrew, y entre Fink y MacPorts generalmente prefiero el que no estoy usando actualmente.

Entonces, si está satisfecho con MacPorts, simplemente quédese con él.

PD: La razón por la que nunca probé Homebrew es porque uso algunos paquetes precompilados. Por lo general, estos también se instalan en / usr / local / bin y similares, lo que solo causa problemas.

Percival Ulises
fuente
Pensé que debes estar equivocado acerca de KDE, pero efectivamente es cierto. Alguna vez tuvo paquetes para él, pero aparentemente hay algo en la forma en que se construye KDE que es incompatible con la jerarquía de Homebrew. Esperemos que eso se arregle algún día.
echristopherson
1
@echristopherson ¿Entonces tuvo KDE una vez? Una sorpresa para mi. Pero KDE parece ser bastante frágil, una vez lo instalé con Fink, y en la próxima actualización, toda la instalación se estropeó; así que esperarías que sea aún más frágil con Homebrew. Pero si lo hacen bien algún día, retomaré todo lo que dije.
Percival Ulises
44
La instalación de Homebrew en / usr / local es la misma razón por la que tampoco la uso. Siguiendo con la filosofía tradicional de Unix, solo yo debería poner cosas en / usr / local. Un administrador de paquetes debería administrar algún otro prefijo.
Jason
Personalmente uso MacPorts, pero la última vez que revisé (que hace un tiempo) Fink tenía una colección mucho más grande de paquetes disponibles.
HairOfTheDog
1
@ Jason ¿Esto también es cierto para una máquina de un solo usuario? Acabo de instalar Homebrew y espero no arrepentirme. Sin embargo, no tengo muy claro cómo Apple maneja la raíz y los usuarios con privilegios de administrador. Soy el único usuario en mi sistema.
haziz
8

Diría que las principales diferencias son:
Providencia, resultado y método de distribución.

El detalle más importante será que verifiques si el sistema que eliges contiene paquetes para el software que deseas. Los recuentos de paquetes son aproximadamente: 19k Macports, 22k Fink, 3k Homebrew, 10k pkgsrc.

  • Macports , anteriormente puertos de Darwin, parece ser un sistema de puertos de estilo BSD como pkgsrc que obtiene el código fuente, lo parchea, lo construye y lo instala. Si es muy parecido a pkgsrc, lo hará usando scripts de shell. Solía ​​depender de las herramientas proporcionadas por Xcode, pero eso comenzó a causar problemas, por lo que ahora también puede arrancar gcc. Además, hay algunos paquetes binarios, pero es posible que no encuentre la última versión de su sistema cada vez. Provenía de Darwin, el BSD de código abierto de Apple basado en el núcleo OS X que dejó de distribuirse. Instala paquetes a los /opt/localque probablemente no se verán afectados por otros paquetes de instalación o actualizaciones del sistema.
  • Fink , re: pinzones, que es el tema del estudio de Charles Darwin, es un sistema de paquetes basado en Debian Package Manager, lo que significa que presenta el uso dpkgy apt-getel beneficio principal de que puede encontrar paquetes binarios de manera confiable ... suponiendo que tenga un paquete ascendente repositorio que contiene binarios para su versión actual del sistema operativo. También salió de la base de usuarios de Darwin, pero probablemente sea más popular entre aquellos que vinieron de Debian Linux [para mac o PPC] en busca de un soporte de hardware un poco más estable ... mientras duró. Instala paquetes /swpor razones de no sobrescribir o sobrescribir lo que otros instaladores podrían instalar. También algo sobre las rutas de búsqueda del compilador y el PATHcontenido predeterminado que /usr/local/binya contiene .
  • Homebrew es una especie de sistema de puertos en concepto, pero escrito en rubí. No proviene de un mundo de sistema operativo independiente y estaba destinado a usuarios de Mac OS X (los demás son utilizados y probados por el mismo). A partir de mediados de 2014, intenta construir básicamente todos los paquetes (los llaman fórmula), aunque algunos están disponibles en forma binaria llamados botellas, y puede hacer un depósito de botellas para compartir en su grupo social si está inclinado a semi -estandarizar las cadenas de herramientas de usted y su amigo (lo mismo para otros sistemas). En el lado positivo, se construye utilizando tantas de las bibliotecas como probablemente ya tenga que provienen de Apple. Creo que no necesita Xcode para que funcione en la mayoría de los casos, pero lo "apoya y recomienda". Puede instalar cada elemento en su propio prefijo,/usr/localCreo que se inició y es más reciente que los demás. Personalmente descubrí que usé este más porque rara vez necesito paquetes interdependientes, y no estoy claro sobre qué tan bien lo admite mac homebrew. Homebrew tiene como objetivo obligarlo a usar administradores de paquetes más apropiados para el software que se origina en un administrador estrechamente acoplado, como cpan, gemas y similares.
  • pkgsrc estaría disponible para Mac OS X, tiene paquetes binarios y proviene de NetBSD que lo mantiene y, a su vez, lo basa en el sistema de puertos de FreeBSD. NetBSD estaba tan centrado en la portabilidad entre arquitecturas que probablemente era el mejor sistema de puertos candidato para comenzar a admitir otras plataformas también, lo cual es cierto. Es similar en mi descripción a Macport, pero no lo he usado (excepto en NetBSD), y creo que se instala /pero construye y mantiene paquetes /pkg. Probablemente haya una gran cantidad de paquetes (como 12k) y un 20% puede no compilarse, o la última versión de la fuente puede no parchearse con el último parche mantenido. Es por eso que los paquetes binarios son mi preferencia con este tipo de sistemas.

También he usado perlbrew, que es una especie de homebrew para perlaplicaciones creadas en perl y algunas dependencias. Es principalmente una buena forma de mantener múltiples versiones de perl, y convenientemente niega la necesidad de otros sistemas de paquetes más generales (para su propósito). Pero, por supuesto, eso también tiene cpan y cpanminus .

Es posible que encuentre administradores similares para su propio mini-entorno (como vundle para vim o gem para ruby, npm para node.js, pypm o pip para python, go's built-in go install... etc?)

dlamblin
fuente
Los recuentos de paquetes son engañosos porque Homebrew intencionalmente no incluye ciertas clases de paquetes - vea más en apple.stackexchange.com/questions/32724/…
Dan Dascalescu
5

Fink y MacPorts son competidores directos en el sentido de que instalan un sistema ortogonal. Fink perdió mucho terreno frente a MacPorts hace varios años. No estoy completamente seguro de por qué ahora, pero MacPorts manejó casi todo mejor.

Tenemos menos razones para una instalación ortogonal ahora que Mac OS X se ha vuelto menos loco. Brew fue creado para integrarse mejor con Mac OS X, lo que lo hace más liviano y menos ortogonal, y también porque Rubyist reescribe todo.

En la práctica, MacPorts es un poco más complicado, pero MacPorts casi siempre funciona, mientras que Brew es más simple pero tiene más probabilidades de toparse con una pared de ladrillos.

Hágase estas preguntas:

  • ¿Utiliza muchas herramientas del ecosistema de Linux?
  • ¿Necesitas múltiples versiones?
  • ¿Experimentas mucho con nuevas herramientas?
  • ¿Utiliza herramientas matemáticas / ciencias / bibliotecas u otras herramientas inusuales?

Cualquier respuesta afirmativa sugiere que debe elegir MacPorts. Brew tiene menos gastos generales si instala relativamente pocos paquetes comunes, pero Brew no manejará las complejidades también. La cerveza contamina /usr/localtambién puede querer para instalaciones manuales. En realidad, hay argumentos más detallados para MacPorts, pero de nuevo probablemente no se apliquen si respondió no.

Por el contrario, si respondió que sí, pero su máquina principal ejecuta Linux y su Mac es solo un juguete que ejecuta un software Linux mínimo, entonces en realidad podría mejorar con Brew.

Jeff Burdges
fuente
2

Pero como nota al margen, nada relacionado con Apple OS X se instalaría en / usr / local / bin. Usan / usr / lib, / usr / bin detrás de escena y los frameworks se empaquetan en / Library / Frameworks mientras que las cosas que se instalan a través de Unix ./configure, make, make install usarán / usr / local / bin, etc. , y las utilidades como MacPorts usarán / opt / y posiblemente empaquetarán marcos para su ~ / Library / Frameworks / personal.

Mi recomendación es permanecer con MacPorts si eso es a lo que estás acostumbrado. Básicamente, la principal diferencia es que MacPorts usa un sistema que se parece más a la verdadera implementación del árbol de puertos Unix / BSD con puertos de FreeBSD, mientras que Fink usa aplicaciones portadas desde los archivos Debian de Linux y usa el mismo sistema de administrador de paquetes que Linux Debian.

Chris
fuente