1
MacPorts: Guia del comando port Autor: Antoni Serra Devecchi Licéncia: "MacPorts:Guia del comando port" by antoni serra devecchi is licensed under a Creative Commons ReconocimientoNo comercialCompartir bajo la misma licencia 2.5 España License.
El comando port es la principal herramienta de que disponemos para interactuar con MacPorts. Con el podremos realizar las siguientes tareas: Actualizar los achivos port y la infraestructura de MacPorts Instalar/Desinstalar ports Gestionar port
2
Índice Sintaxis del comando port Opciones del comando port Acciones del comando port Archivos de configuración Acceso a las “manpages” de port
Sintaxis del comando port Volver al Índice La sintaxis básica del comando port es ( como root o utilizado el comando sudo) : port [opcion] [acción] [opciones de la acción] [nombre del port] Será mediante las acciones como definiremos aquello que queramos que ejecute port. Mediante las diversas opciones del comando especificaremos de forma mas precisa el comportamiento de la acción. Si no se especfica una acción, el comando port activa el modo interativo, en el que los comandos deben ser instalados via stdin. El [nombre del port ] ,( nombre_port a partir de ahora), puede ser sustituido por los denominados pseudonombres: all ..................La acción se ejecuta en cada port listado en el archivo sources.conf current ..........La acción se ejecta sobre el port del directorio de trabajo. activate .........La acción se ejecuta sobre el conjunto de ports instalados y activos. inactivate ......La acción se ejecuta sobre el conjunto de ports instalados inactivos. unistalled ......La acción se ejecuta en el conjunto de ports que no están instalados. outdated ........La acción se ejecuta sobre el conjunto de ports instalados pero no actualizados. Existen también los denominados "selectores de peudonombres" que nos servirán para "afinar" la acción. Dichos selectores, utilizados tanto en singular como en plural, suelen coincidir con los nombres clave utilizados en los archivos port, tales como "name" para el nombre del port, "variant" para la variante, "maintainer" para el mantenedor del port, etc.... | name | version | revision | epoch | variant | variants | category | categories | maintainer | maintainers | platform | platforms | description | |long_description | homepage | portdir | La sintaxis seria: port [accion] selector
3
Por ejemplo: port info category maintainer gimp2 vim nos mostraria información sobre la categoria a que pertenecen y los nomres de los mantenedres de los ports gimp2 y vim Los selectores de pseudonombres pueden utiliarse en combinación con expresiones regulares (regex) para fijar el alcance de la acción deseada. En este caso la sintaxis seria: port accion selector:regex Por ejemplo: port install name:sql* instalaria todos los ports cuyo nombre comenzara por sql En la formación de las expresiones regulares puede utilizarse los comodines "expansores de cadena" aceptados en UNIX, tales como * , ? etc asi como los operadores lógicos and , or, not, ! , ( , ), port list variant:nombre_variante , listaria los ports con el nombre de variante espcificado port unistall name:sql , desinstalaria el port sql port unistall name:sql* , nos desinstalaria los ports cuyo nombre comenzara por sql port upgrade installed and apache* , actualizaria los ports instalados cuyo nombre comenzara con la cadena apache port echo maintainer:jberry and unistalled and \(category:java and not commons*\)
Opciones del comando port Volver al Índice El comado port reconoce también varias opciones: v : ("verbose"). Nos muestra mensajes durante la ejecución de la acción. d : ( "debug"). Genera mensajes de depuración durante la ejecución de la acción. Supone el modo v q : ("quiet") . Suprime los mensajes durante la ejecución de la acción. n : No seguir las dependencias durante el proceso de actualización .Sólo para port upgrade R: Actualiza también las dependencias ( Sólo para port upgrade). u : Desinstala ports inactivos cuando se actualiza o desinstala. f : Modo "forzado". Ejecuta la acción ignorando el estado del archivo. s : ("solo fuente"). Instala solo desde fuentes, ignorando cualquier archivo binario. Solo se aplica cuado esta activado el "modo archivo". b : ("solo binario") . Instala solo desde archivos binarios, ignorando cuanquier archivo fuente. Se inactiva si no hay archivos binarios. Solo se aplica cuando está activo el "modo archivo". c : ("autolimpieza") . Ejecuta la acción clean después de install. Se utiliza con la acción install. k : ( "noautolimpieza"). No se ejecuta clean después de install. Se utiliza con install. D: Para especificar portdir. F : Lee y procesa el archivo de comandos esecificado por el argumento. Si el argumento es ,lee los comandos introducidos desde stdin. Si la opción se implements varias veces pueden leerse varios archivos de comandos. i : Permite leer los comandos desde stdn. Viene a ser un F limitado. x : En un modo interactivo y de proceso por lotes (batch), hace que finalice el proceso al primer error encontrado. En otro modo, se limita a reportar los errores ocurridos durante el proceso. p : Procesa los ports y comandos sin tener en cuenta los errores encontrados en el proceso. t : Activa "trace mode debug " en plataformas que lo soportan ( Mac OS X).
4
Acciones del comando port Volver al Índice Las acciones que vamos a considerar en esta guia son: | help | selfupdate | list | search | info | deps | variants | install | clean | | uninstall | activate | deactivate | contents | installed | location | outdated | | upgrade | dependents | echo | help port help Nos muestra un resumen de todas las acciones y comandos. selfupdate port d selfupdate La acción selfupdate se utilizará principalmente para bajar nuevos ports asi como para actualizar las versiones de los ports instalados. Otra importante función de sefupdate es la de mantener actualizada la aplicación MacPorts. list port list Sin argumentos, nos dará una lista de las ultimas versiones de los ports disponibles Si como argumento lleva uno o varios nombres de ports nos mostrará una lista con la útima versión de cada uno de los puertos especificados. port list gimp2 vim ufraw nos mostrará una lista con las últimas versiones de gimp2, vim y ufraw search port search [ cadena] Utilizaremos esta acción para localizar ports mediante su nombre o parte de el. Pueden utilizarse comodines. port search vim port search sq* info port info opción nombre_port Mediante esta acción obtendremos toda la metainformación del port especificado en nombre_port . Mediante opciones como maintainer , category , etc puede solicitarse metainformación mas específica. Si se utiliza la opción line la información se organizará en una linea por port. Con la opción index la información se obtendrá desde PortIndex en lugar de desde PortFile
5
port info gimp2 obtendremos metainformación de gimp2 port info category name gimp* obtendremos información específica de la categoria y nombre de todos los ports cuyo nombre comience por gimp port info line category name gimp* obtendremos la misma información que en el caso anterior, pero organizada en una linea por cada port deps port deps nombre_port Obtendreos una lista de las dependencias del port especificado. variants port variants nombre_port Con variants podemos ver las distintas variantes(*) disponibles de un determinado port, antes de instalarlo. (*) Las variantes son un medio de que disponen los creadores de ports para proporcionar opciones que pueden ser escogidas en el momento de la instalación del port. Solo puede optarse por na variante concreta en el momento de la instalación de un port. Existen las llamadas variantes por defecto. Dichas variantes son opcionales y no todos los ports que utilizan variantes las poseen. Los ports que tengan variantes pordefecto pueden instalarse sin ellas "negandolas" mediante la opción install port install nombre_port Es la acción que se utiliza para instalar un port. Cuando se desea instalar una determinada variante del port, la sintaxis seria: port install nombre_port + nombre_variante Cuando lo que se quiera en no instalar una determinada variante: port install nombre_port nombre_variante clean port clean opcion nombre_port Mediante clean eliminamos los arhivos intermedios creados por MacPorts durante el proceso de instalación de un port. Podemos utilizar clean con varias opciones: port clean all nombre_port : Elimina todos los archivos intermedios. port clean work nombre_port : Elimina solo los archivos de trabajo. port clean dist nombre_port : Elimina solo los archivos de distribucion ( tarballs, zips....) port clean archive nombre_port : Elimina solo los archivos de la actual versión del port.
6
Para eliminar los archivos de una determinada versión del port, por ejemplo, la xx.y ,podemos hacerlo de varias maneras: port clean archive nombre_port version:xx.y port clean archive nombre_port xx.y port clean archive nombre_port xx.* uninstall port uninstall nombre_port Es la acción que utilizaremos para desinstalar ports. Debe tenerse en cuenta que si un port ha sido instalado como dependencia de otro, unistall no lo desinstalará hasta que se haya procedido a la desinstalación del port dependiente. Usando la opción f port f uninstall nombre_port se obvia este paso, aunque debemos tener presente que algunos ports necesitarán reinstalarse si cambiamos sus dependencias. Para desinstalar todos los ports instalados pero inactivos, utilizar la opción u port u uninstall activate port activate nombre_port Activa el port instalado, pero inactivado, especificado en nombre_port deactivate port deactivate nombre_port desactiva el port instalado y activo especificado en nombre_port contents port contents nombre_port Nos muestra los archivos que han sido instalados para un determinado port. installed port installed nombre_port Lista los ports instalados. location port location nombre_port Nos muestra el lugar en que se encuentra installado el por especificado.
7
outdated port outdated Esta acción compara las versiones de los ports instalados con las de los repositorios de MacPorts, informándonos de si existe alguna versión mas reciente. Con la acción upgrade ( ver mas adelante) podremos actualizar los ports. upgrade port upgrade nombre_port Se actualiza a la versión mas reciente el port instalado indicado en nombre_port. Cuando se deseen actualizar todos los ports instalados utilizaremos : port upgrade installed port upgrade outdated upgrade actua sobre el port y sus dependencias. Cuando se desee cambiar este comportamiento utilzaremos las opciones n y R Cuando no se quieran actualizar las dependencias de un determnado port: port n upgrade nombre_port Cuando se quiera actualizar el port especificado y todos los ports que dependen de el se utilizara R port R upgrade nombre_port Utilizando la opción f "forzamos" la actualización port f upgrade nombre_port Debemos tener en cuenta que la opción upgrade no desinstala la antigua versión del port actualizado. Se limita a desactivarla. Si se quiere que, ademá de actualizar, se elimine la versión antigua deberemos utilizar la opción u : port u upgrade dependents port dependents nombre_port Nos muestra los ports instalados que dependen de port indicado en nombre_port echo Esta acción hace que aparezcan en stdout los resultados de los argumentos pasados a port port echo category:net Nos mostrara en stdout los ports clasificados en la categoria net port echo maintainer:jmpp and name:net* Nos mostrará en stdout los ports cuyo mantenedor es jmpp y cuyo nombre empiece por net
8
Archivos de Configuración Volver al Índice /opt/local/etc/macports/sources.conf Es en este archivo en el que se configuran los lugares en donde obtener los ports. /opt/local/etc/macports/macports.conf Contiene opciones avanzadas de configuración. Suele estar extensamente comentado. /opt/local/etc/macports/variants.conf Se utiliza para especificar las variantes a ser usadas por todos los ports, cuando existan. ~ .macports/macports.conf Archivo de configuración del usuario para Macports. Prevalece sobre el archivo de configuración global /opt/local/etc/macports/macports.conf
Acceso a las "manpages" de port Volver al Índice Con la orden: man port podemos acceder a las páginas del manual del comando port. Es posible que al ejecutar la citada orden, nos aparezca un mensaje del tipo: " No manual entry for port". Ello puede ser debido a que no se ha añadido /opt/local/man al manpath. Para solucionarlo operaremos de la siguiente manera: Editamos /usr/share/misc/man.conf Localizamos la linea MANPATH_MAP path_element manpath_element La cambiamos por MANPATH_MAP /opt/local/bin /opt/local/share/man [ Es posible que en man.conf no se encuentre una linea como la citada mas arriba. En este caso, localizamos una linea o grupo de lineas descomentadas que comiencen por MANPATH_MAP y tengan la estructura citada y añadimos la linea : MANPATH_MAP /opt/local/bin /opt/local/share/man Para terminar, guardamos el cambio.