diff --git a/es_ES.ISO8859-1/books/handbook/ports/chapter.sgml b/es_ES.ISO8859-1/books/handbook/ports/chapter.sgml index e92b1d3ad6..56f50a0b3f 100755 --- a/es_ES.ISO8859-1/books/handbook/ports/chapter.sgml +++ b/es_ES.ISO8859-1/books/handbook/ports/chapter.sgml @@ -1,1575 +1,1575 @@ Instalando Aplicaciones: Paquetes y Ports Sinópsis ports paquetes FreeBSD esta colmado de una excelente colección de herramientas de sistema, como parte del sistema base. A pesar de esto, existe gran cantidad de cosas que uno requiere hacer para poner las cosas realmente en marcha, para lo cual se necesita instalar software adicional de terceros. FreeBSD ofrece dos tecnologías complementarias para instalar software de terceros en nuestro sistema: la Colección de Ports de FreeBSD y Paquetes binarios. Cualquiera de los dos sistemas puede ser usado para instalar las versiones más recientes, de forma local o directamente desde la red. Después de leer este capítulo, usted sabrá: Como instalar paquetes binarios de software de terceros. Como compilar software de terceros desde la Colección de Ports. Como remover paquetes o ports instalados previamente. Generales sobre la Instalación de Software Si usted ha usado un sistema Unix con anterioridad, sabrá que el procedimiento típico para instalar software de terceros es algo similar a esto: Descargar el software, que puede distribuirse en formato de código fuente, o binario. Desempacar el software de su formato de distribución (normalmente en un tarball comprimido ya sea con &man.compress.1; o &man.gzip.1;). Ver la documentación (quizás un fichero README, o los ficheros del subdirectorio doc/) para ver como instalar el software. Si el software es distribuido como fuentes, compilarlo. Esto puede requerir que editemos el fichero Makefile o que ejecutemos el script configure, entre otras. Instalar y probar el software. Y esto solamente si todo marcha bien. Si usted esta instalando un software que no ha sido creado específicamente para FreeBSD, puede que sea necesario editar el código para que trabaje correctamente. Si usted lo desea, puede continuar instalando software de la forma tradicional bajo FreeBSD. Aunque FreeBSD le provee de dos tecnologís que le pueden ahorrar gran cantidad de tiempo y esfuerzo: los paquetes y ports. AL momento de escribir esto, existen más de &os.numports; aplicaciones de terceros, que estan disponibles de esta manera. Los paquetes de FreeBSD, para cualquier aplicación, son un simple fichero que debe descargar. Los paquetes contienen copia de binarios pre-compilados de la aplicación, así como cualquier fichero de configuración necesario o documentación. Los paquetes descargados, pueden ser manipulados con los comandos de manejo de paquetes de FreeBSD, tales como: &man.pkg.add.1;, &man.pkg.delete.1;, &man.pkg.info.1;, etc. EL instalar una aplicación nueva puede realizarse con un simple comando. Por otro lado un Port de FreeBSD, es una colección de ficheros diseñados para automatizar el proceso de compilación del software, desde el código fuente. Recuerde que existen ciertos pasos que deberá llevar a cabo para efecto de compilar un programa por usted mismo (desempacar, parchar, compilar e instalar). Los ficheros que conforman un port, permiten automatizar esto por usted. Usted ejecuta un conjunto de comandos simples y el código fuente es descargado, desempacado, parchado, compilado e instalado. De hecho, el sistema de ports también se puede usar para crear paquetes que posteriormente manipule con pkg_add y las otras utilidades del manejo de paquetes que veremos en breve. Tanto el sistema de ports como el de paquetes entienden las dependencias. Suponga que desea instalar una aplicación que depende de que una librería específica este instalada. Tanto la librería como la aplicación existen en FreeBSD como paquete o port. Si utiliza el comando pkg_add o el sistema de ports para instalar la aplicación, ambos notaran que la librería no esta instalada, y procederán a instalar la librería en primer término. Dado que ambas tecnologís son similares, quizás se pregunte por que FreeBSD se toma la molestía de contar con ambas. Los Paquetes y los Ports cuentan con sus propias fortalezas, y cual utlizar dependerá de sus preferencias. Beneficios de los Paquetes El típico fichero tarball de un paquete, es normalmente más pequeño que el tarball comprimido que cuenta con el código fuente del software. Los paquetes no requiere de compilación adicional. Este punto puede ser de gran importancia, principalmente en equipos lentos, cuando compila grandes aplicaciones tales como Mozilla, KDE, o GNOME. Los paquetes no requieren que usted comprenda el proceso que envuelve el compilar software bajo FreeBSD. Beneficios del Sistema de Ports Normalmente los paquetes son compilados con opciones conservadoras, en virtud del gran numero de equipos donde serán instalados. Al instalar desde el port, usted puede editar las preferencias para (por ejemplo) ejecutarse bajo un procesador Athlon o Pentium III. Algunas aplicaciones opciones relacionadas con lo que pueden y lo que no pueden hacer. Por ejemplo Apache puede ser configurado con una gran variedad de opciones. Al compilarlo desde los ports usted no tiene por que aceptar todas, puede seleccionar cuales opciones desea. En algunos casos, existen varios paquetes para la misma aplicación con diferentes opciones. Por ejemplo, Ghostscript esta disponible como paquete ghostscript o bien como paquete ghostscript-nox11, dependiendo si usted cuenta o no con el servidor X11. En este caso decidir puede ser sencillo, pero esto se puede volver un problema si cuenta con más de una o dos opciones al momento de la compilación. Las condiciones de licenciamiento de algunas aplicaciones, prohiben la distribución de binarios. Solo permiten la distribución del código fuente. Existe gente que no confia en los binarios. Al menos con el código fuente, usted puede (en teoría) revisarlo y localizar problemas potenciales. Si cuenta con parches locales, necesitará el código fuente para poder aplicarlos. Existe gente que le gusta contar con el código fuente, para poder leerlo en ratos de ocio, modificarlo, tomar partes prestadas (si la licencia lo permite, claro esta), y tal. Para poder estar actualizado en sus ports, suscribase a &a.ports;. El resto de este capítulo le explicará como usar los ports y paquetes para instalar software de terceros en FreeBSD. Localizando su Aplicación Antes de poder instalar cualquier software, usted debe saber que desea instalar y como se llama dicha aplicación. La lista de software disponible para FreeBSD crece constantemente. Afortunadamente existen varias formas de localizar lo que busca: El sitio web de FreeBSD mantiene una base actualizada de todas las aplicaciones disponibles para FreeBSD, en la dirección http://www.FreeBSD.org/ports/ . Esta base esta segmentadas por categorías, y usted puede buscar por nombre (si lo sabe) o bien listas las aplicaciones disponibles en cierta categoría. FreshPorts Dan Langille mantiene FreshPorts, en http://www.FreshPorts.org/. FreshPorts verifica los cambios en las aplicaciones del árbol de ports, y le permite observar uno o más ports, y le enviará un correo cada vez que se actualicen. FreshMeat Si no conoce el nombre de la aplicación que desea, pruebe usar un sitio como FreshMeat (http://www.freshmeat.net/) para encontrar una aplicación, posteriormente verifique en el sitio de FreeBSD, para ver si la aplicación ha sido portada a FreeBSD. Chern Lee Contribuido por Usando el Sistema de Paquetes Instalando un Paquete paquetes instalando pkg_add Puede usar la utilidad &man.pkg.add.1; para instalar software de un paquete bajo FreeBSD, desde un fichero local o desde un servidor remoto que esta en red. Descargando un Paquete e Instalandolo Localmente &prompt.root; ftp -a ftp2.FreeBSD.org Connected to ftp2.FreeBSD.org. 220 ftp2.FreeBSD.org FTP server (Version 6.00LS) ready. 331 Guest login ok, send your email address as password. 230- 230- This machine is in Vienna, VA, USA, hosted by Verio. 230- Questions? E-mail freebsd@vienna.verio.net. 230- 230- 230 Guest login ok, access restrictions apply. Remote system type is UNIX. Using binary mode to transfer files. ftp> cd /pub/FreeBSD/ports/packages/sysutils/ 250 CWD command successful. ftp> get lsof-4.56.4.tgz local: lsof-4.56.4.tgz remote: lsof-4.56.4.tgz 200 PORT command successful. 150 Opening BINARY mode data connection for 'lsof-4.56.4.tgz' (92375 bytes). 100% |**************************************************| 92375 00:00 ETA 226 Transfer complete. 92375 bytes received in 5.60 seconds (16.11 KB/s) ftp> exit &prompt.root; pkg_add lsof-4.56.4.tgz Si usted no cuenta con una fuente local de paquetes (como pudiese ser un CDROM de FreeBSD), pudiese ser que su mejor alternativa sea usar &man.pkg.add.1;. Esto provocará que la utilidad determine automáticamente el formato del objeto correcto, para que posteriormente lo descargue y lo instale desde un sitio FTP. pkg_add &prompt.root; pkg_add -r lsof En el ejemplo anterior, el paquete correspondiente será descargado e instalado sin mayor intervención del usuario. - &man.pkg.add.1; utiliza &man.pkg.fetch.1; para descargar los ficheros, + &man.pkg.add.1; utiliza &man.fetch.1; para descargar los ficheros, que toma como referencia varias variables de entorno, que incluyen FTP_PASSIVE_MODE, FTP_PROXY y FTP_PASSWORD. Quizás deba modificar alguna de estas, si se encuentra detrás de un firewall, o bien usar un proxy FTP/HTTP. Vea la página de ayuda &man.fetch.3; para una lista completa. También puede notar que en el ejemplo anterior usamos lsof en vez de lsof-4.56.4. Cuando hacemos uso de fetch de forma remota, la versión del paquete debe ser removida. El programa &man.pkg.add.1; obtendrá automáticamente la versión más reciente. Los paquetes son distribuidos en formato .tgz. puede encontrarlos en ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/packages/, o bien, en el CDROM de FreeBSD. Cada CD de la distribución de 4 CDs (y del PowerPak, etc) contiene los paquetes en el directorio /packages. El orden de dicho directorio, es similar al árbol de /usr/ports. Cada categoría cuenta con su subdirectorio, y todos los paquetes estan disponibles en el directorio All. La estructura del directorio de paquetes es identica a la de ports; estos trabajan en conjunto para formar el sistema de paquetes/ports. Eliminando un Paquete pkg_delete paquetes eliminando Para eliminar un paquete previemante instalado, utilice la utilidad &man.pkg.delete.1;. &prompt.root; pkg_delete xchat-1.7.1 Manejo de Paquetes paquetes manejo &man.pkg.info.1; es una utilidad que muestra y describe todos los paquetes que tenemos instalados. pkg_info &prompt.root; pkg_info cvsup-16.1 A general network file distribution system optimized for CV docbook-1.2 Meta-port for the different versions of the DocBook DTD ... &man.pkg.version.1; es una utilidad que resume las versiones de los paquetes instalados. Estas son comparadas con las versiones actuales del árbol de ports. pkg_version &prompt.root; pkg_version cvsup = docbook = ... Los símbolos de la segunda columna, nos indican la edad relativa de la versión instalada, comparada con la versión disponible en el árbol local de ports. Símbolo Significado = La versión del paquete instalado es igual a la versión del árbol local de ports. < La versión instalada es más antigua a la versión del árbol local de ports. >La versión instalada es más reciente que la que se encuentra en el árbol local de ports (probablemente el árbol de ports esta desactualizado). ?El paquete instalado no se ha localizado en el índice (index) de los ports. *Existen multiples versiones del paquete. Miscelaneos Toda la información relacionada con los paquetes, se guarda en el directorio /var/db/pkg. Los paquetes instalados, así como una descripción de los mismos, puede encontrarse en este subdirectorio. Usando la Colección de Ports La siguiente sección le provee de las instrucciones básicas para instalar o remover programas de su sistema, usando la Colección de Ports. Obteniendo la Colección de Ports Antes de poder instalar ports, primero debe de hacerse de la Colección de Ports— que escencialmente esta compuesta de ficheros Makefiles, parches y ficheros con la descripción de los ports, ubicados en /usr/ports. Cuando instaló su sistema FreeBSD, el programa Sysinstall le pregunto si deseaba instalar la Colección de Ports. Si contesto que no, puede seguir estas instrucciones para obtener dicha colección: Metodo por Sysinstall Este metodo implica el uso del programa sysinstall nuevamente, para instalar Colección de Ports. Siendo usuario root, ejecute el programa /stand/sysinstall como se muestra: &prompt.root; /stand/sysinstall Posicionese en la opción Configure, y presione Enter. Seleccione la opción Distributions, y presione Enter. Seleccione la opción ports, y presione la Barra Espaciadora. Dirijase a la opción Exit, y presione Enter. Seleccione el medio de instalación deseado, tal como CDROM, FTP y tal. Siga los menus para salir de sysinstall. El metodo alternativo para obtener y mantener actualizada la Colección de Ports, es usando CVSup. Lea el fichero de ports para CVSup, en /usr/share/examples/cvsup/ports-supfile. Vea el capítulo Usando CVSup para ver más información en el uso de CVSup y del fichero mencionado. Metodo por CVSup Este es un metodo rápido de obtener la Colección de Ports usando CVSup. Si desea mantener su árbol de ports actualizado, o bien, aprender más acerca de CVSup, lea los documentos comentados anteriormente. Instale el port net/cvsup. Vea Instalación de CVSup para mádetalles. Como usuario root, copie el fichero /usr/share/examples/cvsup/ports-supfile a una nueva ubicación, como puede ser el directorio /root o bien su propio directorio home. Edite el fichero ports-supfile. Cambie CHANGE_THIS.FreeBSD.org a un servidor CVSup cercano. Vea Mirrors de CVSup para ver una lista completa de los servidores CVSup. Ejecute cvsup: &prompt.root; cvsup -g -L 2 /root/ports-supfile Al ejecutar esto posteriormente, se descargaran las actualizaciones de la Colección de Ports. Instalando Ports ports instalando Al hablar de la Colección de Ports, lo primero que debemos comentar es; a que nos referimos cuando hablamos de un esqueleto (skeleton). En sí mismo, un esqueleto de port, es una serie mínima de ficheros, que le indican a FreeBSD como compilar e instalar un programa. Cada esqueleto incluye: Un fichero Makefile. Este fichero contiene varias sentencias, que le indican al sistema como compilarlo y donde deberá instalarlo en su sistema. Un fichero distinfo. Este fichero contiene información de los ficheros que debe ser descargados para efecto de compilar el programa, así como el identificador checksum, para asegurarse se han descargado correctamente, sin corrupciones. Un directorio files. Este directorio contiene los parches necesarios para compilar e instalar en su sistema FreeBSD. Básicamente, los parches son pequeños ficheros, que incluyen algunos cambios. Estos son en formato de texto plano, y básicamente dicen cosas como Remove line 10 (Remover la línea 10) o Change line 26 to this... (Cambiar la línea 26 por esto...). Los parches también son conocidos como diffs, ya que son generados por el programa del mismo nombre; &man.diff.1;. Es posible que este directorio tambié contenga algun otro fichero necesario para compilar e instalar el port. Un fichero pkg-comment. Este es una descripcion del programa en una sola línea. Un fichero pkg-descr. Esta es una descripcion más detallada del programa. En ocasiones multi-línea. Un fichero pkg-plist. Esta es una lista de todos los ficheros que serán instalados por el port. También le indica al sistema de ports, que ficheros remover, en caso de una desinstalación. Algunos ports cuentan con otros ficheros, tal como pkg-message. El sistema de ports usa estos, para manejar situaciones especiales. Si desea saber más detalles al respecto, o bien de ports en general, vea el libro FreeBSD Porter's Handbook. Ahora que tiene suficientes antecedentes sobre que hacer con la Colección de Ports, esta listo para instalar su primer port. Existen dos formas de lllevar esto a cabo, y cada una de ellas se explican a continuación. Pero, antes de que podamos proceder con la instalación, usted necesita seleccionar un port para instalar. Existen varias formas de hacer esto, siendo el metodo más sencillo los ports listados en el sitio web de FreeBSD. Puede navegar entre los ports listados ahí o bien, usar la función de buscar en el sitio. Cada port incluye una descripción, para que pueda leer un poco acerca de cada port antes de decidirse a instalarlo. Otro metodo es por medio del comando &man.whereis.1;. Simplemente teclee whereis fichero, donde fichero es el programa que desea instalar. Si se encuentra en su sistema, se le indicara donde se localiza, tal como: &prompt.root; whereis lsof lsof: /usr/ports/sysutils/lsof Esto nos indica que lsof (una utilidad de sistema) puede encontrarse en /usr/ports/sysutils/lsof. Incluso otra forma de encontrar un port en particular, es usando el mecanismo de búsqueda incluido en el sistema de ports. Para efecto de usar esta habilidad, debe estar situado en el directorio /usr/ports. Una vez que este ahí, ejecute make search name=nombre-del-programa donde nombre-del-programa es el nombre del programa que desea encontrar. Por ejemplo, si busca lsof: &prompt.root; cd /usr/ports &prompt.root; make search name=lsof Port: lsof-4.56.4 Path: /usr/ports/sysutils/lsof Info: Lists information about open files (similar to fstat(1)) Maint: obrien@FreeBSD.org Index: sysutils B-deps: R-deps: De esta información, la parte que debe prestar atención es la que se refiere a la ruta, esto es; la línea Path:, en virtud de que esta le indica la ubicación del programa. El resto de la información no es necesaria para la instalación, por lo que no se verá aqui. Para una búsqueda más profunda, puede usar el comando make search key=cadena donde cadena es algun texto a buscar. Esto busca nombres de ports, descripciones y dependencia y puede usarse para buscar ports que se relacionan a un determinado texto, si no sabe el nombre del port que esta buscando. En ambos casos, la búsqueda es indistinto el uso de mayúsculas o minusculas. El buscar LSOF y lsof arrojaran los mismos resultados. Usted debe ser usuario root , para instalar ports. Ahora que hemos encontrado un port que deseamos instalar, estamos listos para llevar a cabo la instalación. El port incluye las instrucciones necesarias para compilar el código fuente, pero no contiene el código. Puede obtener el código de un CDROM o desde Internet. El código fuente es distribuido de cualquier manera que el autor del software lo desee. Frecuentemente esto es en un fichero tar.gz, pero puede estar comprimido con algun otro programa o de hecho sin estar comprimido. De cualquier forma que se presente, el código fuente del programa, le llamamos distfile. Puede obtener los distfiles desde Internet o bien desde un CDROM. Instalando Ports desde un CDROM ports instalando desde CDROM Los CDROMs oficiales del Proyecto de FreeBSD, ya no incluyen distfiles. Estos ocupan gran espacio, que en su lugar se ha usado para incluir paquetes precompilados. CDROMs como el PowerPak de FreeBSD, si inlcuyen distfiles, y puede ordenar estos de distribuidores como FreeBSD Mall. Esta sección asume que usted cuenta con un juego de CDROMs de FreeBSD. Coloque su CDROM en la unidad correspondiente. Montelo en /cdrom. (Si utiliza un punto de montaje diferente la instalación no será exitosa). Para comenzar dirijase al directorio donde se localiza el port que desea instalar: &prompt.root; cd /usr/ports/sysutils/lsof Una vez que este en el directorio lsof, verá el esqueleto del port. El próximo paso es la compilación del port. Esto lo hacemos, simplemente tecleando make en la línea de comandos. Una vez que ha hecho esto, verá algo similar a lo siguiente: &prompt.root; make >> lsof_4.57D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/. >> Attempting to fetch from file:/cdrom/ports/distfiles/. ===> Extracting for lsof-4.57 ... [extraction output snipped] ... >> Checksum OK for lsof_4.57D.freebsd.tar.gz. ===> Patching for lsof-4.57 ===> Applying FreeBSD patches for lsof-4.57 ===> Configuring for lsof-4.57 ... [configure output snipped] ... ===> Building for lsof-4.57 ... [compilation output snipped] ... &prompt.root; Note que una vez que ha terminado la compilación, regresara a la línea de comandos. El siguiente paso es instalar el port. Para efecto de instalarlo, simplemente debemos añadir una palabra al comando make, y esa palabra es install: &prompt.root; make install ===> Installing for lsof-4.57 ... [installation output snipped] ... ===> Generating temporary packing list ===> Compressing manual pages for lsof-4.57 ===> Registering installation for lsof-4.57 ===> SECURITY NOTE: This port has installed the following binaries which execute with increased privileges. &prompt.root; Una vez que regrese a la línea de comandos, le será posible ejecutar la aplicación que recien instalo. Dado que el programa lsof se ejecuta con privilegios, nos aparece una advertencia de seguridad. Debe tomar nota de cualquier otra advertencia que aparezca durante la compilación e instalación. Puede ahorrarse algo de tiempo al ejecutar make install en un solo comando, en lugar de ejecutar make y make install en dos pasos diferentes. Algunos shells cuentan con un cache de los comandos disponibles bajo los directorios incluidos en la variable de entorno PATH, para agilizar las operaciones de búsqueda de los ejecutables de estos ficheros. Si usted esta haciendo uso de alguno de estos shells, puede usar el comando rehash una vez que ha terminado de instalar el port, para poder hacer uso de su nuevo programa. Esto es válido para ambos shells que forman parte del sistema base (tal como tcsh) y shells que estan disponibles como ports (por ejemplo shells/zsh). Por favor, tenga en cuenta que algunos ports cuentan con una licencia que no permite su inclusión en el CDROM. Probablemente esto es a consecuencia de un registro que se debe hacer previo a la descarga, así mismo algunos no permiten su re-distribución, y tal. Si desea instalar un port que no se encuentra en el CDROM, deberá encontrarse conectado a Internet, para poder hacerlo (vea la siguiente sección). Instalando Ports desde Internet Como en la sección anterior, en este sección se asume que usted cuenta con una conexión activa a Internet. Si no es así, deberá de llevar a cabo la instalación por medio de CDROM, como se menciono anteriormente. El instalar un port desde Internet, se hace exactamente de la misma forma que se hace desde un CDROM. La única diferencia entre estos dos metodos, es que el fichero distfile es descargado de Internet, en lugar de tomarlo del CDROM. Los pasos que implica son identicos: &prompt.root; make install >> lsof_4.57D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/. >> Attempting to fetch from ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/. Receiving lsof_4.57D.freebsd.tar.gz (439860 bytes): 100% 439860 bytes transferred in 18.0 seconds (23.90 kBps) ===> Extracting for lsof-4.57 ... [extraction output snipped] ... >> Checksum OK for lsof_4.57D.freebsd.tar.gz. ===> Patching for lsof-4.57 ===> Applying FreeBSD patches for lsof-4.57 ===> Configuring for lsof-4.57 ... [configure output snipped] ... ===> Building for lsof-4.57 ... [compilation output snipped] ... ===> Installing for lsof-4.57 ... [installation output snipped] ... ===> Generating temporary packing list ===> Compressing manual pages for lsof-4.57 ===> Registering installation for lsof-4.57 ===> SECURITY NOTE: This port has installed the following binaries which execute with increased privileges. &prompt.root; Como puede ver, la única diferencia es la línea que indica de donde esta descargando el sistema el código. El sistema de ports utiliza &man.fetch.1; para descargar los ficheros, que hace uso de varias variables de entorno, como son FTP_PASSIVE_MODE, FTP_PROXY, y FTP_PASSWORD. Puede ser necesario que modifique una o más de estas, si se encuentra detrás de un cortafuegos (firewall), o si requiere usar de un proxy FTP/HTTP. Vea la página de ayuda &man.fetch.3; para una lista completa de las opciones. Eliminando Ports Instalados ports eliminando Ahora que sabe instalar ports, probablemente se este preguntando como eliminarlos, sólo en caso de que haya instalado alguno y posteriormente se de cuenta que ha instalado el port incorrecto. Vamos a eliminar el port instalado (que era lsof, para todos aquellos que no prestaron atención). Como cuando instalamos ports, lo primero que debemos hacer es ubicarnos en el directorio del port que deseamos eliminar, que en este caso es /usr/ports/sysutils/lsof. Una vez que se ha ubicado en este directorio, estamos listos para eliminar lsof. Esto se hace con el comando make deinstall: &prompt.root; cd /usr/ports/sysutils/lsof &prompt.root; make deinstall ===> Deinstalling for lsof-4.57 Esto fué sencillo. Ha eliminado lsof de su sistema. Si desea reinstalarlo, lo puede hacer al ejecutar make reinstall estando en el directorio /usr/ports/sysutils/lsof. Los comandos make deinstall y make reinstall no funcionan una vez que ha ejecutado el comando make clean. Si desea desintalar un port, una vez que ha ejecutado make clean, deberá hacer uso del comando &man.pkg.delete.1; como se describe en la sección de Paquetes del Handbook. Actividades Post-Instalación Una vez que ha instalado una nueva aplicación, normalmente deberá leer la documentación incluida, editar los ficheros de configuración necesarios, asegurarse de que la aplicación se ejecute al arrancar el sistema (si es un daemonio), etc. Obviamente los pasos exactos para configurar cada aplicación varian de una a otra. De cualquier forma, si recien ha instalado una nueva aplicación y se pregunta ¿Y ahora qué?, estos consejos puede que le sean de ayuda: Use &man.pkg.info.1; para ver que ficheros se instalaron y donde. Por ejemplo, si recien instaló el paquete FooPackage 1.0.0, el siguiente comando: &prompt.root; pkg_info -L foopackage-1.0.0 | less le mostrará los ficheros instalados por el paquete. Preste especial atención a los ficheros en el directorio man/ que son las páginas de ayuda y los del directorio etc/, que contiene los ficheros de configuración, y bajo el directorio doc/ podrá encontrar información más detallada. Si no esta seguro de cual es la versión del paquete instalado, simplemente teclee algo así &prompt.root; pkg_info | grep foopackage y le mostrara todos los paquetes que tienen como nombre foopackage. Reemplace foopackage de acuerdo a sus necesidades en la línea de comandos. Una vez que ha identificado donde se localizan las paginas de ayuda de la aplicación, reviselas usando &man.man.1;. De forma similar revise los ficheros de configuración de ejemplo (N. de T. Generalmente estos ficheros son aquellos que tienen la terminación .sample), así como cualquier documentación adicional que se incluya. Si la aplicación cuenta con un sitio web, visitelo en busca de documentación adicional, ficheros de preguntas frecuentes (FAQ), etc. Si no esta seguro del sitio web, vea la salida del comando &prompt.root; pkg_info foopackage-1.0.0 este incluye en ocasiones una línea WWW:, que describe el sitio web de la aplicación. Resolución de Problemas La siguiente sección cubre algunas de las preguntas más frecuentes relacionadas a la colección de ports, y algunas técnicas básicas para la resolución de problemas, así como que hacer si encontramos un port roto. Algunas Preguntas y Respuestas ¿Qué no es una discusión acerca de módems? Ah, usted debe estar pensando en puertos (ports) seriales, que se encuentran en la parte trasera de su computadora. Aqui nos referimos al término port como resultado de aquellas aplicaciones que han sido portadas de una versión de Unix a otra. ¿Qué es un parche (patch)? Una parche (patch), es un pequeño fichero que especifíca como ir de una versión a otra. Contiene texto plano y cuenta con indicaciones similares a delete line 23 (borrar la línea 23), add these two lines after line 468 (añadir estas dos líneas después de la línea 468), o change line 197 to this (cambiar la línea 197 por esto). Tambié son conocidos como ficheros diff, ya que son generados por el programa &man.diff.1;. tarball ¿Qué es eso de tarballs? Es un fichero con extensión .tar o con alguna variación tal como .tar.gz, .tar.Z, .tar.bz2, o incluso .tgz. Básicamente, es un árbol de directorio, que ha sido archivado en un solo fichero (.tar) y en ocasiones comprimido (.gz). Esta técnica se uso originalmente para archivar en cintas (que es de donde proviene su nombre; Tape ARchives), pero es ampliamente usado para distribuir código fuente por todo Internet. Usted puede ver que ficheros se encuentran archivados, o incluso extraerlos usando el programa estandar de Unix &man.tar.1;, que se incluye con el sistema base de FreeBSD, de la siguiente manera: &prompt.user; tar tvzf foobar.tar.gz &prompt.user; tar xzvf foobar.tar.gz &prompt.user; tar tvf foobar.tar &prompt.user; tar xvf foobar.tar checksum ¿Y un checksum? Es un numero generado por la suma de los datos en el fichero que desea consultar. Si alguno de los caracteres cambia, el checksum ya no será igual al total, de tal suerte que esta simple comparación le permite detectar una diferencia. He hecho lo que se indica para compilar ports desde un CDROM y funciona de maravilla hasta que he intentado instalar el port de Kermit. &prompt.root; make install >> cku190.tar.gz doesn't seem to exist on this system. >> Attempting to fetch from ftp://kermit.columbia.edu/kermit/archives/. ¿Por qué no lo puede encontrar? ¿Acaso tengo un CDROM defectuoso? Como se explico en la sección Instalando Ports desde un CDROM, algunos ports no se pueden incluir en CDROM, debido a restricciones de licenciamiento. Kermit es un ejemplo de esto. Los términos de la licencia de Kermit, no permiten su inclusión en el CDROM, así que tendrá descargarlo a mano, una disculpa!. La razón por la cual obtiene esos mensajes de error, es por que no cuenta con una conexión a Internet en ese momento. Una vez que lo haya descargado de alguno de los sitios disponibles (MASTER_SITES listados en el fichero Makefile), puede continuar con el proceso de instalación. Ya hice esto, pero cuando intento guardarlo en el subdirectorio /usr/ports/distfiles obtengo un error diciendo algo acerca de que no cuento por los permisos. El sistema de ports, descarga los ficheros tarball, en el subdirectorio /usr/ports/distfiles, pero muchos administradores de sistema crean un enlace de este directorio a un servidor remoto o a una unidad local de CDROM de solo lectura. Si esta es su situación, entonces deberá especificar un directorio diferente para guardar sus ficheros distfiles, con el siguiente comando: &prompt.root; make DISTDIR=/directorio/local/con/permisos/de/escritura install ¿El esquema de ports trabaja solamente si se tiene todo en /usr/ports? Mi administrador de sistema dice que todo lo debo tener en /u/people/guests/wurzburger, pero parece que no funciona de esta manera. Puede usar las variables PORTSDIR y PREFIX, para indicarle al mecanismo de ports que directorios utilizar. Por ejemplo; &prompt.root; make PORTSDIR=/u/people/guests/wurzburger/ports install compilará el port en /u/people/guests/wurzburger/ports e instalará todo bajo el directorio /usr/local. &prompt.root; make PREFIX=/u/people/guests/wurzburger/local install compilará todo en /usr/ports e instalará todo bajo el directorio /u/people/guests/wurzburger/local. Y claro esta que, &prompt.root; make PORTSDIR=../ports PREFIX=../local install combinará ambos (lo cual es muy largo para escribir aqui, pero debe darnos una buena idea). imake Algunos ports que usan &man.imake.1; (una parte del Sistema de Ventanas X) no trabajan bien con PREFIX, e insistiran en instalar todo bajo /usr/X11R6. De forma similar, algunos ports de Perl ignoran la variable PREFIX y proceden a instalar bajo el árbol de Perl. Hacer que estos ports respeten la variable PREFIX es una tarea difícil si no imposible. Si no le agrada estar tecleando todo esto cada vez que desea instalar un port, es una buena idea incluir estas variables en sus variables de entorno. Lea la documentación de su shell para ver las instrucciones para hacer esto. No cuento con un CDROM de FreeBSD, pero me gustaría contar con todos los ficheros tar a la mano en mi sistema, para no tener que descargarlos cada vez que deseo instalar un port. ¿Hay alguna forma de obtener todos de una sola vez? Para obtener todos y cada uno de los ficheros tar de la Colección de Ports, haga lo siguiente: &prompt.root; cd /usr/ports &prompt.root; make fetch Para todos los tarball de un directorio concreto haga: &prompt.root; cd /usr/ports/directorio &prompt.root; make fetch y para un solo port—bueno, quizás ya lo adivinó. Tengo conocimiento de que probablemente es más rápido descargar los ficheros tarball desde un servidor réplica (mirror) de FreeBSD, más cercano. ¿Existe alguna forma de indicarle al port que descargue los ficheros de un servidor diferente a los listados en MASTER_SITES?. Claro. Por ejemplo, si usted sabe que ftp.FreeBSD.org esta más próximo que los servidores listados en MASTER_SITES, haga lo siguiente: &prompt.root; cd /usr/ports/directorio &prompt.root; make MASTER_SITE_OVERRIDE= \ ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ fetch Quisiera saber cuales son los ficheros que make va a necesitar antes de los descargue. make fetch-list desplegara una lista de los ficheros necesarios para la compilación del port. ¿Existe alguna forma de detener la compilación del port? Deseo editar un poco el código, antes de instalarlo, pero es un poco cansado tener que verlo y pulsar Ctrl C a cada momento. Puede usar el comando make extract, con el cual se detendra el proceso, una vez que se han descargado y extraido los ficheros necesarios. Estoy tratando de hacer mi propio port, y quiero poder detener el proceso, hasta que verifique que mis parches funcionan correctamente. ¿Existe algo similar a make extract, pero para parches? Si, make patch es lo que usted busca. Quizás la opción PATCH_DEBUG le sea de gran utilidad. Y por cierto, gracias por su esfuerzo! He escuchado que algunas opciones del compilador pueden causar errores. ¿Es cierto? ¿Cómo puedo asegurarme de compilar los ports con las opciones correctas? Si, con la versión 2.6.3 de gcc (que es la versión distribuida con FreeBSD 2.1.0 y 2.1.5), la opción puede ocasionar un código con errores, a menos que utilice también la opción (la mayoría de los ports no hacen uso de la opción ). Usted debe poder indicarle al compilador las opciones, con algo similar a: &prompt.root; make CFLAGS='-O2 -fno-strength-reduce' install o bien, editando el fichero /etc/make.conf, pero desafortunadamente no todos los ports respetan esto. La mejor forma es ejecutar make configure, y después dirijirse al directorio con el código fuente e inspeccionar y editar el fichero Makefile, pero esto puede ser tedioso si se cuenta con muchos subdirectorios, y en cada uno su propio fichero Makefile. Lac opciones que por default utiliza el compilador de FreeBSD son muy conservadoras, por lo que si no las ha modificado, no debe tener problemas. Existen muchos ports y es difícil encontrar el que quiero. ¿Existe en algún lado una lista de los ports disponibles? Vea el fichero INDEX, localizado en /usr/ports. Si desea, también puede buscar en la Colección de Ports por medio de una palabra clave. Por ejemplo, puede encontrar ports relevantes al lenguaje de programación LISP usando: &prompt.user; cd /usr/ports &prompt.user; make search key=lisp Deseo instalar el port foo pero de repente el sistema se detuvo y comenzo a compilar el port bar. ¿Qué esta pasando? El port foo necesita algo del port bar — por ejemplo, si foo utiliza gráficos, es posible que bar cuente con librerías con rutinas para procesar gráficos. O bien bar puede ser una herramienta necesaria para compilar el port foo. He instalado el programa grizzle desde los ports y francamente es un desperdicio de espacio en disco. Quiero eliminarlo, pero no se donde se instalaron sus ficheros. ¿Alguna pista? No hay problema, simplemente teclee: &prompt.root; pkg_delete grizzle-6.5 Otra alternativa es teclear: &prompt.root; cd /usr/ports/cualquierlugar/grizzle &prompt.root; make deinstall Aguarda un momento, ¿Se supone que uno debe saber el numero de versión para usar este comando? Hablando en serio, no esperas que recuerde todo esto, ¿o si? No del todo, lo puede saber haciendo: &prompt.root; pkg_info -I 'grizzle*' Information for grizzle-6.5: grizzle-6.5 - the combined piano tutorial, LOGO interpreter and shoot 'em up arcade game. El numero de versión se puede saber usando el comando pkg_info o bien al teclear: ls /var/db/pkg Hablando de espacio en disco, el directorio de ports parece que ocupa mucho espacio. ¿Es seguro eliminar algo de este directorio? Asi es, si ha instalado un programa y esta seguro de que ya no necesita el código fuente, no hay una razón para contar con él. La forma más segura de hacer esto es: &prompt.root; cd /usr/ports &prompt.root; make clean este comando revisará todos los subdirectorios, y procederá a eliminar todo lo que encuentre, salvo los esqueletos del port. Es posible que obtengamos el mismo efecto, pero sin que necesariamente se llame de forma recursiva a cada Makefile. Por ejemplo, puede eliminar directamente todos los subdirectorios work/ con el comando: &prompt.root; find /usr/ports -depth -name work -exec rm -rf {} \; He intentado eso y aun cuento con los tarballs o como se llamen, en el directorio distfiles. ¿Puedo eliminarlos también? Si, si esta totalmente seguro de que ha terminado con ellos, también los puede eliminar. Estos se pueden eliminar manualmente, o bien usando el comando make distclean. Me gusta contar con muchos, muchos programas para jugar con ellos. ¿Existe una forma de instalar todos los ports en un solo paso? Simplemente haga: &prompt.root; cd /usr/ports &prompt.root; make install Tenga cuidado, ya que algunos ports pueden instalar ficheros con el mismo nombre. En el caso de que instale dos programas de gráficos y que ambos instalen /usr/local/bin/plot obviamente le va ocasionar problemas. OK, he intentado esto, pero como supuse que tomaria mucho tiempo, lo deje corriendo y me fui a dormir. En la mañana al ver mi computadora, solo había terminado tres ports y medio. ¿He hecho algo incorrectamente?. No, el problema es que algunos ports requieren preguntarle cosas que no podemos contestar por usted (por ejemplo; ¿En qué tipo de papel desea imprimir, en A4 o en Carta?), y requieren de alguien que les dé respuesta. Realmente no me interesa pasar todo el dí frente al monitor. ¿Alguna mejor idea? OK, haga lo siguiente antes de irse a la cama/trabajo/el parque local: &prompt.root; cd /usr/ports &prompt.root; make -DBATCH install Con esta opción se instalarán todos los ports que no requieren intervención del usuario. Una vez que regrese, haga: &prompt.root; cd /usr/ports &prompt.root; make -DINTERACTIVE install para terminar el trabajo. En mi trabajo usamos frobble, que se encuentra la Colección de Ports, pero lo hemos editado un poco, para que se ajuste a nuestras necesidades. ¿Existe alguna forma de hacer nuestro paquete, para poder distribuirlo más facilmente en nuestros sitios?. No hay problema, asumiendo que usted sabe como crear los parches de sus cambios, puede hacer lo siguiente: &prompt.root; cd /usr/ports/algunlugar/frobble &prompt.root; make extract &prompt.root; cd work/frobble-2.8 [Aplicar sus parches] &prompt.root; cd ../.. &prompt.root; make package Esto de los ports es muy inteligente. Estoy deseperado por saber ¿Cúal es el secreto? No hay secreto, simplemente vea los ficheros bsd.port.mk y bsd.port.subdir.mk que se localizan en /usr/ports/Mk/. (Los lectores que tiene aversión a los scripts de shell, se les aconseja abstenerse de ver los ficheros de este directorio.) Ayuda! Este Port Esta Roto! (Broken) Si se encuentra con port que no trabaj como lo esperaba, existen varias alternativas, que incluyen: Arreglelo!! El libro Porter's Handbook incluye información detallada de la infraestructura de los "Ports", de tal forma que pueda arreglar los ports que ocasionalmente estan defectuosos o inclusive para crear y enviar su propio port! Notifiquelo—por correo solamente! Envie un correo a la persona que da mantenimiento al port. Teclee make maintainer o lea el Makefile para ver el correo de esta persona. Recuerde incluir el nombre y la versión del port (puede enviar la línea $FreeBSD: del Makefile) así como la salida del error que da el port. Si no obtiene respuesta de la persona que da mantenimiento al port, puede usar &man.send-pr.1; para enviar un reporte de error. Descargue el paquete de un servidor FTP cercano. La colección maestra de paquetes se localiza en ftp.FreeBSD.org en el directorio de paquetes, pero asegurese primero de verificar en un servidor réplica (mirror)!. Es mas seguro que estos trabajen, a que tener que compilar las fuentes, también es más rápido. Use el programa &man.pkg.add.1; para instalar paquetes en su sistema.