Debian y Ubuntu para principiantes

FUENTE DEL ARTICULO

Debian y Ubuntu para principiantes

Introducción

A vos que instalaste Debian o Ubuntu te hablo. Sí, a vos. Mi intención es en este pequeño artículo darte algunas herramientas para moverte en esta distribución.
Este artículo no cubre la instalación, eso ya está descripto en muchas partes, además si tenés suerte alguien ya te ayudó o lo hizo por vos. El tema es que después te quedás solo, en frente del teclado, pensando si hiciste bien en meterte en esto de Linux.
Se presupone, eso sí, un conocimiento básico de cómo se usa un Unix, comandos, manipulación de archivos, etc. Este artículo está orientado a la administración.
Todo lo que se dice en este artículo se aplica tanto a Debian como a Ubuntu, ya que el último que es una variante del primero.
Este artículo se centra principalmente en las cosas que se pueden hacer desde la terminal, es decir, tipeando comandos. Esta es la manera tradicional de relacionarse con un sistema UNIX, pero no es la única. También se pueden hacer muchas cosas mediante herramientas gráficas.

Paquetes de software

Instalación y desinstalación

En Debian todo el software viene en paquetes. Algunas reglas sobre los paquetes:

  • Los paquetes tienen un nombre y una versión.
  • No se puede tener instalados dos paquetes con el mismo nombre y diferente versión, una versión de un mismo paquete reemplaza a otra.
  • Cada archivo puede pertenecer a lo sumo a un paquete, nunca a más.
  • Un paquete tiene referencias a otros: puede depender de, recomendar o sugerir otros paquetes.

Un paquete puede estar principalmente en tres estados: instaladosólo la configuracióndesinstalado. El primer y el último estado son obvios, el paquete está o no está. El del medio es más interesante. En este estado el paquete no está, pero sus archivos de configuración sí. Cuando removemos un paquete normalmente, por defecto se lo pasa a este estado, por lo que si lo volvemos a instalar recuperamos la configuración. Cuando estamos seguros que podemos deshacernos de todo rastro de ese paquete entonces hay que no sólo desinstalarlo, sino purgarlo.
El utilitario base de Debian para la instalación/desinstalación de paquetes es dpkg. Existe también un “front-end” de dpkg llamado apt-get.
Ahora veamos algunos comandos para moverse con estas ideas:

Maneras de usar el comandos dpkg
Para… Comando
Listar los paquetes instalados y sus versiones. dpkg -l
Desinstalar un paquete. dpkg -r paquete
(No recomendado, usar el comando apt-get descripto más adelante).
Instalar un paquete desde un archivo .deb. dpkg -iGEB archivo.deb
Ver el estado de un paquete instalado. dpkg -s paquete
Desinstalar y «purgar» un paquete (eliminar también su configuración). dpkg -P paquete

Para no andar lidiando con bajar paquetes a mano se inventó la utilidad apt-get. Esta utilidad se baja archivos con la lista de todos los paquetes existentes y construye en memoria todo el entramado de relaciones que forman los paquetes con sus interdependencias. Luego, uno le pide una acción: “Quiero tener instalado tal cosa”. La utilidad apt-get va a calcular cuáles son los pasos necesarios para pasar del estado actual al pedido, sin dejar de satisfacer las dependencias de todos los paquetes. Podríamos decir que mientras que el dpkg trabaja sobre un solo paquete, apt-get considera el sistema como un todo, y maneja las dependencias de todos los paquetes a la vez.
La utilidad apt-get requiere un mínimo de configuración. Necesita saber de dónde bajarse los listados con paquetes. Extrae estos datos de un archivo /etc/apt/sources.list. La forma fácil en Ubuntu de editarlo es mediante la opción «Orígenes de Software» en el menú de administración. En Debian se puede hacer desde la consola usando el comando apt-setup Este programa te va a preguntar qué distribución querés. En Debian las opciones son: “estable”, “inestable”, “testing”. Te recomiendo que elijas “inestable”, que es donde está lo más nuevo para máquinas personales, y estable para servidores (ya que estable recibe actualizaciones de seguridad más rápidamente).
Ahora que está configurado, para que se baje la lista de paquetes hay que usar el comando apt-get update. A continuación un resumen de éste y otros comandos importantes relacionados con el apt-get.

