| Despabilando la MonoNeurona::Internet es de todos [Inicio] [Regresar] |
|
Debian \ Apt-get en Debian Este artículo ha sido consultado en 2,485 ocasiones. La distribución Debian se basa en paquetes .deb, incluso el kernel se instala a través de un paquete deb. Las herramientas dpkg y apt-get son las responsables de que mucha gente elija a Debian como su distribución por su configurabilidad y potencia. apt-get y dpkg no instalan binarios abandonados a su suerte como otros sistemas de paquetes, sino que poseen verdaderas rutinas inteligentes pre-install y post-install que modifican la configuración según el ambiente y "guian" al programa para lograr una buena instalación. Estos scripts se pueden ejecutar de nuevo si deseamos cambiar la configuración de un programa. Es esta flexibilidad detrás de cada paquete lo que hace de dpkg y apt-get unas herramientas hasta la fecha insuperadas. El sistema de paquetes de Debian se maneja a través de una base de datos que es consultada cada vez que se desea instalar, actualizar o remover un paquete. Cuando se lleva a cabo una de estas operaciones, la base de datos se bloquea para asegurar su integridad, una vez que el proceso a concluido satisfactioriamente, la base de datos se desbloquea. Esto significa que no se pueden ejecutar dos instancias del comando dpkg o apt-get simultáneamente.
DPKG El comando dpkg fue el primer comando desarrollado para instalar y desinstalar paquetes individuales en Debian, dado que afecta a todo el sistema solo el usuario root puede ejecutarlo. La sintaxis básica del comando es la siguiente: #dpkg -i nombre_del_paquete.deb La opción -i (install) instala el paquete mientras que la opción -r (remove) lo elimina del sistema. Al usar dpkg es necesario incluir la extensión .deb, lo cual es molesto cuando queremos instalar un paquete como libc6-dbg_2.3.2.ds1-12_i386.deb. Si, los nombres de paquete son largos, pero dpkg acepta el asterisco (*) como comodín para el conjunto de caracteres, de modo que una manera sencilla de instalar este paquete sería: # dpkg -i libc6-dbg*.* Además de esta facilidad, cuando existe un nombre de archivo o directorio largo, el BASH de Linux autocompletará el nombre si teclamos las primeras letras del paquete y luego presionamos la tecla tab. El orden de la instalación de los paquetes es importante, aún cuando tenga todos los paquetes necesarios en un directorio. Un simple: #dpkg -i *.* No es garantía de que funcione, pero no hay de que preocuparse, dpkg le guiará en el proceso indicándole que paquetes debe instalar antes y cuales después. Hay casos (sobre todo en las versiones unstable) en las que nos encontramos en una situación irritante: dpkg envia el mensaje de que el paquete A no puede instalarse porque falta el paquete B y al intentar instalarlo dpkg envia el mensaje de que el paquete B no puede instalarse porque falta el paquete A. Si usted es un usuario con experiencia y sabe cual paquete debe instalarse para destrabar la situación, puede forzar la instalación del paquete con # dpkg --force-all -i nom_paquete.deb Antes de hacer esto revise que sus repositorios no esten mezclados y que ha hecho un dist-upgrade. Padawan: usa esta opción de forzado de paquetes con sabiduría y prudencia :-). Para que se nos presente una lista de todos los paquetes que tenemos instalados en nuestro sistema: # dpkg -l Si queremos saber si ya está instalado algún programa, por ejemplo Gimp, tecleamos: # dpkg -l | grep gimp Este comando nos devolverá los paquetes que contegan el string "gimp" y sus versiones de paquete. APT-GET Las dependencias son paquetes adicionales que se deben instalar (o remover) antes de instalar un paquete. Por ejemplo, para instalar el paquete apache necesitara entre otros, el paquete apache-common, pero a su vez este paquete tiene una dependencia con apache-utils. Esto se conoce como el infierno de las dependencias. Un problema con el comando dpkg es que no resuelve dependencias, las enumera, pero no las resuelve. Los desarrolladores de Debian solucionaron brillantemente el problema con la creación de repositorios de paquetes y del programa apt-get, una joya insuperada del mundo Debian. En el archivo /etc/apt/sources.list se encuentra la lista de repositorios que usa apt-get para descargar paquetes de la red. Un repositorio es simplemente un directorio (generalmente en Internet) donde se encuentran los paquetes que los desarrolladores de Debian crean día con día. Los repositorios poseen tres ramas, las ramas identifican el tipo de licencia de los paquetes:
Bien, dicho en sencillas palabras, el programa apt-get consulta el archivo /etc/apt/sources.list, compara la lista de paquetes del repositorio con la base de datos de su sistema y, si existen diferencias, instala los paquetes nuevos. Veamos dos ejemplos de repositorios típicos: deb http://debian.lcs.mit.edu/debian testing main contrib non-free La línea con el inicio deb indica que se trata de paquetes binarios ya compilados, la sección http:// indica que ese es el protocolo que se debe usar para descargar los archivos, la sección debian.lcs.mit.edu/debian y debian.rutgers.edu/ indica en que servidor y que ruta en ese servidor debe tomar apt-get para encontrar los paquetes, testing le dice a apt-get que se trata de la versión de desarrollo de Debian, también puede usar el nombre clave Sarge. Las secciones main, contrib y non-free (como ya hemos visto) indican que apt-get debe buscar en todos los tipos de licencia. Otro ejemplo de línea en el archivo sources.list: deb-src ftp://debian.lcs.mit.edu/debian stable main Esta línea señala que se trata de código fuente deb-src es decir que no son paquetes binarios, que debe usarse el protocolo ftp para traer estos paquetes, que la versión es la estable y que sólo busque paquetes de la sección principal (main) que es con mucho la más grande de Debian. Si se és un usuario nuevo en Linux es improbable que necesitemos un repositorio de fuentes, lo he puesto en el ejemplo para que el usuario conozca los diferentes tipos de repositoros. Mi archivo sources.list luce así, (las líneas que comienzan con un sostenido ( # ) son ignoradas): #Mi repositorio principal: un mirror en la UNAM, México Una vez que el archivo del repositorio está creado se debe actualizar la lista de paquetes disponibles y sus dependencias, para ello usamos el comando apt-get así: #apt-get update Por supuesto, usted debe estar conectado a Internet para que sea posible actualizar la base de datos de paquetes. Luego de que la opción update ha actualizado los paquetes debemos actualizar nuestro sistema con: # apt-get -f dist-upgrade Lo que hace este comando es decirlo a apt-get "ve, busca y trae los paquetes más nuevos si es que los hay". La opción -f forza la continuación de la actualizacion si algo sucede. Después de la actualización podemos descargar el programa que deseemos con el comando: #apt-get install nombre_del_paquete A diferencia de dpkg, con apt-get no se debe poner el .deb al final del nombre del paquete. Para saber el nombre exacto de un paquete podemos entrar en http://packages.debian.org y buscarlo o con el comando: # apt-cache search nombre_del_paquete Por ejemplo, si estamos buscando un quemador de CDs podemos teclear: # apt-cache search burning que nos devolverá una lista de programas relacionados con la palabra ÂburningÂ, entre ellos K3B, un excelente quemador para KDE. Si queremos ver más detalles de este paquete tecleamos: # apt-cache show k3b que nos mostrará otros aspectos del paquete como el tamaño, dependencias, la versión y una mayor descripción. Si después de ver la información hemos decidido instalarlo, lo hacemos con: # apt-get install k3b esto creará dependencias como el programa mkisofs y cdrecord que también serán instalados ¡apt-get rules! Al instalar un paquete, apt-get le mostrará paquetes recomendados (recommended packages) y paquetes sugeridos (suggested packages). Los paquetes recomendados son aquellos sin los cuales alguna funcionalidad del programa se pierde (aunque esa funcionalidad no es requerida por la gran mayoría de los usuarios). Por otra parte, los paquetes sugeridos son aquellos que se relacionan de manera menos importante con el programa que se va a instalar. Es decir que los recomendados poseen mayor preeminencia que los sugeridos, de hecho, algunas herramientas como "aptitude", instalan los paquetes recomendados junto con las dependencias de manera automática. Conclusión: si algo no funciona con su programa, instale los paquetes recomendados. Al igual que con dpkg, podemos usar el asterisco para instalar y remover paquetes: # apt-get remove mozill* Por omisión, apt-get no desinstala la documentación ni los archivos de configuración de los paquetes. Para evitar esto y borrar totalmente un paquete use la opción "--purge": # apt-get remove --purge apache* Todos los paquetes que son instalados con apt-get, primero se descargan en el directorio "/var/cache/apt/archives". Luego de varias actualizaciones puede tener hasta un gigabyte de espacio ocupado por las varias versiones de los programas que se han instalado. Si desea dejar sólo las versiones más modernas en "/var/cache/apt/archives" teclee: # apt-get autoclean Si desea borrar todos los paquetes de "/var/cache/apt/archives" para liberar espacio en disco: # apt-get clean Algunas veces, al instalar un paquete se nos preguntará si deseamos manejarlo con debconf, una herramienta de configuración exclusiva de Debian que modifica las configuraciones de los paquetes ejecutando la sección postinstall de los paquetes. Debemos contestar que si a esta pregunta y asì cada vez que queramos modificar una configuración podemos ejecutar el comando: # dpkg-reconfigure nombre-del-paquete Por ejemplo, de lunes a viernes obtengo la dirección IP de mi laptop de manera dinámica con el DHCP de la oficina, mientras los fines de semana la IP es estática para poder usar el viejo proxy/firewall que tengo en mi casa, así que cada lunes en la mañana y cada sábado a mediodía ejecuto el comando: #dpkg-reconfigure etherconf que actualiza la configuración de mi tarjeta de red. (Por supuesto, para que esto funcione antes debió instalar el paquete etherconf). El programa Midnight Commander (mc) nos ayuda a trabajar con archivos, a hacer ligas simbólicas, tiene un excelente editor integrado, puede descomprimir archivos con su sistema de archivos virtuales (virtual file system) y puede usarse como cliente de ftp, es toda una joya, si aún no lo tiene instalado instálelo ahora y pronto descubrirá lo útil y poderoso que es: #apt-get install mc Para mantener un sistema Debian actualizado con una sola línea debe ejecutar: #apt-get update && apt-get -f dist-upgrade && apt-get clean por lo menos una vez a la semana, esto es muy importante por cuestiones de seguridad. La mayoría de los agujeros de seguridad se abren cuando el administrador del sistema no actualiza con la suficiente frecuencia. El paquete deborphan nos sirve para remover los paquetes inútiles que se han ido acumulando en nuestro disco, estos paquetes "colgados" (generalmente librerías auxiliares de extraños nombres) fueron dependencias que se instalaron con algún paquete principal y luego no fueron removidas. Instale deborphan y posteriormente ejecute el siguiente comando para remover los paquetes colgados de su equipo (note las comillas inclinadas): . #apt-get --purge remove `deborphan` ¡apt-get no encuentra los paquetes Si se esta detrás de un proxy es necesario indicarle a apt-get la dirección IP y el puerto de salida del proxy, con un editor de texto habrá los archivos ocultos /root/.bashrc y /root/.bash_profile (los archivos y directorios ocultos comienzan con un punto): # mc -e /root/.bash_profile y agregue las líneas que indican los datos del proxy, en mi caso he agregado estás dos líneas: export http_proxy=http://128.19.54.25:8080/ Cierre y abra la consola, para asegurarse que el proxy ya está definido escriba: # echo $http_proxy En caso de que cuente con un proxy transparente no es necesario agregar estás líneas, si no sabe cual es la dirección IP ni el puerto de su proxy revise las opciones de conexión de un navegador que salga a internet o más sencillo, pregunte a su administrador de redes. Cuando el repositorio se cae En algunas ocasiones, sobre todo los domingos y días festivos, nuestro repositorio habitual de paquetes se cae o no responde cuando necesitamos un paquete. En estos casos muchos acostumbramos buscar en google un ejemplo de archivo /etc/apt/sources.list para copiar y pegar. ¿Pero no sería mejor encontrar el mejor repositorio? Debian cuenta con dos herramientas, apt-setup, un programa contenido en el paquete base-config, y netselect-apt, que puede bajarse con "apt-get install netselect-apt". El primer programa, apt-setup, nos pregunta cómo deseamos acceder a los paquetes: por http, ftp, directorios locales o CDROM. Luego nos pregunta en qué país estamos y al seleccionar uno nos da a elegir varios repositorios cercanos de cuya existencia quizás no estábamos enterados. Luego de seleccionar el repositorio se realiza un update y todo queda listo. Si no estamos en woody debemos editar el sources.list y cambiar en donde dice "stable" por "testing" o "unstable", según la rama en la que estemos, o queramos estar. netselect-apt, por otra parte, descarga las lista de repositorios debian en todo el mundo, hace un escaneo y diagnóstico de velocidad y escribe un archivo sources.list en el directorio donde se ejecuto (debido a lo cual no debemos correrlo en /etc/apt ya que sobreescribiría nuestro archivo). En mi caso apt-setup y netselect-apt concuerdan en que el repositorio de la Universidad de México es el más cercano, pero habrá ocasiones en que no sea asi. En esos casos debemos probar primero con el repositorio de nuestro país, y si notamos una lentitud no acostumbrada probaremos con el que nos dice netselect-apt. Con estos pasos siempre tendremos nuestros sistemas actualizados y con los parches de seguridad al día. ¿Dudas o preguntas? Suscríbase a la lista de correo Debian-Knoppix-Ubuntu Última actualización: 2007-04-29 10:57:00-05 |
| Este trabajo está licenciado bajo la MonoNeurona Commons License. 2002-2008 © :: Colectivo MonoNeurona.org :: |