41 votos

MacPorts vs. Fink vs. Homebrew

Siempre he utilizado MacPorts para instalar y mantener mis compiladores GCC y otros programas. Ahora he escuchado sobre Fink y Homebrew. Parece que estas dos utilidades están ganando fuerza en la comunidad de Mac, pero no entiendo la diferencia entre ellas.

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

3 votos

También está Rudix.

4 votos

¿Aborda esta pregunta anterior tus necesidades?

32voto

Banjer Puntos 1209

Fink ha estado presente desde al menos 2001. Fink y MacPorts son gestores de paquetes que quieren ser "ortogonales" al sistema, es decir, instalan su propia versión de python, perl, bibliotecas, compiladores, etc. en sus propios directorios (/sw para Fink, /opt/local para MacPorts). La razón de esto es que no tienen control sobre lo que hace Apple con su software, y ocasionalmente causaba problemas cuando Apple actualizaba sus propias cosas.

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

Una ventaja de Fink vs. MacPorts: hace algunos años, el proyecto Fink proporcionaba paquetes binarios; es decir, se podían descargar e instalar los paquetes sin tener que compilarlos uno mismo. Su gestor de paquetes aún tiene esa capacidad, solo que no ha habido binarios disponibles durante mucho tiempo. No sé si eso ha cambiado desde entonces.

En resumen: sin la parte binaria, Fink y MacPorts son muy similares. Deberían tener más paquetes disponibles que Homebrew, mientras que Homebrew debe 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.

Así que si estás satisfecho con MacPorts, simplemente quédate con él.

P.D. La razón por la que nunca probé Homebrew es que uso algunos paquetes precompilados. Estos generalmente también se instalan en /usr/local/bin y similares, lo cual solo traería problemas.

0 votos

Pensé que debías estar equivocado sobre KDE, pero efectivamente es cierto. Una vez tenía paquetes para ello, pero aparentemente hay algo en la forma en que está construido KDE que es incompatible con la jerarquía de Homebrew. Con suerte eso se arreglará algún día.

1 votos

@echristopherson ¿Entonces alguna vez tuvo KDE? Una sorpresa para mí. Pero KDE parece ser bastante frágil, una vez lo instalé con Fink y en la siguiente actualización, toda la instalación se desordenó; así que sería de esperar que sea aún más frágil con Homebrew. Pero si alguna vez lo hacen correctamente, me retracto de todo lo que dije.

4 votos

Homebrew installing in /usr/local is the same reason I don't use it either. Sticking to traditional unix philosophy, only I should put stuff in /usr/local.. A package manager should manage some other prefix.

9voto

Richard Puntos 223

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