Maneras de usar los comandos apt-get y apt-cache
Para… Comando
Bajar nuevas versiones de las listas de paquetes (hacer frecuentemente). apt-get update
Instalar (o actualizar) un paquete. apt-get install paquete (¡usar antes apt-get update para asegurarse de que apt vea las últimas versiones disponibles!)
Desinstalar un paquete. apt-get remove paquete (con --purge también elimina su configuración)
Buscar un paquete entre todos los existentes. apt-cache search paquete
(con -f muestra descripciones completas)
Actualizar toda la distribución a las últimas versiones. apt-get dist-upgrade
Hacer espacio borrando los paquetes ya instalados del «cache». apt-get clean


Si tenés más dudas sobre este comando podés consultar la documentación sobre apt.
Una vez instalado el paquete hay varias formas de empezar a investigar cómo usarlo.

  • El comando dpkg -L paquete nos mostrará qué archivos del sistema pertenecen al paquete.
  • El paquete habrá creado un directorio /usr/share/doc/paquete en el que estará toda la documentación que trae. En ese mismo directorio puede haber un archivo README.Debian.gz con lo que la persona de Debian que armó el paquete haya considerado necesario decirnos.
    Si tomás la no muy linda decisión de instalar software por su cuenta, hacelo en /usr/local o /opt. Debian te promete que nunca ningún paquete instalará o manipulará nada debajo de esos directorios. Esos directorios, en Debian, se definen como el área privada del administrador local.

Ahora que te aprendiste la manera difícil de hacer las cosas te muestro la fácil. En verdad no es que sea más fácil, debería sólo decir «más vistosa». Esta manera consiste en instalar el paquete synaptic que provee una interfaz visual para hacer estas operaciones. Lo que tiene de interesante es que se adapta perfectamente al modelo de uso propuesto por apt. En esta herramienta uno va preparando lo que quiere hacer y el programa va proponiendo cuáles son los cambios necesarios. Sólo cuando uno confirma se bajan los archivos necesarios y se aplican los cambios (instalaciones, desinstalaciones, configuraciones).

Configuración

Todos los paquetes dejan sus archivos de configuración debajo de /etc. Si en la versión original un software no hace ésto, en Debian ese mismo software está modificado para que sí lo haga. Asimismo, es costumbre en Debian que todo archivo de configuración tenga su página de manual. Es decir que si nos interesa leer sobre /etc/fstab podemos tipear en el prompt man fstab.
Algunos paquetes no dependen exclusivamente de la edición de archivos en /etc, sino que usan un mecanismo conocido como debconf. Estos paquetes son los que le preguntan cosas en el momento de instalación y luego se configuran solos. Si uno quiere volver a ver esas opciones para cambiar alguna configuración hay que utilizar el siguiente comando: dpkg-reconfigure paquete como root.

Conffiles

Para caerle bien a los administradores y a aquellos que editamos a mano muchos archivos de configuración (que por otra parte siempre termina siendo necesario), Debian posee un mecanismo simple y simpático. Los paquetes marcan varios de sus archivos como «conffiles». Los archivos así señalados son manejados especialmente. El programa dpkg va a intentar mantener nuestras ediciones, pero al mismo tiempo nos va a ayudar a aplicar los cambios que llegan en nuevas versiones.
Al momento de actualizar el paquete sucede lo siguiente:

  • Si el archivo instalado no fue tocado y la nueva versión del paquete trae uno que sí lo fue, entonces el nuevo reemplaza al viejo.
  • Si el archivo está localmente modificado y la nueva versión en el nuevo paquete no tiene cambios respecto de la versión original de la versión vieja del paquete entonces se mantiene nuestra modificación.
  • Si ambas, la versión nuestra local y la que viene en el paquete, son nuevas entonces se le pregunta al usuario qué hacer: ¿Instalar el nuevo? ¿Mantener el viejo? ¿Ver las diferencias?

