En esta nota:

  • Preparamos Ubuntu Hardy para loguearnos en el entorno chroot de Debian Lenny.
  • Agregamos login via ssh al entorno chroot y soporte para sftp.

De esta forma, podremos acceder al chroot abriendo una terminal en tty6 (Ctrl+Alt+F6) O loguearnos via ssh al chroot.

Este arcticulo es la continuacion de debootstrap y chroot Debian Lenny en Ubuntu 8.04 Hardy donde se explicaba como instalar Debian Lenny en un directorio del disco rigido con el comando debootstrap. (Notar que NO es necesario realizar una nueva particion, simplemente con tener espacio en disco es suficiente, ya que el entorno chroot se monta sobre cualquier directorio vacio ). En esta nota presupongo que se ha leido la nota anterior.

Los entornos chroot tambien son conocidos por el apodo de ‘jaulas’, ya que una vez que el usuario esta dentro, nada de lo que haga puede afectar al sistema de archivos que quede fuera de la ‘jaula’. Por ejemplo, si la jaula se monta en /chroot/lenny , un usuario logueado en el entorno chroot no podra acceder a ningun archivo que este fuera de /chroot/lenny , por mas que este logueado como root en la jaula, ya que simplemente ‘no puede verse’ lo que esta fuera de la jaula.

Por ejemplo, Estando dentro de la jaula /chroot/lenny/

podra acceder a:
/chroot/lenny/etc --> dentro del entorno sera visto como si fuera /etc
/chroot/lenny/bin --> dentro del entorno sera visto como /bin
/chroot/lenny/root --> dentro del entono se mapea somo si fuera /root

Pero no podra acceder a:
/chroot/
/etc
/bin
/root

Aplicaciones comunes de los entornos chroot

Los entornos chroot o jaulas, tienen varias aplicaciones practicas, por ejemplo:

Seguridad:

Servidores como apache, ftp, de mail y cualquier otro servicio o daemon desde el cual se tiene acceso a traves de internet, corren mas seguros dentro de una jaula, puesto que en caso de ser vulnerados o comprometidos por un atacante externo, el atacante no podra ganar el control total de la maquina, puesto que solo tendra acceso a los archivos que se encuentren dentro de la jaula. En la mayoria de los casos, inclusive es dificil darse cuenta si uno a ingresado a una jaula o a un entorno normal. Algunos administradores van al extremo de afirmar que es mejor correr todos los servicios dento jaulas, por el tema de la seguridad.

Testing:

Dentro del entorno chroot se puede dar rienda suelta a experimentar o realizar pruebas riesgosas, ya que cualquier cambio que hagamos podemos estar seguros de que no nos afectara nuestra distribucion principal. Es mas, es posible hacer un backup del entorno chroot para luego poder ‘romperlo’ y volverlo a recuperar todas las veces que queramos :-)

Building:

Para compilar e instalar paquetes que pertenecen a otra distribucion, sin miedo a que la instalacion nos afecte algo de la distribucion principal.

Bleeding Edge:

Simplemente, para tener una distribucion estable y luego otra donde poder descargar y probar los ultimos paquetes del momento. Aunque estos ultimos no sean tan estables, no corremos ningun riesgo instalandolos en el entorno chroot.

Bueno, y la lista sigue … solo hay que tener un poco de imaginacion y conocer que es posible configurar este tipo de entornos para que se nos empiecen a ocurrir utilidades …

Enlace simbolico al chroot

Notacion: Como convencion en los siguientes ejemplos, cuando la distincion sirva para aclarar, el prompt de la maquina principal sera #hardy, y el prompt de la jaula sera chroot#
El simbolo # indica que somos root. El simbolo $ indica usuario normal.

Si tenemos pensado crear varios entornos chroot en el futuro, conviene acomodar las cosas …

Hagamos un directorio /chroot donde poner los enlaces simbolicos a todos los chroots ( por ahora uno solo, pero en preparacion para simplificar la administracion de eventuales y futuros chroots )

