General nerdness

Ivan Reyes – Trying to blag is never easy, that's why I have no posts xD

Homebrew Potter y Las Dependencias de la Mac

Oct 30, 2018


Homebrew Logo

Entonces quieres aprender a programar, pero todos tus amigos te dicen que no lo vas a poder hacer en tu Mac, que necesitas Windows o Linux. Pero Windows no te gusta y aunque fue divertido instalar Linux la verdad es que preferirías usar macOS.

A lo que tus amigos se refieren es que te va ser difícil instalar las cosas que necesitas, o que tal o cual herramienta de desarrollo no es tan fácil de manejar en macOS. Pero en realidad lo que tu necesitas es Homebrew y hoy lo vamos a instalar [ Musiquita cool de intro ]

¿Qué es Homebrew?

Es The missing package manager for macOS … o en su traducción horrible El gestor de paquetes para macOS que faltaba. Eso quiere decir que es una herramienta que puedes utilizar para instalar programas. En cierto sentido es similar al App Store, pero en la consola y más cool porque Software Libre.

Okey okey… pero ¿Qué es Homebrew?

Cuando empiezas a programar te das cuenta que necesitas dependencias. A veces necesitas instalar una versión de un lenguaje que Apple no instaló por default, por ejemplo Python 3.

A veces necesitas una librería porque la que viene en macOS no es compatible con nada, como OpenSSL.

A veces quieres utilizar herramientas que viste en Stack Overflow pero te das cuenta que aunque la tienes instalada, parece que en realidad no es la misma, como gnu-sed.

Homebrew te ayuda a instalar y manejar todas estas cosas. Instalar es eso, instalar. Manejar quiere decir controlar qué versión estás utilizando, cómo la ve tu sistema y poderte mover entre versiones diferentes.

¿Cómo empiezo?

¡Empieza con abrir la terminal! Y utilízala todas las veces que puedas hasta sentirte cómodo, va a ser tu mejor herramienta cuando aprendas a programar.

Terminal App

Una vez que tengas abierta la terminal, instala Homebrew escribiendo este comando. Lo puedes copiar y pegar aunque como recomendación general nunca copies y pegues cosas que no entiendes en tu terminal.

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

En algún momento te va a pedir tu password, cuando haya terminado la instalación, listo! Ya tienes homebrew.

Inicio de la instalación

Fin de la instalación

Este comando descarga un script de ruby y lo ejecuta. Lo descarga con esta parte $(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install) y lo ejecuta con /usr/bin/ruby -e. ¡Puedes revisar el script que se ejecuta visitando ese link!

Instalando dependencias

¿Y ahora qué? Te voy a enseñar cosas que yo tengo instaladas con Homebrew (y se queda como ejercicio de casa buscar para qué sirve cada una :laughing:). Después vamos a instalar Python y Git, y finalmente te voy a mostrar algunos comandos simples de Homebrew.

Mis dependéncias

Como puedes ver, tengo muchas cosas instaladas, sobre todo librerías de C (que empiezan generalmente con el prefijo lib). También tengo instaladas algunas cosas para las que podrías utilizar un instalador, como Docker (después podemos hablar de Docker) MongoDB y Wine; porque a veces es más fácil manejarlas mediante un administrador de dependencias.

Instalando Python y Git

No voy a discutir mucho sobre Python o Git en este post, pero son herramientas que probablemente encuentres muy útiles en tu camino de aprender a programar.

Para instalar Python primero vamos a hacer una búsqueda para asegurarnos de que estamos instalando la versión que queremos. Para eso podemos correr:

brew search python

Y si, aunque se llama Homebrew el comando se llama brew… porque es más corto supongo.

Búsqueda con brew

Como puedes ver hay muchas cosas que aparecen con el nombre Python. Nosotros queremos el paquete python a secas porque esa es la versión más reciente, la 3.7.0 pero podemos asegurarnos con el comando:

brew info python

Steam

Además de ver la versión, nos muestra qué va a instalar e incluso las dependencias que tiene Python. Estas dependencias se instalarán automáticamente. Para instalarlo corre el comando:

brew install python

Podemos repetir todo el proceso con Git:

brew search git
brew info git
brew install git

Y si por alguna razón quisieras desinstalar cualquiera de estas cosas:

brew uninstall python
brew uninstall git

Una nota más sobre la instalación. Es importante que cuando instalas algo te fijes si hay una sección de “Caveats”. Esa sección te dará información sobre pasos adicionales que puedes tomar para integrar mejor tu dependencia al sistema. O notas sobre cómo utilizar lo que acabas de instalar

Upgrade

Actualizando y desinstalando dependencias

La última ventaja de utilizar Homebrew es que es muy fácil mantener tus dependencias actualizadas. Solo utiliza el comando:

brew upgrade

Upgrade

¿Puedo instalar Google Chrome con Homebrew?

¡Sí! Homebrew por default instala proyectos open source, pero hay taps. Un tap es una lista de dependencias que puedes instalar. Por default tienes homebrew/core y si activas homebrew/cask puedes instalar cosas como Google Chrome, Atom.io, ¡o incluso Steam!!

A estos paquetes muchas veces se les llama “binarios” y Cask tiene muchos de ellos para elegir.

Para activarlo solo corre este comando:

brew tap caskroom/cask

Y para instalar Steam y Chrome:

brew cask install steam
brew cask install google-chrome

Nota que todo lo que sea parte de Casks lo tienes que instalar con brew cask install si no te vas a encontrar con un error.

Steam

Chrome

¿Y qué es MacPorts?

MacPorts es un proyecto bastante viejo del cual Homebrew tomó mucha inspiración. No es la cosa más fácil del mundo de instalar y tampoco de utilizar.

Entonces ¿por qué la mencionas?

Porque si buscas mac dependency manager todavía te puede salir MacPorts y aunque no tiene nada de malo si lo encuentras y te gusta, tampoco creo que sea el mejor lugar por dónde comenzar.

¿Qué sigue?

Puedes buscar más comandos de Homebrew en la documentación https://docs.brew.sh/Manpage como list y doctor que son comandos muy útiles. Y en algún momento hasta podrías hacer tu propio paquete que se instala mediante Homebrew. ¡Pero lo que sigue en realidad es programar!

– Ivan Reyes