En cualquier caso se dejan en el disco las dos versiones para que el administrador las unifique a piaccere.

Preferencias regionales

Para configurar su Debian/Ubuntu de modo de que se ajuste a sus preferencias regionales deberá editar /etc/environment y asegurarse de que haya una línea LANG=ii_PP, donde ii es el código de idioma (es para español), y PP es el código de país (AR para Argentina, UY para Uruguay, etc.). Para español en Argentina la línea sería sería LANG=es_AR.
Además es necesario que se «compile» la información de locale que elijamos. Para eso es necesario ejecutar dpkg-reconfigure locales.
Con respecto al huso horario, éste se cambia con el comando dpkg-reconfigure tzdata. Ahí se elige la ciudad o región en la que uno está, el sitema operativo ya conoce las reglas de horarios de verano y las aplica automáticamente. A veces sucede que esa información queda obsoleta porque los gobiernos cambian sus políticas, por eso conviene mantener el paquete tzdata (que tiene esa información) actualizado.

Organización del disco rígido

La organización del disco es similar a la de muchos otros UNIX, con la diferencia de que Debian es mucho más estricta a la hora de definir qué cosas van en cuáles directorios. A continuación una explicación de qué significado tienen para esta distribución algunos directorios.

Funciones de los directorios
Directorio Contenido
/bin y /usr/bin Ejecutables del sistema que les puede interesar a todos los usuarios.
/sbin y /usr/sbin Ejecutables del sistema que les suele interesar sólo a root.
/boot Kernels y otros archivos relacionados con el booteo.
/etc Archivos de configuración.
/var/log Archivos de log.
/usr Archivos que solo se escriben cuando se instala soft.
/usr/local Area para que el administrador instale software que no viene en paquetes.
/usr/share/doc Documentación de los paquetes instalados.
/usr/share/man Páginas de manual (se leen con el comando “man”).

Funcionalidades varias

Comandos periódicos

Si uno quiere ejecutar cierto comando o comandos cada tanto, en Debian eso es muy fácil. Existen directorios en los cuales todo archivo dejado en ellos es ejecutado según una frecuencia:

Directorios para agendar la ejecución de comandos
Directorio Frecuencia
/etc/cron.daily diaria
/etc/cron.weekly semanal
/etc/cron.monthly mensual

Es muy sencillo entonces simplemente crear archivitos con «scripts», hacerlos ejecutables con chmod y quedarse mirando el reloj atentamente para maravillarse con la automática ejecución de esos comandos. Esos directorios no van a estar vacíos, ya que los paquetes los usan para tirar ellos archivitos y pedirle a cron que les ejecute sus tareas de mantenimiento. Está completamente permitido curiosear y modificarlos, ya que como son «conffiles» su modificación será manejada correctamente por dpkg.

Servicios

Se conoce como «servicios» a los programas que quedan corriendo en segundo plano para proveer alguna funcionalidad. Son ejemplos de servicios una base de datos, un servidor web, el daemon para recibis «logs», etc.
Cada servicio tiene por lo general un script en /etc/init.d para empezarlo, recargarlo y terminarlo. Por ejemplo, para parar el servidor Apache basta con ejecutar sudo /etc/init.d/apache2 stop. El nombre de servicio casi siempre coincide con el nombre del paquete.
Los parámetros de estos scripts están estandarizados y son: stop, start, restart, reload y force-reload. La idea de «reload» es que nunca reinicia el servicio, sino que recarga la configuración. Los servicios que no admiten esta posibilidad dan error si uno ejecuta reload, la idea es que uno puede hacerlo sin pensar mucho, sabiendo que reload siempre es un reinicio suavecito. La opción force-reload es igual, pero si el daemon en cuestión no maneja una recarga elegante, lo reinicia y listo.
Quizá los que viene de otras distribuciones esperen ver el utilitario chkconfig, que sirve para configurar qué se servicio se inicia. En Debian está, pero hay que instalar el paquete (que astutamente se llama chkconfig).

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *