-- from wikipedia [search: macports]
Ports o no Ports...
MacPorts desde un punto de vista pragmatico, es un administrador de aplicaciones para el sistema operativo OS X, de la misma manera como lo es RPM para sistemas basados en RedHat o el APT-GET para sistemas basados en Debian; su funcionamiento va más en el estilo de Gentoo, ya que será necesario compilar tus aplicaciones pero te permite generar nuevos paquetes para poderlos instalar en otros servidores basados en OS X.
Existen otras alternativas como homebrew, pero sin duda MacPorts es lo suficientemente madura y estable como para usarla en el día a día.
Conceptualmente MacPorts se compone de dos partes:
- infraestructura (que son el conjunto de aplicaciones que definen el comportamiento de MacPorts)
- definiciones de aplicación o _ports_ (que es el conjunto de instrucciones contenidas en un archivo relacionadas a una aplicación y que definen como construirla e instalarla dentro de un sistema OS X bajo MacPorts).
Al igual que Portage de Gentoo, es necesario sincronizar nuestro árbol de definiciones y hacer las actualizaciones correspondientes.
No te preocupes por las aplicaciones que vienen por defecto en tu sistema operativo ya que MacPorts instala todas las aplicaciones en un segmento independiente o "SandBox" lo cual te permite mantener tus aplicaciones de manera independiente.
Para poder hacer uso de MacPorts es necesario que instales el binario de MacPorts (el cual puedes obtener del mismo sitio) así como el SDK de OS X (las XCode Tools) que encontraras en los DVD's de instalación:
El ejemplo del screenshot se refiere a que estoy buscando dentro de las aplicaciones que se encuentran en la categoria www, la aplicación pound así como, la versión dentro del repositorio y si tiene alguna variación.
Existen otras alternativas como homebrew, pero sin duda MacPorts es lo suficientemente madura y estable como para usarla en el día a día.
Conceptualmente MacPorts se compone de dos partes:
- infraestructura (que son el conjunto de aplicaciones que definen el comportamiento de MacPorts)
- definiciones de aplicación o _ports_ (que es el conjunto de instrucciones contenidas en un archivo relacionadas a una aplicación y que definen como construirla e instalarla dentro de un sistema OS X bajo MacPorts).

