Gestores de paquetes en Mac OS X

Gestores de paquetes en Mac OS X
MacPorts Geekytheory

En GNU/Linux los sistemas de gestión de paquetes tienen una gran importancia en la distribución de software libre. Existen multitud de gestores con los cuales podemos instalar, configurar, actualizar, eliminar u obtener el código fuente de un paquete de software.

Mac OS X es un sistema basado en Unix, en concreto BSD (por si alguien se preguntaba de donde viene la X). Por lo tanto, es relativamente sencillo portar paquetes Unix y otros tantos de GNU/Linux a Mac OS X y así disponer de varios programas que aparentemente solo los usuarios de Linux podían sufrir disfrutar.

En Mac OS X no tenemos un gestor de paquetes oficial, ni mucho menos nuestro gestor de paquetes preferido, apt-get (para los usuarios de Ubuntu, Debian…). Existen alternativas como MacPorts, Fink o Homebrew que pueden cubrir esta carencia.

MacPorts es un gestor de paquetes basado en BSD ports. Los 'puertos' son básicamente archivos que indican donde se encuentre el código fuente para obtenerlo, compilarlo e instalarlo en sistema operativo.

Fink está basado en el sistema de gestión de paquetes Debian dselect, dpkg y apt-get. Por lo general utiliza aplicaciones precompiladas, pero otras muchas se han de compilar en la maquina en la que queremos instalar el paquete.

De estos dos, MacPorts tiende a ser la mejor solución debido a la cantidad de paquetes que disponemos en comparación con Fink. Las actualizaciones son mas rápidas, disponemos de más opciones y es algo menos intrusivo en el sistema.

Sin embargo, MacPorts es algo complejo de utilizar. Evita muchas de las bibliotecas y software que ya disponemos en OS X e instala variantes del mismo, provocando que lo encontremos "repetido" en el sistema. Por ejemplo, instalar una herramienta que requiera de Python, puede suponer instalar una nueva versión completa de Python para MacPorts, con toda su extensa biblioteca estándar.

Ambos gestores instalan los paquetes en una ruta determinada de la raiz del sistema, distinta a donde se encuntra el arbol principal. Esto es muy util para separar el software de Fink o MacPorts potencialmente peligroso del resto del sistema.

En MacPorts por defecto es:

/opt/localY en Fink: /sw/

Lo podemos configurar a la hora de instalarlos.

Para que el nuevo software funcione correctamente, hay que establecer el entorno del sistema. Ambos gestores añaden automaticamente un par de lineas al archivo .profile para añadir la ruta de MacPorts y Fink al PATH del sistema.

Por otro lado tenemos Homebrew. Es una solución muy simple que surge en respuesta a la complejidad de MacPorts, aunque aquí no vamos a encontrar la lista de paquetes que podemos encontrar en MacPorts o Fink.

Es tan sencillo que podemos instalarlo simplemente con este comando:

ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"

Que descarga el instalador y lo ejecuta.

Por defecto Homebrew tratará de instalarse en /usr/local. Aunque podemos instalarlo en la ruta que queramos, siempre y cuando la añadamos a nuestro PATH (como en MacPorts y Fink).

Las principales ventajas de Homebrew con respecto a MacPorts son la sencillez, la velocidad y que es menos intrusivo. Hombrew trata de utilizar las herramientas y bibliotecas existentes en Mac OS X, por lo que suele compilar los programas mucho mas rápido y requerir muchas menos dependencias. Esta basado en sencillos scripts ruby que indican como obtener los paquetes, dependencias y como instalarlos.

MacPorts se maneja con el comando port. Para el que se requiere ser root: sudo port install gitFink funciona con el comando, para el cual se os pedirá permisos de root: fink install gitY por ultimo Homebrew con: brew install git

Personalmente utilizo desde hace algún tiempo Fink y MacPorts (ambos son compatibles) y aunque me han dado unos cuantos dolores de cabeza, me han resuelto mas problemas de los que me han provocado.

Enlaces: