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 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: 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 ). Si no sabes por donde seguir, puedes continuar con: El magnifico manual de instalacion de Debian, que lo descargas de aca: La pagina con documentacion de Debian El articulo original (lo adapte para Ubuntu) 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) 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. 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.
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
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~
¿ Y ahora que mas puedo hacer ?
Descarga el Manual de instalacion de la version Etch (estable)
Descarga el Manual de instalacion de la version Lenny (testing)
Contiene numerosos manuales, donde empezar a aprender desde los comandos basicos hasta configuraciones y herramientas avanzadas de todo tipo.Otros articulos relacionados (enlaces externos):
Tambien te puede interesar:
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.
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.”