No te preocupes por las aplicaciones que vienen por defecto en tu sistema operativo ya que MacPorts instala todas las aplicaciones en un segmento independiente o "SandBox" lo cual te permite mantener tus aplicaciones de manera independiente.
Para poder hacer uso de MacPorts es necesario que instales el binario de MacPorts (el cual puedes obtener del mismo sitio) así como el SDK de OS X (las XCode Tools) que encontraras en los DVD's de instalación:
- Xcode 3.2
- UNIX Development
- System Tools
- X11 SDK
- Command Line Support
- iOS SDK 4.3
- X11 Window System
sudo port [commands]
MacPorts se reduce a usar el comando ports, el cual nos permite mantener actualizada la infraestructura así como las definiciones de aplicación en el sistema operativo.[0001] Sincronizar árbol de definiciones
Así es, si requieres las versiones más recientes será necesario actualizar el árbol de definiciones de macports, toma en cuenta que solo se va a actualizar el árbol; si quieres actualizar las aplicaciones será necesario realizar un upgrade.
[ 192.168.1.108 | macuarrita ] ~ andresaquino $ sudo port help selfupdate Usage: selfupdate --nosync Upgrade MacPorts itself and run the sync target
[0010] Listar aplicaciones desactualizadas
Para conocer que aplicaciones puedes actualizar puedes usar la opción outdated o también list que es mucho más completa, como puedes observar en el screenshot tengo cuatro aplicaciones por actualizar pero de estas solo me interesa git-core.
Es posible conocer más acerca de la aplicación a actualizar con la opción info, incluso podrás observar que tiene opciones para "crecer" la aplicación, los cuales se conocen como variants, en este caso si quieres que se incluya la documentación o los bindings con python.
[ 192.168.1.108 | macuarrita ] ~ andresaquino $ sudo port help outdated Password: Usage: outdated Returns a list of outdated ports
[0011] Verificar dependencias
Es posible que bajo ciertas condiciones de actualización te preguntes si la aplicación que estás instalando tiene dependencias de otros paquetes o si hay otras aplicaciones que dependan de esta, es en estos casos que puedes usar la opción de dependents y obtener más información al respecto.
[ 192.168.1.108 | macuarrita ] ~ andresaquino $ sudo port help dependents Password: Usage: dependents Returns a list of installed dependents for each of the given ports Note: Don't get fooled by the language! Dependents are those ports which depend on the given port, not vice-versa!
[0100] Actualizar aplicaciones
Listo, ya sabemos que aplicaciones queremos actualizar; ahora usaremos la opción upgrade, la cual se encargará de bajar todos los componentes necesarios así como las dependencias requeridas. Si en alguna ocasión has trabajado con Gentoo este proceso te será muy familiar.
[ 192.168.1.108 | macuarrita ] ~ andresaquino $ sudo port help upgrade Password: Usage: upgrade --force --enforce-variants --no-replace Upgrades the given ports to the latest version. Respects global options -n, -R, and -u (see the port man page). Note that in selecting variants to use in the upgraded build of the port, the order of precedence is variants specified on the command line, then variants active in the latest installed version of the port, then the variants.conf file.
[0101] Verificar el contenido de una aplicación
Una vez que has realizado la instalación de una aplicación, puedes corroborar donde fueron instalados los componentes de ese paquete. Suele suceder que cuando se instala una aplicación como OpenSSH sera necesario saber donde se dejaron los scripts de inicialización, ya que serán requeridos para incluirlos en el administrador de servicios de OS X: Launchctl.
[ 192.168.1.108 | macuarrita ] ~ andresaquino $ sudo port help contents Password: Usage: contents --size --units < arg1 > Returns a list of files installed by given ports
[0110] Listar aplicaciones activas e inactivas
Antes de realizar cualquier actividad de mantenimiento puede ser necesario que quieras verificar que aplicaciones se encuentran inactivas o las versiones del software que tienes instalado, para ello puedes hacer uso de la opción list así como de las definiciones active, inactive, installed, portname.El ejemplo del screenshot se refiere a que estoy buscando dentro de las aplicaciones que se encuentran en la categoria www, la aplicación pound así como, la versión dentro del repositorio y si tiene alguna variación.
[ 192.168.1.108 | macuarrita ] ~ andresaquino $ sudo port help list Usage: list List the available version for each of the given ports
[0111] Instalar aplicaciones
La parte más sencilla, instalar una nueva aplicación, la opción es install; en caso de que sea necesario crecer la aplicación se podrán incluir las correspondientes variaciones, esta información la puedes obtener mediante la opción info.
El ejemplo del screenshot se refiere a que estoy buscando dentro de las aplicaciones que se encuentran en la categoria www, la aplicación pound así como, la versión dentro del repositorio y si tiene alguna variación, hecho esto procedo a instalar.
El ejemplo del screenshot se refiere a que estoy buscando dentro de las aplicaciones que se encuentran en la categoria www, la aplicación pound así como, la versión dentro del repositorio y si tiene alguna variación, hecho esto procedo a instalar.
[ 10.103.88.69 | macuarrita ] ~ andresaquino $ sudo port help install Usage: install Installs the given ports
[1000] Eliminar aplicaciones
Generalmente después de realizar una actualización o instalación de cualquier aplicación, el componente anterior se quedará en el sistema por si es necesario regresar a la aplicación anterior (rollback); en caso de que todo funcione correctamente será necesario eliminar las aplicaciones que fueron desactivadas del sistema.
[ 192.168.1.108 | macuarrita ] ~ andresaquino $ sudo port help uninstall Usage: uninstall --follow-dependents --follow-dependencies --no-exec Uninstall the given ports --no-exec Do not execute any stored pre- or post-uninstall procedures
[1001] Limpieza de estructuras de construcción
De cuando en cuando, será necesario que elimines los archivos que se generaron cuando se construyeron las aplicaciones, esto incluye binarios intermedios, directorios de construcción (build) y archivos de registro (logs).
[ 10.103.88.69 | macuarrita ] ~ andresaquino $ sudo port help clean Usage: clean --all --dist --work --logs Removes files associated with the given ports --dist Removes downloaded distfiles --logs Removes log files --work Removes work directory (default) --all Removes everything from above
Servicios (daemons/services)
Los servicios se trabajan un diferente en OS X, con servicios nos referimos a aplicaciones como OpenSSH, ApacheHTTPD o Squid ya que en OS X se administran con Launchctl, el cual es la propuesta de Apple para manejar las aplicaciones que en otros likeUNiX se gestionan mediante Cron, XInetd e Init.Para esto nos remitiremos a una segunda parte, ¿y ustedes usan MacPorts?