# cd /
# mkdir chroot
# cd chroot
# ln -s /media/sda3/lenny_chroot  lenny

Montar el filesystem proc del entorno chroot

en /etc/fstab agregamos esta linea

proclenny      /chroot/lenny/proc      proc    none    0       0

Y montamos el proc

hardy# mount /chroot/lenny/proc/
mount: no se puede encontrar /chroot/lenny/proc/ en /etc/fstab o /etc/mtab

Oppss !
Al especificar el punto de montaje para el filesystem proc del entorno chroot no hay que poner la barra final si no la habias puesto al configurar el archivo /etc/fstab…

hardy# mount /chroot/lenny/proc

Nota: en el ejemplo, tambien se puede especificar directamente “mount proclenny”.

La salida del comando mount ahora agrega una linea:

# mount
...
proc-lenny on /media/sda3/lenny_chroot/proc type proc (rw,none)

Un pequeño inconveniente con el que me encontre, es que cuando se rebootea la maquina, no se levanta automaticamente la linea configurada en el /etc/fstab correspondiente al filesystem proc del chroot (en el ejemplo proclenny ).
Luego de probar distintas configuraciones del /etc/fstab, por ejemplo agregarle user,auto a las opciones de la linea proclenny, desisti.
Lo resolvi simplemente agregando el pequeño script /etc/init.d/mountproclenny.sh
y su correspondiente enlace simbolico en /etc/rc2.d/S15mountproclenny

/etc/init.d/mountproclenny.sh

#! /bin/sh

mount proclenny
# ln -s /etc/init.d/mountproclenny.sh /etc/rc2.d/S15mountproclenny

Configuracion del entorno chroot

Para poder disponer de servidores DNS y navegar internet desde el entorno chroot, debemos copiar el archivo /etc/resolv.conf al nuevo entorno:

# cp /etc/resolv.conf  /chroot/lenny/etc/

Y copiamos los nombres de hosts que tengamos configurados en la maquina anfitriona para que el entorno chroot tambien los conozca.

# cp  /etc/hosts /chroot/lenny/etc/

Ingreso al entorno chroot

Si todo ha salido bien, ya podemos probar de acceder a un shell en el nuevo entorno.

hardy# LANG=C chroot /chroot/lenny  /bin/bash
chroot #

En este momento, todavia no hay usuarios creados en el entorno chroot -- esta virgen -- por lo cual la carpeta home estaria vacia.
Pero no debemos apurarnos a crear usuarios en este momento. Ya veremos la forma conveniente de hacerlo en breve.
El ingreso de esta manera es muy simple, pero tiene algunos inconvenientes, por ejemplo que mantiene variables de shell del login normal dentro del shell chroot, lo cual puede traer algunos problemas.

Configuracion de una terminal en modo texto para ingresar al entorno chroot

Lo mas practico es configurar una terminal aparte para el nuevo entorno, con login y todo, de modo que cuando nos loguiemos en el nuevo entorno, realmente empecemos como si fueramos un nuevo usuario, con todas las variables inicializadas ya en el nuevo entorno.

Disponemos de 6 terminales de texto: tty1 (Ctrl + Alt + F1) , tty2 (Ctrl + Alt + F2 ) y asi sucesivamente hasta tty6. Siendo, la tty7 en general asignada a la terminal grafica.

Si nunca habias abierto una terminal de texto de esta forma, puedes probar ahora pulsando (Ctrl+Alt+F1). Esto nos saca del entorno grafico, y nos lleva a una terminal en modo texto puro. No te asustes si la pantalla se pone toda negra. En esa pantalla aparecera un login de shell. Para volver al modo grafico, pulsa Alt+F7. La terminal en modo texto permanecera logueada y tal cual como la dejaste antes de dulsar Alt+F7 para volver al modo grafico. Asi que se puede ir intercambiando entre modo texto y modo grafico segun la conveniencia.

Como disponemos de 6 terminales de texto, le pediremos prestada una a Ubuntu para darsela a Debian. Usaremos por ejemplo la tty6, de modo que cuando pulsemos (Ctrl+Alt+F6) nos estaremos logueando a la terminal en modo texto del entorno chroot con Debian Lenny !!

Para configurarlo de esta forma, es necesario modificar unos archivos de texto de configuracion de Ubuntu.

a partir de ubuntu 7 y por lo tanto en ubuntu 8 y posteriores, el archivo /etc/inittab se reemplaza por el directorio /etc/event.d/
En Ubuntu, el sistema init tradicional es reemplazado por el nuevo sistema upstart
Para mas informacion consultar: /usr/share/doc/upstart

modificar archivo /etc/event.d/tty6
de la siguiente manera:

hardy# /etc/event.d# cat tty6

# tty6 - getty
#
# This service maintains a getty on tty6 from the point the system is
# started until it is shut down again.

start on runlevel 2
start on runlevel 3

stop on runlevel 0
stop on runlevel 1
stop on runlevel 4
stop on runlevel 5
stop on runlevel 6

#respawn
#exec /sbin/getty 38400 tty6

exec /usr/sbin/chroot	/chroot/lenny/	/sbin/getty 38400 tty6
respawn

IMPORTANTE: para que funcione hay que invertir las lineas originales:
la linea respawn debe ir despues de la linea exec.
Segun la documentacion, la linea exec contiene parametros para el respawn.
Estuve un buen rato hasta descubrir porque la modificacion no provocaba ningun cambio al decirle a init que relea la configuracion, para habilitar la tty6 para el nuevo entorno.

En Ubuntu 7 y 8, es posible reinicializar la configuracion de cada terminal por separado, por lo que el comando init q puede ser reemplazado
por los comandos mas especificos:

# stop tty6
# start tty6

Ejemplo:

hardy# stop tty6
tty6 (stop) running, proceso 4634
tty6 (stop) pre-stop, (principal) proceso 4634
tty6 (stop) stopping, proceso 4634
tty6 (stop) killed, proceso 4634
tty6 (stop) post-stop
tty6 (stop) waiting

hardy# start tty6
tty6 (start) waiting
tty6 (start) starting
tty6 (start) pre-start
tty6 (start) spawned, proceso 22495
tty6 (start) post-start, (principal) proceso 22495
tty6 (start) running, proceso 22495

Luego pulsar
Ctrl + alt + f6

para obtener una consola con un login

Como ejemplo, aca pongo la salida de como se ve en mi maquina el login de la terminal tty2 (Ubuntu, la distribucion anfitriona)
y la salida del login de la terminal tty6 (Debian Lenny, corriendo en el chroot )

pulsando: ctrl + alt + f2

Ubuntu 8.04 hardy tty2
hardy login: _

luego, volver al entorno grafico pulsando: Alt + F7

pulsando: ctrl + alt + f6

debian gnu/linux lenny/sid  hardy  tty6
hardy login: _

IMPORTANTE: Hay que revisar que se haya montado correctamente el filesystem proc del entorno chroot (en nuestro ejemplo proclenny).
De lo contrario, el entorno chroot no funcionara muy bien.
Un sintoma de esto es por ejemplo si estando en el entornho chroot, nos da error al ejecutar el comando “su”.

Eso es todo. A partir de aqui es como si se estuvieran logueando en modo texto en una distribucion recien instalada.
Pero todavia no se precipiten que hay mucho mas.
En los siguientes parrafos veremos como acceder al entorno via ssh.
Y ademas, como instalar y levantar el motor grafico del entorno chroot !!
Lo divertido, es que una vez que logremos configurar el motor X del entorno chroot, podremos intercambiar entre ambos entornos graficos, simplemente pulsando una combinacion de teclas para pasar de un entorno grafico al otro, al mejor estilo KVM, o maquina virtual tipo vmware o Xen, pero al 100% de eficiencia, ya que no estamos emulando el hardware, simplemente estamos compartiendo el kernel, memoria y espacio en disco con el nuevo entorno.

Nota: Para que todo funcione sin problemas, es necesario que las dos distribuciones Linux (tanto la anfitriona como la del entorno chroot, sean de la misma rama del kernel, por ejemplo, que ambas utilicen kernel 2.6 ).

En mi caso he probado sin problemas con las siguientes combinaciones:
Host: Debian Sarge –> chroot: Debian Etch.
y
Host: Ubuntu 8.04 –> chroot: Debian Lenny.

ssh chrooted login

Si ademas configuramos un ssh chrooted login, podremos loguearnos directamente al shell del entorno chroot desde cualquier computadora via ssh, no solamente desde la maquina local.
Otra ventaja adicional, es que podremos loguearnos desde la distribucion principal via ssh hacia el entorno desde cualquier consola virtual en modo grafico, sin necesidad de abrir la consolo modo texto de los tty.

suponiendo que la maquina donde reside nuestra ditribucion principal o anfitriona tiene configurado un hostname de “nombrehost”,
entonces la idea es que al ejecutar el comando

$ ssh usuariochroot@nombrehost

en vez de loguearnos a la distribucion principal del host, nos logueamos directamente al entorno chroot que reside dentro.
Esta distincion se logra teniendo diferentes nombres de usuario para cada entorno. Al ejecutar

$ ssh usuarioNORMAL@nombrehost

nos estaremos logueando a la distribucion normal, pero si empleamos el usuario del entorno chroot, entonces nos loguearemos dentro de la jaula.

Para lograr esto es necesario configurar con mucho cuidado y sin omitir ningun paso, los usuarios, logins, directorios homes y permisos como se detalla a continuacion.

Como funciona el chrooted login ?

No te preocupes si no entiendes la siguiente explicacion, la iras comprendiendo a medida que sigas los pasos, pero a grandes razgos el funcionamiento es el siguiente:

  • Nos logueamos via ssh a la maquina principal, la cual esta corriendo el servicio sshd.
  • El usuario con el cual nos identificamos, es un usuario configurado de forma especial, de modo que cuando se ejecute su shell luego del login, este shell debera redirigirlo automaticamente y sin excepcion dentro de la jaula.
  • Esto ultimo se logra reemplazando el shell normal del usuario configurado en el archivo /etc/passwd para que ejecute un script especial, el cual a su vez invocara el comando chroot para dejar al usuario dentro de la jaula.
  • Por ultimo, para ejecutar chroot es necesario tener permiso de root, por lo cual dentro del script que redirije mediante chroot se usara el comando sudo. Por consiguiente, no hay que olvidarse de agregar al usuario los permisos para ejecutar sudo, configurando el archivo /etc/sudoers

Sigamos la secuencia paso a paso.

Crear el usuario del chrooted login

En el entorno normal, agregar un nuevo usuario, pero apuntando su home dentro del chroot:
Nota: en este ejemplo supondremos que el usuario ‘especial’ que se loguea en el entorno chroot se llama tux.

miusuario@hardy:~/$ sudo adduser  --home /chroot/lenny/home/tux --shell /usr/local/sbin/shellchroot --uid 1010   tux
[sudo] password for miusuario:
Añadiendo usuario 'tux' ...
Agregando nuevo grupo `tux' (1010) ...
Agregando nuevo usuario `tux' (1010) con grupo `tux' ...
Creando el directorio personal '/chroot/lenny/home/tux' ...
Copiando archivos desde '/etc/skel' ...

IMPORTANTE: Se le asigna un uid fijo (en este ejemplo 1010 ), y este mismo uid debe ser asignado al volver a crear el mismo usuario dentro del entorno chroot.
Esto es para luego no tener problemas de permisos de archivos.

