Homebrew, gestión de paquetes en Mac OS X
2011-09-22 - 3 minutos
Homebrew es un sistema de gestión de paquetes de software para Mac OS X como podría ser un apt en sistemas GNU/Linux pero sin distribución de paquetes precompilados.
Gestión de paquetes en Mac OS X
Apple propone el App Store como sistema para obtener software y mantenerlo actualizado. Evidentemente solo las aplicaciones publicadas en el Apple Store pueden ser mantenidas de esta manera. Y aún así la oferta es bastante limitada si nos fijamos en software Unix.
Otras opciones disponibles son MacPorts o Fink. Todos ellas tienen un planteamiento parecido y diferente al mismo tiempo. MacPorts y Fink plantean mantener todo el software a parte de la base de Mac OS X mientras que Homebrew prefiere utilizar al máximo la base propuesta por el sistema y construir únicamente lo que falte.
Este planteamiento tiene sus ventajas y sus inconvenientes:
- Al necesitar menos dependencias externas es más rápido.
- Al utilizar las dependencias del sistema las cosas se pueden romper cuando el sistema las actualice.
Por otro lado MacPorts y Fink, aunque más laboriosos tienen un entorno más controlado y por tanto más estable.
En resumen, depende de las necesidades de cada uno. En este artículo veremos el uso de habitual de Homebrew que probablemente sea el más ligero para empezar a probar.
Requisitos
Necesitamos el entorno de compilación de Mac OS X. Aunque algunas utilidades vienen ya instaladas de fábrica en el sistema, es recomendable (y en algunos casos indispensable) instalar Xcode. Lo podemos encontrar en el App Store.
Instalación de Homebrew
Desde la web oficial podemos acceder a la guía de instalación. En la práctica se reduce a ejecutar (a fecha de este artículo):
/usr/bin/ruby -e "$(curl -fsSL https://raw.github.com/gist/323731)"
La instalación se realiza en /usr/local por lo que o bien lo ejecutamos como administrador o bien nos damos de permisos para escribir en ese directorio.
Actualizar el listado de fórmulas
Homebrew utiliza el concepto de fórmula. Este concepto transmite la idea de cómo se obtiene un programa, es decir, sus dependencias y sus pasos de compilación.
El listado de fórmulas se mantiene en los repositorios de GitHub. Esto nos permite crear forks del proyecto, añadir nuestras fórmulas y demás. Veamos cómo se actualiza el listado:
brew update
remote: Counting objects: 141, done.
remote: Compressing objects: 100% (63/63), done.
remote: Total 122 (delta 93), reused 88 (delta 59)
Receiving objects: 100% (122/122), 13.71 KiB, done.
Resolving deltas: 100% (93/93), completed with 18 local objects.
From http://github.com/mxcl/homebrew
f34cda7..09ad71b master -> origin/master
Updated Homebrew from f34cda74 to 09ad71bd.
[...]
Es la salida típica de git. A partir de ahí veremos un resumen de las nuevas fórmulas añadidas y de las actualizadas.
Buscar fórmulas
brew search PATRÓN
Mostrar información de una fórmula
Tenemos la opción clásica:
brew info FÓRMULA
y la curiosa opción de visitar la página del proyecto:
brew home FÓRMULA
Instalación de fórmulas
brew install FÓRMULA
Listar fórmulas antiguas
En el proceso de actualización del listado de fórmulas se detectarán nuevas versiones de fórmulas ya instaladas:
brew outdated
Actualización de paquetes
Tenemos dos opciones
brew upgrade
que actualiza todos las fórmulas con nuevas versiones o
brew upgrade FÓRMULA
que actualiza únicamente la fórmula especificada.
Eliminación de versiones antiguas
Una curiosidad de Homebrew es que no desinstala versiones anticuadas para ello usamos:
brew cleanup
Crear nuevas fórmulas
Es bastante sencillo crear una fórmula nueva. Aunque el Formula Cookbook es bastante claro, veremos brevemente los paso principales:
- brew create URL (con la URL de la descarga)
- Editar el fichero, creado automáticamente, en /usr/local/Library/Formula/FÓRMULA.rb
- Añadir las dependencias con depends_on.
- Añadir los comandos system necesarios para la compilación
- Probar la fórmula con brew install -vd FÓRMULA