MacPorts vs. Fink vs. Homebrew [duplicado]

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 la calidad o el rendimiento?

También está Rudix .
¿ Esta pregunta anterior responde a sus necesidades?

Respuestas (4)

Fink existe desde al menos 2001. Fink y MacPorts son administradores de paquetes que quieren ser "ortogonales" al sistema, es decir, instalan su propia versión de python, perl, bibliotecas, compiladores, etc. en sus propios árboles (/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 rompía cosas cuando Apple actualizaba sus propias cosas.

Por lo que entiendo, Homebrew quiere estar más "integrado" con el sistema, usa 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 uno pueda instalar KDE con él, pero no lo he probado.

Un punto para Fink vs. MacPorts: hace unos años, el proyecto Fink proporcionó paquetes binarios; es decir, podría 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 las razones que mencioné anteriormente. En cuanto a la calidad: nunca he instalado Homebrew, y entre Fink y MacPorts suelo preferir el que no estoy usando actualmente.

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

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

Pensé que debías estar equivocado acerca de KDE, pero efectivamente es verdad. 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. Ojalá eso se arregle algún día.
@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 siguiente actualización, toda la instalación se estropeó; por lo que esperaría que sea aún más frágil con Homebrew. Pero si lo hacen bien algún día, retiro todo lo que dije.
La instalación de Homebrew en /usr/local es la misma razón por la que tampoco lo uso. Siguiendo la filosofía tradicional de Unix, solo debo poner cosas en /usr/local.. Un administrador de paquetes debe administrar algún otro prefijo.
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.
@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.
Si entiendo esto correctamente, los cambios recientes en Homebrew pueden solucionar los problemas de colisión de paquetes.
Macports ahora descargará binarios en las configuraciones más comunes

Yo diría que las principales diferencias son:
providencia, resultado y método de distribución.

El detalle más importante será que verifique si el sistema que elija contiene paquetes para el software que desea. 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 compila 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 iniciar gcc. Además, existen algunos paquetes binarios, pero es posible que no siempre encuentre la última versión para su sistema. Provino de Darwin, el BSD de código abierto de Apple basado en el kernel OS X que dejó de distribuirse. Instala paquetes /opt/localque probablemente no serán tocados por otros paquetes de instalación o actualizaciones del sistema.
  • Fink , re: finches, siendo 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 es que puede encontrar paquetes binarios de manera confiable... suponiendo que tenga un paquete original. repositorio que contiene archivos binarios para su versión actual del sistema operativo. También surgió de la base de usuarios de Darwin, pero probablemente fue más popular entre aquellos que venían 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 /usr/local/binya.
  • Homebrew es una especie de sistema de ports en concepto, pero escrito en ruby. No proviene de un mundo de sistema operativo independiente y fue diseñado para usuarios de Mac OS X (los otros son utilizados y probados minuciosamente por el mismo). A mediados de 2014, intenta compilar básicamente todos los paquetes (los llaman fórmula), aunque algunos están disponibles en formato binario llamados botellas, y puedes crear un depósito de botellas para compartir en tu grupo social si te inclinas por semi -estandarizar sus cadenas de herramientas y las de sus amigos (lo mismo para otros sistemas). En el lado positivo, se compila utilizando la mayor cantidad de bibliotecas que probablemente ya tenga que provienen de Apple. Creo que no necesita Xcode para que funcione en la mayoría de los casos, pero "lo admite y lo recomienda". Puede instalar cada elemento en su propio prefijo,/usr/localCreo que se puso en marcha y es más reciente que los demás. Personalmente, descubrí que usé este más porque rara vez necesito paquetes interdependientes, y no tengo claro 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, gems 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 enfocado en la portabilidad entre arquitecturas que probablemente era el mejor sistema de puerto candidato para comenzar a admitir otras plataformas también, lo cual tiene. Es similar en mi descripción a Macport, pero no lo he usado (excepto en NetBSD), y creo que se instala /pero crea y mantiene paquetes en /pkg. Probablemente haya muchos paquetes (como 12k) y es posible que un 20 % no se construya, o que la última versión de la fuente no se parchee 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 integradas en perl y algunas dependencias. Es sobre todo una buena manera de mantener múltiples versiones de perl, y evita convenientemente la necesidad de otros sistemas de paquetes más generales (para su propósito). Pero, por supuesto, eso también tiene cpan y cpanminus .

Puede encontrar 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 incorporado go install... etc.)

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/…

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, haciéndolo más liviano y menos ortogonal, y también porque Rubyist reescribió 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 es más probable que se tope con una pared de ladrillos.

Hazte estas preguntas:

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

Cualquier respuesta afirmativa sugiere que debe elegir MacPorts. Brew es menos costoso si instala relativamente pocos paquetes comunes, pero Brew no manejará las complejidades tan bien. Brew contamina /usr/localque también podría desear para instalaciones manuales. En realidad, hay argumentos más detallados para MacPorts pero, de nuevo, probablemente no se apliquen si respondió que 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 mínimo de Linux, entonces en realidad podría hacerlo mejor con Brew.

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 marcos se empaquetan en /Library/Frameworks mientras que las cosas que instala usted mismo a través de Unix normal ./configure, make, make install usarán /usr/local/bin, etc. , y utilidades como MacPorts usarán /opt/ y posiblemente empaquetarán frameworks en su ~/Library/Frameworks/ personal.

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