Práctica: Repaso Debian Linux
Instalar paquetes:
Para ello vamos a utilizar la instrucción:
#apt-get install ntp
Leyendo lista de paquetes... Hecho Creando árbol de dependencias Leyendo la información de estado... Hecho Paquetes sugeridos: ntp-doc Se instalarán los siguientes paquetes NUEVOS: ntp 0 actualizados, 1 se instalarán, 0 para eliminar y 8 no actualizados. Necesito descargar 434kB de archivos. After this operation, 1065kB of additional disk space will be used. Des:1 http://192.168.1.1 lenny/main ntp 1:4.2.4p4+dfsg-7 [434kB] Descargados 434kB en 0s (5872kB/s) Seleccionando el paquete ntp previamente no seleccionado. (Leyendo la base de datos ... 112173 ficheros y directorios instalados actualmente.) Desempaquetando ntp (de .../ntp_1%3a4.2.4p4+dfsg-7_i386.deb) ... Processing triggers for man-db ... Configurando ntp (1:4.2.4p4+dfsg-7) ... Starting NTP server: ntpd.Veamos algunos conceptos antes de contestar:
- ¿Qué son los paquetes extras? Son las dependencias, los paquetes necesarios para que funcione el paquete que queremos usar.
- ¿Qué son los paquetes sugeridos? Son paquetes relacionados con el que queremos instalar y que ofrecen alguna funcionalidad extra.
1) Instala ahora otro servidor que vamos a utilizar durante el curso: el SSH, que nos permite la conexión remota de forma segura a nuestro ordenador. |
Desinstalar paquetes:
La opción de apt-get que debemos usar para desisntalar nuestro paquete es la siguiente:
# apt-get remove ntp
Esta opción no elimina los ficheros de configuración del servicio, para hacerlo tenemos que usar la siguiente opción:
# apt-get remove --purge ntp
Atención!!!: Cuando desinstalamos un paquete, ¿se desinstalan las dependencias?
1) Desinstala el servidor SSH con apt-get remove. Comprueba que no se han borrado los ficheros de configuración. 2) Vuelve instalarlo, y desinstala ahora utilizando la opción purge. Comprueba que todos los ficheros relacionados se han borrado. 3) Vuelve a instalar el servidor SSH, ya que lo vamos a utilizar durante el curso. ¿Por qué a partir de la segunda instlación el proceso es más rápido? |
Actualizando los paquetes de nuestro sistema
apt-get update
Para actualizar la lista de paquetes disponibles con la información del fichero /etc/apt/sources.list
apt-get upgrade
Con esta instrucción actualizamos la instalación de los paquetes a su última versión sin tener en cuenta las dependencias.
apt-get dist-upgrade
Con esta instrucción actualizamos la instalación de los paquetes a su última versión pero teniendo en cuenta las dependencias.
Algunas consideraciones:
1) Si estamos trabajando en la rama estable (lenny) las dependencias de los paquetes no cambian por lo que es lo mismo usar un upgrade que un dist-upgrade.
2) En la versión testing las dependencias pueden ir cambiando por lo que si utilizamos upgrade los paquetes cuyas dependencias han cambiado se retienen y no se actualizan, por lo que es conveniente usar el dist-upgrade para ir resolviendo las dependencias.
Descarga de los paquetes para su instalación
Todos los paquetes descargados por APT se almacenan en un directorio, para posteriormente poder instalarlo con dpkg. El directorio donde podemos encontrar los paquetes bajados es:
/var/cache/apt/archives
Para borrar esta cache de paquetes podemos usar la opción siguiente de APT:
# apt-get clean
1) Comprueba los paquetes deb que tienes en tu cache de paquetes. 2) ¿Qué ocurre si desinstala un paquete y lo vuelves a instalar, si el paquete está en la cache? 3) Borra la cache de paquetes y comprueba que se han borrado. Te en cuenta que a continuación deberás instalar algún paquete para tener paquetes en la cache y seguir haciendo las tareas. |
Buscando paquetes en los repositorios: apt-cache
# apt-cache search <busqueda>
Busca todos los paquetes que tengan relaciones con las palabras que hayas indicado en la busqueda.
# apt-cache show <paquete>Te da información del paquete indicado, si tienes instalado el paquete te da información del instalado y de la nueva versión.
# apt-cache showpkg <paquete>Te da información más detallada del paquete indicado.
# apt-cache depends <paquete>
Te da la lista de dependencias del paquete indicado.1) Busca todos lo paquetes que tengan la palabra "apache2" 2) Obtén información del paquete ssh que hemos instalado 3) Lista los paquetes de los que depende el paquete phpmyadmin |
Aptitude
1) Busca paquetes que tengan la palabra "ldap" 2) Desinstala el paquete "ssh" que habíamos instalado anteriormente. 3) Instala un paquete. 4) Aptitude también se puede usar desde una sola línea de comandos: realiza una instalación, una eliminación, una búsqueda, una actualización del sistema y una actualización de la lista de paquetes desde la línea de comandos usando aptitude. 5) ¿Cuál es la diferencia más importante entre usar aptitude y apt? |
Niveles de ejecución. Arranque y parada de los servicios
0 Parada del sistema
1 Modo monousuario
2 Modo multiusuario
3 Modo multiusuario
4 No usado
5 Modo multiusuario
6 Parada y arranque
7-9 No se usan
Secuencia de arranque
La entrada initdefault determina el nivel de ejecución inicial del sistema.
1) Edita el fichero /etc/inittab, localiza la entrada initdefault, y determina en que nivel de ejecución está trabajando el sistema. 2) También puedes obtener el nivel de ejecución actual ejecutando la instrucción runlevel. |
2) Los primeros scripts que se ejecutan a continuación (indicado en la linea del fichero /etc/inittab: si::sysinit:/etc/init.d/rcS) son los que se encuentra en el directorio /etc/rcS. Estos scripts son los encargados de realizar algunas tareas como:
- Monta el file system root y /proc.
- Elimina temporales y archivos de bloqueo.
- Establece el reloj
- Inicia scripts de red y activa la partición swap.
- Activa el teclado y fuentes.
- Carga módulos.
- Establece valores a muchas variables del entorno:PATH, HOSTNAME,...
- Arranca la swap
- Arranca fsck automático, si hace falta.
- Activa quotas.
- Chequea los argumentos pasados al kernel.
- Chequea los filesystems
- Inicializa los puertos serie.
- Puertos USB.
1) Lista los ficheros que se encuentran en el directorio /etc/rcS.d 2) Comprueba que son enlaces simbólicos a los scripts que se encuentran en el directorio /etc/init.d |
3) A continuación se ejecutan los scripts de inicialización de los servicios del nivel de ejecución por defecto. Estos scripts se encuentran en los directorios /etc/rcn donde n es el nivel de ejecución.
Ejemplo:
Nivel Script Directorio
0 rc 0 /etc/rc0.d/
1 rc 1 /etc/rc1.d/
2 rc 2 /etc/rc2.d/
3 rc 3 /etc/rc3.d/
Es el script /etc/init.d/rc el que procesa todos los archivos K y S de los directorios /etc/rcn.d
- Para ( con el argumento stop ) aquellos procesos que comienzan por K ( kill )
- Lanza ( con el argumento start ) los que comienzan por S ( start ).
- Después de la letra S o K hay dos dígitos numéricos que indican el orden de ejecución. El orden es ASCII.
- Todos los ficheros K o S son enlaces simbólicos a los scrips de cada servicio que están en el directorio /etc/init.d
1) Visualiza los ficheros de los distintos directorios /etc/rcn.d. 2) Comprueba los ficheros de ejecución del nivel de ejecución que se ejecuta por defecto en Debian. 3) Con la instrucción telinit podemos ejecutar otrps niveles de ejecución. Entra en el nivel monousuario. Entra en el nivel de reinicio. Entra en el nivel de parada del sistema. |
De modo esquemático podemos ver:
4) ¿Qué hacer para eliminar un servicio en un determinado nivel?
- Borrar el vínculo simbólico en /etc/rcn.d/
- Renombrarlo con algo que no empiece con S o K y dejarlo por si queremos luego activarlo.
- Lo que no hay que hacer nunca es eliminar el archivo original en /etc/init.d/
1) Vamos a eliminar el servicio ssh (encargado de iniciar el servidor gráfico) del nivel de ejecución 2, para ello elimina el fichero que inicia ese servicio. 2) Reinica el sistema y comprueba que el servidor gráfico no se ha iniciado. 3) Para restablecer el enlace simbólico para que podamos iniciar el servicio usamos la instrucción update-rc.d (busca la página del manual para aprender más sobre esta instrucción. Ejecuta: update-rc.d gdm defaults para crear los enlaces simbólicos que ejecutan el script de gdm 4) Vuelve a reiniciar el sistema y comprueba que el servidor gráfico se vuelve a ejecutar. 5) Pregunta: ¿Para qué podríamos utilizar la configuración de distintos niveles de ejecución? |
Arranque y parada de lo servicios
# ps -A
En cualquier momento podemos parar o reiniciar cualquier servicio ejecutando los scripts del directorio /etc/init.d con las siguientes opciones: start, stop, restart, force-reload,...
1) Comprueba que el servicio ssh se está ejecutando. 2) Para el servicio, y comprueba con la instrucción ps que el proceso no se está ejecutando. 3) Vuelve a reiniciar el servicio. |
Envío de señales a los procesos
kill -9 PID
El PID es el identificador del proceso, y lo puedes obtener mirando la lista de procesos por ejemplo con ps -A.
Podemos también utilizar la siguiente instrucción
killall nombredelproceso
Del mismo modo puedes ver el nombre del proceso mirando la lista de procesos con ps.
1) Imagínate que el servidor gráfico se queda "colgado". Entra en un terminal de texto con CTRL+ALT+F1, y tras iniciar sesión como root mata el proceso gdm (Gestor de arranque del servidor gráfico). 2) Para comprobar que el servidor gráfico no funciona puedes hacer varias cosas: lista los procesos y comprueba que no existe el proceso gdm ni el Xorg. También puedes intentar entrar en la consola gráfica con CTRL+ALT+F7. 3) Vuelve a ejecutar el gestor de arranque gráfico gdm. 4) Del mismo modo puedes matar el demonio del servicio ssh, y volver a reiniciarlo posteriormente. |
Configuración básica de red
1) Configurando las interfaces de red
La configuración de las interfaces de red se encuentran en el fichero:
/etc/network/interfaces
Un ejemplo de este fichero puede ser el siguiente:
# The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet static address 200.89.74.17 netmask 255.255.255.0 network 200.89.74.0 broadcast 200.89.74.255 gateway 200.89.74.1La primera interfaz loopback (lo) es una interfaz especial que permite hacer conexiones internas. Esta no debería modificarse bajo ningún motivo. La segunda interfaz definida es eth0, que corresponde a la primera interfaz Ethernet.
- La entrada address corresponde al número IP del ordenador.
- La entrada netmask corresponde a la máscara de red.
- Las entradas network y broadcast casi siempre corresponden al primer y último número del rango de números IP.
- La entrada gateway define el número IP de la puerta de enlace.
# /etc/int.d/networking restart
IP dinámica
Para configurar la red para que toma una dirección dinámica de un servidor DHCP, la configuración de eth0 debe ser:
# The primary network interface auto eth0 iface eth0 inet dhcp
2) Instrucciones para gestionar las interfaces de red
Con esta instrucción puedes visualizar la configuración actual de red.
1) Configura la interface de red con una ip fija y comprueba con ifconfig que se ha configurado correctamente. 2) Configura la interface de red para obtener una IP dinámica y comprueba con ifconfig la configuración que ha tomado. |
Con estas instrucciones puedes desconectar (ifdown) y conectar (ifup) la interface de red que desees, por ejemplo:
# ifdown eth0
3) Configurando los nombres de la máquina y la resolución DNS
En este fichero se especifican los métodos de resolución de nombres del equipo, por ejemplo existe una línea:
hosts: files dnsque nos dice dónde y en qué orden va a buscar la relación entre nombres de equipo y direcciones IP, en este caso en ficheros y servidores DNS.
/etc/hostname
En este fichero se encuentra el nombre de la máquina.
Para obtener el nombre de la máquina puedes utilizar la instrucción hostname.
/etc/hosts
En este fichero se encuentra las resoluciones estáticas de DNS, en este fichero indicamos la relación entre direcciones IP y nombres.
Si usamos la siguiente instrucción:
# hostname -f hostname: Unknown hostEl mensaje de Unknown host, significa que nuestro sistema no tiene un FQDN (Fully Qualified Domain Name es un nombre que incluye el nombre de la computadora y el nombre de dominio asociado a ese equipo). Lo resolvemos agregando nuestro domino al nombre del host, en el formato IP nombre_host.dominio.com, de esta manera de ejemplo:
# nano /etc/hosts 192.168.1.1 mi_maquina.mi_dominio.com mi_maquina
/etc/resolv.conf
En este fichero se encuentra las direcciones de los servidores DNS, que nos van a permitir la traducción de nombres a direcciones IP.
1) Cambia el nombre de tu máquina. 2) Modifica el fichero hosts, e introduce tu dirección IP con el nombre de máquina y el FQDN. 3) Edita el fichero /etc/resolv.conf, comprueba los servidores DNS que están configurados y cámbialos por los siguientes (194.224.52.36 y 194.224.52.37) |