43 votos

Instalación de cosas: brew vs. instalador oficial - ¿cuál debe usarse?

Me pregunto cómo deben instalarse los programas en Mac. ¿A través de Homebrew o de un instalador oficial si lo hay?

Digamos que quiero instalar Node.js en mi Mac. El Guía oficial de instalación de macOS ofrece diferentes alternativas para hacerlo. Así que primero lo instalé a través de su archivo instalador oficial. Luego me cambié a Homebrew y lo instalé a través de brew install node .

Así que ahora parece que tengo dos instalaciones de Node en mi sistema. Cuando ejecuto el comando which node produce /usr/local/bin . Así que claramente la instalación oficial está a favor aquí (¿tal vez porque la instalé primero? No lo sé). La instalación del nodo desde Homebrew está en /usr/local/Cellar .

Así que mis preguntas son:

  1. ¿Debo usar Homebrew o el instalador oficial? ¿Por qué? A mí me parece que Homebrew tiene algunas ventajas sobre el instalador, como un proceso de desinstalación más fácil y una mejor posibilidad de actualizar los paquetes de software instalados.
  2. ¿Cómo puedo cambiar mi sistema de uso del /usr/local/bin Instalación del nodo en el /usr/local/Cellar ¿uno?

20voto

Douglas Puntos 10417

Hay una pregunta similar aquí en Ask Different - ¿Cuáles son los pros y los contras de MacPorts, Fink y Homebrew? - que hace una comparación de los diferentes gestores de paquetes. Es una lectura excelente y te animo a que la revises.

¿Debo usar Homebrew o el instalador oficial? ¿Por qué?

La principal diferencia entre el uso de Homebrew y el paquete de instalación es la dependencia del tiempo de compilación. Homebrew (y MacPorts) hace un excelente trabajo de gestión de todo esto. Sin embargo, con el paquete, no hay requisitos de compilación y el software está listo para funcionar.

La desinstalación ya no es un problema. Homebrew gestionará el proceso de desinstalación y manejará las dependencias en tiempo de ejecución recortándolas si es necesario. Sin embargo, con aplicaciones gratuitas como AppCleaner La eliminación completa de una aplicación no es un problema.

Así que, en definitiva, todo se reduce a tu flujo de trabajo. Si simplemente necesitas una utilidad, descarga el paquete. Si utilizas más de una y hay bibliotecas compartidas que quieres poder gestionar, opta por Homebrew.

¿Cómo puedo cambiar mi sistema del uso de la instalación del Nodo /usr/local/bin al de /usr/local/Cellar?

Cambia tu camino.

Dependiendo de su shell ( ~/.bash_profile para Bash y ~/.zprofile para Zsh) sólo tienes que añadir el directorio de la nueva utilidad (ver ZSH: .zprofile, .zshrc, .zlogin - ¿Qué va dónde? para más información). Para asegurarse de que se selecciona antes de la otra aplicación (nativa), la pones primero en la variable path. Por ejemplo, la ruta por defecto es (establecida por path_helper )

/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

En su perfil, simplemente añada la línea donde están sus binarios. Usando tu ejemplo, para añadir tu ruta:

PATH=/usr/local/Cellar:$PATH

La nueva ruta tendrá el directorio de la Bodega añadido al existente. Debido a que se antepone (viene antes) a su ruta existente, buscará en ese directorio primero. Ver el Documentación de Homebrew para conocer todos los detalles. Personalmente, uso una combinación de MacPorts e instaladores "oficiales", por lo que utilizo una estructura de directorios diferente. ES UNA OPINIÓN PERSONAL.

8voto

awy Puntos 500

¿Debo usar Homebrew o el instalador oficial? ¿Por qué?

Siempre preferiré un gestor de paquetes como brew o conda a los archivos .pkg que no proporcionan desinstaladores.

  • Se puede comprobar qué dependencias se van a instalar.
  • Fácil de limpiar.
  • No es necesario recordar si algo vino con la instalación estándar de MacOS o se instaló posteriormente.
  • No es necesario escribir la contraseña de Root.

Las herramientas que no se encuentran en la cerveza y que yo mismo construyo están construidas con CMAKE_INSTALL_PREFIX e instalado en ~/Applications . Los binarios que descargo directamente de algún sitio también se guardan en ~/Applications

Luego añado la ruta de instalación a PATH por ~/.bash_profile .


brew mantiene los binarios o bibliotecas reales en /usr/local/Cellar/<package>/<version>/bin y crea un alias en /usr/local/bin o /usr/local/lib o incluir. Y pone la ruta /usr/local/bin en su PATH variable.

Así que claramente la instalación oficial está a favor aquí (¿tal vez porque la instalé primero? No lo sé)

No, es el precedente. En PATH variable, /usr/local/bin se menciona antes /usr/bin por defecto. (Véase el instalar.sh archivo). Así, cuando se encuentra un binario, no se comprueban las próximas ubicaciones.


Lo que se ha descargado del sitio es una versión simplificada

curl "https://nodejs.org/dist/latest/node-${VERSION:-$(wget -qO- https://nodejs.org/dist/latest/ | sed -nE 's|.*>node-(.*)\.pkg</a>.*|\1|p')}.pkg" \
> "$HOME/Downloads/node-latest.pkg" \
&& sudo installer -store -pkg "$HOME/Downloads/node-latest.pkg" -target "/"

Supongo que node se instala en /usr/bin .


Así que para limpiar las cosas,

  • Ejecutar brew uninstall node
  • Obtenga el archivo xz de https://nodejs.org/dist/latest/ y comprueba su contenido.
  • Busque una por una todas las carpetas y archivos como README y changelog que coincidan con el xz que ha descargado, y bórrelos. Lo más probable es que se encuentren en /usr/bin , /usr/local/bin . Lo que ayudaría aquí es usar el buscador y ordenar por "Fecha de adición".
  • brew install node .