El detalle más importante será que verifiques si el sistema que elijas contiene paquete(s) para el software que deseas. El conteo aproximado de paquetes es: 19k Macports, 22k Fink, 3k Homebrew, 10k pkgsrc.

  • Macports, antiguamente Darwin ports parece ser un sistema de puertos de estilo BSD como pkgsrc que obtiene el código fuente, lo parchea, lo compila e instala. Si es muy similar a pkgsrc, hará esto utilizando 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, hay algunos paquetes binarios por ahí, pero es posible que no encuentres siempre la versión más reciente para tu sistema. Provino de Darwin, el sistema BSD de Apple basado en el núcleo de OS X que dejó de distribuirse. Instala paquetes en /opt/local que probablemente no se verán afectados por otros paquetes de instalación o actualizaciones del sistema.
  • Fink, en relación con los pinzones siendo el tema de estudio de Charles Darwin, es un sistema de paquetes basado en el Administrador de Paquetes Debian, lo que significa que utiliza dpkg y apt-get, el principal beneficio es que puedes encontrar de manera confiable paquetes binarios... siempre y cuando tengas un repositorio de paquetes que contenga binarios para la versión actual de tu sistema operativo. También salió de la base de usuarios de Darwin pero probablemente es más popular entre aquellos que vienen de Debian Linux [para mac o PPC] en busca de un soporte de hardware un poco más estable... mientras duró. Instala paquetes en /sw por razones de no sobrescribir o ser sobrescrito por lo que pueden instalar otros instaladores. También algo sobre la búsqueda de rutas del compilador y la ruta PATH predeterminada que ya contiene /usr/local/bin.
  • Homebrew es una especie de sistema de puertos en concepto, pero escrito en ruby. No proviene de un mundo de sistema operativo independiente y fue pensado para los usuarios de Mac OS X (los otros son ampliamente utilizados y probados por los mismos). A mediados de 2014 intenta construir básicamente cada paquete (los llaman fórmulas) aunque algunos están disponibles en forma binaria llamados "botellas", y puedes hacer un repositorio de botellas para compartir en tu grupo social si estás inclinado a estandarizar tú y las herramientas de tus amigos (lo mismo para otros sistemas). En el lado positivo, se construye utilizando tantas de las bibliotecas que probablemente ya tienes que provienen de Apple. Creo que no necesitas Xcode para que funcione en la mayoría de los casos, pero lo "admite y recomienda". Puedes instalar cada elemento en su propio prefijo, pero el predeterminado es el relativamente integrado /usr/local. Creo que fue impulsado y es más reciente que los otros. Personalmente, descubrí que he usado este más porque rara vez necesito paquetes interdependientes, y no estoy seguro de cómo es el soporte de homebrew para Mac. Homebrew tiene como objetivo obligarte a utilizar administradores de paquetes más adecuados para el software que proviene de 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 basó en el sistema de puertos de FreeBSD. NetBSD estaba tan enfocado en la portabilidad entre arquitecturas que probablemente era el mejor candidato para comenzar a admitir otros plataformas también, lo cual ha hecho. Es similar en mi descripción a Macport, pero no lo he usado (excepto en NetBSD), y creo que se instala en / pero construye y mantiene los paquetes en /pkg. Probablemente hay muchos paquetes (como 12k) y aproximadamente el 20% puede no construirse, o, la última versión del código fuente puede no parchar con el último parche mantenido. Por eso, los paquetes binarios son mi preferencia con este tipo de sistemas.

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

Puedes encontrar administradores similares para tu 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?)

0 votos

Los conteos de paquetes son engañosos porque Homebrew intencionalmente no incluye ciertas clases de paquetes - ver más en apple.stackexchange.com/questions/32724/…

7voto

user13192 Puntos 130

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

Tenemos menos motivo para una instalación ortogonal ahora que Mac OS X se ha vuelto menos loco. Brew, por otro lado, fue creado para integrarse mejor con Mac OS X, haciéndolo más ligero y menos ortogonal, y también porque los rubyistas reescriben todo.

En la práctica, MacPorts es un poco más complicado, pero casi siempre funciona, mientras que Brew es más sencillo pero más probable que encuentre un obstáculo.

Hazte estas preguntas:

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

Cualquier respuesta afirmativa sugiere que deberías elegir MacPorts. Brew tiene menos sobrecarga si instalas relativamente pocos y paquetes comunes, pero Brew no manejará las complejidades tan bien. Brew contamina /usr/local que tal vez quieras para instalaciones manuales también. De hecho, hay argumentos más detallados a favor de MacPorts pero nuevamente probablemente no aplican si respondiste no.

Por el contrario, si respondiste sí pero tu máquina principal funciona con Linux, y tu Mac es solo un juguete que ejecuta software de Linux mínimo, entonces probablemente te irá mejor con Brew.

2voto

Pliny the ill Puntos 455

Pero como nota al margen, nada relacionado con Apple OS X se instalaría en /usr/local/bin. Utilizan /usr/lib , /usr/bin detrás de escena y los frameworks se empaquetan en /Library/Frameworks, mientras que las cosas que instalas tú mismo a través de los comandos Unix regulares ./configure, make, make install utilizarán /usr/local/bin, etc. y utilidades como MacPorts utilizarán /opt/ y posiblemente empaquetarán frameworks en tu ~/Library/Frameworks/ personal.

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

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