Luego, ingresar como root al entorno chroot y crear el usuario estando dentro del entorno chroot:

# LANG=C chroot /chroot/lenny  /bin/bash

(ahora estamos dentro del chroot)

hardy:/# adduser --home /home/tux --no-create-home -uid 1010 tux
Adding user `tux' ...
Adding new group `tux' (1010) ...
Adding new user `tux' (1010) with group `tux' ...
Not creating home directory `/home/tux'.
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for tux
Enter the new value, or press ENTER for the default
	Full Name []:
...

NOTA: usamos la opcion --no-create-home, ya que el directorio habia sido creado anteriormente cuando dimos de alta al mismo usuario pero en la distribucion principal, fuera de la jaula.
IMPORTANTE: Los nombres de usuario, el uid y el gid deben coincidir al crear ambos usuarios, uno en la distribucion principal y el otro dentro de la jaula.

La password del root en la jaula

Si hasta este momento no le habias asignado password al usuario root del entorno chroot, es un buen momento para hacerlo:

(dentro del entorno chroot)

chroot # passwd root
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully

Luego, salimos del entorno chroot y volvemos al entorno principal, para efectuar modificaciones ahi.
Para salir: simplemente pulsar Alt+F7 deberia llevarnos devuelta al entorno grafico.

chrooted login Script

( estamos parados en la distribucion normal )

El script especial que se encarga de atender el login del usuario especial y realizar el chroot es el siguiente:
root@hardy# cat /usr/local/sbin/shellchroot

#!/bin/bash
if [ "$1" = "-c" ]; then
        i=0;
        PARAMS="";
        for param in $*; do
                if [ $i -gt 0 ]; then
                        PARAMS="$PARAMS $param";
                fi
                let i++;
        done;
        sudo /usr/sbin/chroot /chroot/lenny/ /bin/su - $USER -c "$PARAMS"
else
        sudo /usr/sbin/chroot /chroot/lenny/ /bin/su - $USER
fi;

NOTA: el script empieza en la linea #!/bin/bash
Esa es la primera linea que debe ir en el archivo, no hay que dejar espacios o linea en blanco.
Como puede verse, la ubicacion que elegir para poner el archivo es la siguiente: /usr/local/sbin/shellchroot

Agregar el usuario al archivo sudoers para que tenga permisos

( estamos parados en la distribucion normal )

Luego agregar la siguiente linea al archivo sudoers
Para editar el archivo /etc/sudoers se utiliza el comando “visudo”.

tux ALL=NOPASSWD: /usr/sbin/chroot /chroot/lenny/ /bin/su - tux*

Ingresar al entorno chroot via ssh

Finalmente tenemos todo dispuesto para ingresar al entorno chroot via ssh.
Podemos probar desde otra maquina que este conectada en red, o simplemente desde la misma maquina:

miusuario@hardy:~$ ssh tux@localhost
tux@localhost's password:
Linux hardy 2.6.24-16-generic #1 SMP Thu Apr 10 13:23:42 UTC 2008 i686

The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.

To access official Ubuntu documentation, please visit:

http://help.ubuntu.com/

[sudo] password for tux:
Sorry, try again.
[sudo] password for tux:
tux is not in the sudoers file.  This incident will be reported.
Connection to localhost closed.

Opps !! Este mensaje es sintoma de que que hemos configurado algo mal en el archivo /etc/sudoers
Lo documento para no olvidarme de agregar al usuario al archivo /etc/sudoers , este mensaje ya lo he visto varias veces ;-)

WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!

miusuario@hardy:~$ ssh tux@localhost
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
xx:gg:16:qq:cc:dd:34:bv:kl:op:as:34:xc:34:gb:as.
Please contact your system administrator.
Add correct host key in /home/miusuario/.ssh/known_hosts to get rid of this message.
Offending key in /home/miusuario/.ssh/known_hosts:2
RSA host key for localhost has changed and you have requested strict checking.
Host key verification failed.

Opps !! Este mensaje se debe simplemente a que desde la ultima vez que me loguie, el servidor ha regenerado la clave RSA de host, debido a una actualizacion de paquetes relacionados con la generacion de claves para sshd

Para corregir el problema, eliminamos la clave numero 2 del archivo
/home/miusuario/.ssh/known_hosts
o simplemente borramos el archivo:

$ rm /home/miusuario/.ssh/known_hosts

</h4>

Finalmente, nos logueamos via ssh </h4>

Al loguearse via ssh en forma satisfactoria, deberian ver mas o menos lo siguiente:

miusuario@hardy:~$ ssh tux@localhost
The authenticity of host 'localhost (127.0.0.1)' can't be established.
RSA key fingerprint is xx:yy:ab:cd:ef:gh:ab:12:34:ab:cd:3b:74:25:6c:4d.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'localhost' (RSA) to the list of known hosts.
tux@localhost's password:
Permission denied, please try again.
tux@localhost's password:
Linux hardy 2.6.24-16-generic #1 SMP Thu Apr 10 13:23:42 UTC 2008 i686

The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.

To access official Ubuntu documentation, please visit:

http://help.ubuntu.com/

Last login: Thu May  8 03:54:25 2008 from localhost

Notar que el mensaje de bienvenida es el de Ubuntu en vez de Debian. Eso es el resultado de que Ubuntu ‘atiende’ primero, pero efectivamente comprobaremos que nos encontramos en la ‘jaula’.

tux@hardy:~$ ls

tux@hardy:~$ whoami
tux
tux@hardy:~$ pwd
/home/tux
tux@hardy:~$ ls -al
total 52
drwxr-xr-x 2 tux tux  4096 May 16 06:36 .
drwxr-xr-x 3 root    root     4096 May  8 03:22 ..
-rw------- 1 tux tux   128 May 15 00:00 .bash_history
-rw-r--r-- 1 tux tux   220 May  8 03:22 .bash_logout
-rw-r--r-- 1 tux tux  2928 May  8 03:22 .bashrc
-rw-r--r-- 1 tux tux   586 May  8 03:22 .profile

tux@hardy:~$ ls /home/
tux

Felicitaciones !!

Si has llegado hasta aca, ya tienes tu entorno chroot configurado con chrooted login via ssh.
Ya puedes festejar respirando bien hondo, o preparandote una taza de cafe con leche.
¿ Y ahora que ?
Bueno, a los efectos de completitud de la nota, en los siguientes parrafos comentare brevemente como es la configuracion de los repositorios /etc/apt.sources.list y como se instalan paquetes, para que puedan empezar a ‘jugar’ dentro del entorno. Los usuarios habituales de Debian, simplemente pueden dejar de leer aqui, pues estas tareas les resultaran triviales. Sin embargo, los espero para la continuacion del articulo, donde explicare como configurar el motor X del entorno chroot para tener en simultaneo graficos de la distribucion principal y del entorno chroot.

Configurar el /etc/apt/sources.list del entorno chroot

sources.list basico

( DENTRO DEL CHROOT )
El sources.list luego de realizar el debootstrap, contiene una sola linea.

deb http://ftp.us.debian.org/debian lenny main

sources.list con los repositorios security

Si queremos agregar las actualizaciones de seguridad, modificamos el archivo /etc/apt/sources.list como sigue:

deb http://ftp.us.debian.org/debian lenny main

## agregar estas dos lineas
deb http://security.debian.org/ lenny/updates main
deb-src http://security.debian.org/ lenny/updates main

sources.list mas completo – agregamos contrib y non-free

Si ademas queremos incluir en el listado a los paquetes que pertenecen a los repositorios ‘contrib’ y ‘non-free’, el sources.list deberia lucir asi:

deb http://ftp.us.debian.org/debian lenny main contrib non-free

deb http://security.debian.org/ lenny/updates main contrib non-free
deb-src http://security.debian.org/ lenny/updates main contrib non-free

IMPORTANTE:
Debemos correr el comando aptitude update luego de modificar el archivo /etc/apt/sources.list
Para que actualice la lista de paquetes disponibles para instalar.

Si hemos configurado correctamente el archivo /etc/resolv.conf deberiamos poder tener acceso a la red desde el chroot:

hardy:/etc/apt# ping google.com.ar
PING google.com.ar (64.233.161.104) 56(84) bytes of data.
64 bytes from od-in-f104.google.com (64.233.161.104): icmp_seq=1 ttl=241 time=155 ms
64 bytes from od-in-f104.google.com (64.233.161.104): icmp_seq=2 ttl=241 time=192 ms
64 bytes from od-in-f104.google.com (64.233.161.104): icmp_seq=3 ttl=241 time=155 ms

--- google.com.ar ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1998ms
rtt min/avg/max/mdev = 155.199/167.544/192.211/17.445 ms

Actualizando la lista de paquetes …

hardy:/etc/apt# aptitude update
Writing extended state information... Done
Get:1 http://security.debian.org lenny/updates Release.gpg [189B]
Get:2 http://ftp.us.debian.org lenny Release.gpg [189B]
Get:3 http://security.debian.org lenny/updates Release [40.7kB]
Hit http://ftp.us.debian.org lenny Release
Err http://ftp.us.debian.org lenny Release

Get:4 http://ftp.us.debian.org lenny Release [74.4kB]
Get:5 http://security.debian.org lenny/updates/main Packages [188kB]
Get:6 http://ftp.us.debian.org lenny/main Packages/DiffIndex [2038B]
Hit http://ftp.us.debian.org lenny/main Packages
Get:7 http://security.debian.org lenny/updates/main Sources [22.3kB]
Fetched 327kB in 5s (59.0kB/s)
Reading package lists... Done
There are now 3 updates [+3], 673 new [+673].

Instalando paquetes con aptitude

El uso del programa aptitude es bastante simple. Simplemente referiré a la documentacion para aprender su manejo:

$man aptitude

Introducción a la interfaz de Aptitude

apt-get si, ¿ pero por que no tambien aptitude ?

Limpiar la cache de paquetes de apt

Luego de haber descargado e instalado paquetes, los paquetes descargados quedan un tiempo almacenados en el directorio /var/cache/apt
El sistema de encarga de limpiearlos periodicamente, pero podemos forzar una limpieza de la cache si necesitamos espacio:

Espacio ocupado antes de limpiar la cache

hardy:/etc/apt# du -h --max-depth=1  /var/cache/apt/archives/
4.0K	/var/cache/apt/archives/partial
40M	/var/cache/apt/archives/

Limpiamos la cache

chroot# aptitude clean

Espacio ocupado luego de limpiar la cache

chroot# /etc/apt# du -h --max-depth=1  /var/cache/apt/archives/
4.0K	/var/cache/apt/archives/partial
16K	/var/cache/apt/archives/
chroot# /etc/apt# du -h --max-depth=1  /var/cache/apt/archives/
4.0K	/var/cache/apt/archives/partial
16K	/var/cache/apt/archives/
chroot# /etc/apt# du -h --max-depth=1 /
3.1M	/bin
0	/proc
9.9M	/var
4.0K	/initrd
16K	/root
1.1M	/etc
16K	/dev
4.0K	/sys
4.0K	/media
4.0K	/mnt
94M	/usr
24K	/home
4.0K	/opt
4.0K	/srv
6.3M	/lib
4.0K	/boot
2.8M	/sbin
4.0K	/tmp
117M	/

El sistema instalado hasta el momento sera muy basico. Si te gustaria hacer que el sistema este un poco mas completo, hay un metodo facil para instalar todos los paquetes que pertenezcan a una categoria de paquetes. Para eso se puede usar el programa “tasksel”
Por supuesto, puede usar simplemente aptitude para instalar los paquetes individualmente.

chroot# tasksel

Package configuration

Software Selection
You can choose to install one or more of the
following predefined collections of software.
Choose software to install:

[] Destop environment
[] Web Server
[] Print Server
[] DNS Server
[] File Server
[] Mail Server
[] SQL Database
[] Laptop
[] Manual package selection

En esta pantalla, se usan las siguientes teclas:

ESC = Cancela las selecciones y sale del programa sin modificar nada
flecha arriba, flecha abajo: Para moverse entre las categorias de paquetes.
SPACE (la barra espaciadora): Para seleccionar / desmarcar la categoria donde se encuentra el cursor.
ENTER = Acepta los cambios y empieza a instalar los paquetes.
TAB = cambia el foco enre la lista de paquetes y el boton </p>

Puedes instalar la categoria Desktop environment, que instalara el servidor X y el administrador de escritorios, en preparacion para la siguiente nota donde explicare como loguearse en forma grafica al entorno chroot.

IMPORTANTE:
Para instalar paquetes desde el shell en modo texto, nuestro mejor compañero es el programa aptitude. Nos sirve tanto trabajando en forma local, como para instalar paquetes en forma remota via ssh (administracion remota via ssh).

Speaker y caracter ;5~

Algo extraño que me sucede al usar a Hardy como anfitrion y a lo que todavia no le encuentro expliacion (y que no sucedia en Debian) es que si tenemos el foco en una terminal (mas especificamente, el terminal 2.22.1 de gnome) Al pultar ctrl + alt + f6 para ingresar en el entorno chrrot, el speaker empieza a sonar y luego al vover a la distribucion principal, la pantalla de la terminal se llena con 5 lineas de los siguientes caracteres:

;5~;5~;5~;5~;5~;5~;5~;5~;5~;5~;5~

Esto se ‘soluciona’ a medias sacando el foco fuera de cualquier terminal shell antes de pulsar ctrl + alt +f6. (por ejemplo, minimizando todo y clickenado sobre el escritorio ).

¿ Y ahora que mas puedo hacer ?

Si no sabes por donde seguir, puedes continuar con:

El magnifico manual de instalacion de Debian, que lo descargas de aca:
Descarga el Manual de instalacion de la version Etch (estable)
Descarga el Manual de instalacion de la version Lenny (testing)

La pagina con documentacion de Debian
Contiene numerosos manuales, donde empezar a aprender desde los comandos basicos hasta configuraciones y herramientas avanzadas de todo tipo.

Otros articulos relacionados (enlaces externos):

El articulo original (lo adapte para Ubuntu)

Referencia chroot de Debian

Articulo sobre entorno chroot en “la espiral”

Informacion ssh en entornos chroot (en ingles)

Excelente articulo sobre el uso de schroot, una herramienta derivada que simplifica la administracion de chroot. (en ingles)

Tambien te puede interesar:

La nota previa: como preparar el entorno chroot mediante el debootstrap

Backups perfectos de particiones o instalaciones.

Por favor no dudes en dejar un comentario haciendo una pregunta, pidiendo ayuda, solicitando una nota sobre un tema en particular, o simplemente agradeciendo.
Tambien, si tienes una experiencia que deseas compartir, te puedes registrar para escribir tu propio articulo. Me envias un mail a la direccion que aparece en la pagina Contacto.

Recuerda que en el siguiente articulo de la serie chroot estaremos repasando la configuracion del X Server (X.Org) del entorno chroot para poder loguearnos en forma grafica.

Copyright: http://snarvaez.poweredbygnulinux.com Sebastián Narváez
este documento ha sido publicado bajo la siguiente licencia: “Verbatim copying and distribution of this entire article are permitted in any medium provided this notice is preserved.”