¿Cómo puedo cambiar mi sistema del uso de la instalación de Node /usr/local/bin a la de /usr/local/Cellar?

Después de haber realizado los pasos anteriores, y de que la instalación de la cerveza sea correcta, es decir echo $PATH contiene /usr/local/bin No tienes que hacer nada extra.

5voto

benwiggy Puntos 8

Si piensas instalar un montón de cosas, entonces puedes encontrar más útil un gestor de paquetes; si sólo hay un puñado de cosas que necesitas instalar, que tienen sus propios instaladores y para las que la actualización es fácil, entonces instalar algo como HomeBrew puede sólo añadir otra capa de complejidad.

Poner todos los huevos en la misma cesta también tiene consecuencias para la seguridad. https://medium.com/@vesirin/how-i-gained-commit-access-to-homebrew-in-30-minutes-2ae314df03ab

3voto

Joel Puntos 112

Me pregunto cómo deben instalarse los programas en Mac. ¿A través de Homebrew o de un instalador oficial si lo hay?

Otras respuestas aquí han abordado varios aspectos específicos. Limitaré mi respuesta a esta pregunta, haré algunas recomendaciones y las explicaré brevemente.

Función de un gestor de paquetes en MacOS

Creo que la mayoría de los usuarios de las distintas distribuciones de Linux y BSD han llegado a apreciar la importancia de un buen gestor de paquetes. Yo uso sobre todo distros basadas en Debian, y considero que el gestor de paquetes ( aptitude ) sea tan esencial como el propio núcleo. Con esto quiero decir que si el gestor de paquetes no existiera, o si fuera poco fiable y propenso a errores, entonces no sería un usuario de Linux.

Apple ha elegido no para proporcionar un gestor de paquetes por sí mismo . Apple ofrece una selección de código abierto se incluyen en la distribución de MacOS y se actualizan a discreción de Apple. Pero hay una enorme mundo de software de código abierto disponible gran parte de ella es de excelente calidad y ofrece ventajas sustanciales sobre el software de código cerrado .

Para más de 2-3 paquetes, creo que la mayoría de los usuarios están mejor servidos usando un gestor de paquetes . Algunos paquetes soportan muy bien la instalación autónoma en MacOS. Algunos incluso admiten actualizaciones, y unos pocos también admiten la eliminación. Pero estos serán inevitablemente diferentes, paquete-único procedimientos, y el mantenimiento se convierte en una tarea que requiere mucho tiempo.

Comparación de los gestores de paquetes más utilizados en MacOS

Creo que hay tres gestores de paquetes de amplio uso en MacOS:

Algunos no estarán de acuerdo con mi designación de git como gestor de paquetes. No voy a discutir que en un sentido estricto git es software de control de versiones pero siento que cuando git se acopla a enormes colecciones de repositorios de código abierto y gratuito Las diferencias parecen desvanecerse en una jerga oscura.

He intentado Homebrew hace varios años, y la mayoría de mis opiniones se formaron gracias a esa experiencia. Sencillamente, a pesar de que tenía cierta experiencia con gestores de paquetes cuando probé por primera vez Homebrew Me pareció que era incómodo y poco fiable. Ubicación de los paquetes, "El uso intermitente de sudo " La jerga que se refiere a la elaboración de la cerveza: "elaborar = hacer " , lo que es un "barril" ?, y el uso de Ruby (que es genial si eres un usuario, pero yo no lo soy), todo ello contribuyó a su falta de atractivo. Pero a algunos les encanta, y para esa gente, sólo diré: "¡Que siga la fiesta, Garth!

Poco después, decido dar MacPorts un intento, y lo he estado usando desde entonces. Creo que esto se debe principalmente al hecho de que me parece racional, sencillo y fácil de usar. Ofrece mucha profundidad para situaciones inusuales que surgen de vez en cuando, pero llegar a ser productivo con él sólo requiere unos minutos y un puñado de comandos; se puede alcanzar la competencia en unas pocas horas. En resumen, MacPorts es mi recomendación sin reservas para un gestor de paquetes puro.

Unas palabras sobre git y por qué creo que es útil "gestor de paquetes" . Como herramienta de control de versiones, git es un software complejo que requiere mucho esfuerzo para dominarlo. Puede hacerse una idea de ello consultando los numerosos man páginas para git y sus diversas filiales. Sin embargo, su uso para "instalar" y actualizar paquetes alojados en un git depósito ( GitHub por ejemplo) sólo requiere unos pocos comandos. Creo que es útil principalmente en dos situaciones:

  1. Para paquetes (script, documentación, etc) que no están disponibles en MacPorts
  2. Paquetes para los que desea realizar cambios de codificación y compilarlos usted mismo

2voto

Deecee Puntos 39

En cuanto a su primera pregunta ¿Debo usar Homebrew o el instalador oficial? Siento la necesidad de añadir una desventaja de usar Homebrew que no he visto aquí ni en el otra pregunta Compatibilidad a largo plazo.

Tomemos como ejemplo El Capitán, que se instala en los Macs que no pueden actualizarse más. Mientras que esos Macs todavía pueden funcionar bien, Homebrew (como Apple) ha dejado de ser compatible con esta versión del sistema operativo . Ahora bien, si intentas brew install algo en El Capitán podría funcionar, podría fallar, o podría iniciar un largo procedimiento de compilación y entonces fallar.

Descubrí que no vale la pena probar este proceso cada vez, así que ahora en la máquina vieja instalo todo con el instalador oficial.

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