1
1
GNU / Linux
Introducción a GNU / Linux
2
Un poco de historial 1991: Linus Torvalds creó Linux basándose en
Minix, una pequeña implementación de UNIX para PC, escrito totalmente en C.
l Linus anunció la primera versión oficial de Linux, la 0.02 el 5 de Octubre de 1991
– Constaba básicamente del Kernel, el shell bash y el compilador gcc.
l En verdad Linux es el Kernel o núcleo, y al resto de aplicaciones que corren sobre ese kernel (formando usualmente una distribución) debería llamársele GNU / Linux.
2
3
Qué es GNU / Linux
l Richard Stallman: Software libre (free)
– “...es como si te vendieran un coche con el capósellado para que no pudieses ver el motor”
l Proyecto GNU realizado por la FSF (Free Software Foundation
l Promovieron la licencia GPL (General Public Licence), por la que los usuarios recibirían siempre el código fuente (Open Source) y el derecho a modificarlo (haciendo públicas las modificaciones), realizar las copias que deseen y redistribuirlo (bajo la licencia GPL)
4
Distribuciones de GNU / Linux
l Debian: versión Sarge, Woody, Potato y Buzz.
l Red Hat (Fedora): versión 9.0
l Mandrake: versión 9.2
l S.U.S.E.
l Slackware
l EsWare
l Metadistros
3
5
GNU / Linux: cara y cruz
l La cara:– Multitarea total
– Multiusuario– Estabilidad
– Código fuente abierto
– Multitud de aplicaciones GNU
– Inmune a la mayoría de virus (normalmente creados para Windows)
– Gratis o de bajo coste.
6
GNU / Linux: cara y cruz
l La cruz:– Entorno árido (pero poco a poco va mejorando)
– Soporte de hardware: los fabricantes de hd no suelen crear drivers para Linux, y tampoco facilitan las especificaciones de dicho hd para crearlos.
– Faltan aplicaciones necesarias (que sí están para Windows)
– Se necesitan ciertos conocimientos para administrar profundamente el sistema y no tener miedo a experimentar
4
7
Debian
l Debian bien en tres versiones o sabores:– Stable o estable (Debian 3.1r1 Sarge, antes Woody
3.0r0 y Potato): conveniente para un servidor
– Testing o de prueba (Sarge): conveniente para una estación de trabajo. Sería como una versión beta.
– Unstable o inestable (Sid): versión en desarrollo (versión alfa)
l El paso de inestable a prueba se realiza congelando la versión cuando alcanza un cierto grado de madurez.
8
Debian
l Los paquetes de Debian se dividen en :– Versión/main: son los paquetes que están hechos de
acuerdo a las directivas del software libre de Debian (DFSG)
– Versión/contrib: paquetes cuya distrinbución estárestringida (shareware)
– Versión/non-free (paquetes de libre distribución pero que dependen de otros que no lo son
l Todos se encuentran en www.debian.org
5
9
Debian
l Los paquetes de Debian a su vez pueden ser:– Paquetes binarios, que contienen ejecutables, archivos
de configuración, páginas man/info, información sobre derechos de autor,... Tienen extensión .deb (.rpm)
– Paquetes fuente, que contiene el código fuente original. Tienen extensión tar.gz
10
GNU / Linux
Ubuntu
6
11
Ubuntul Live CD e instalable
l El siguiente software están disponibles en la version Breezy basada en Debian(http://www.debian.org/):– Linux-Kernel 2.6.x
– Gnome como entorno gráfico estandard con Nautilus.
– X Multimedia System (xmms) como decodificador MP3, Xine para MPEG-video y divX.
12
Ubuntu
– Programas de conexión a Internet teléfonico y ADSL
– Firefox y Mozilla Thunderbird
– Programa de manejo Gráfico GNU (GIMP)
– Utilidades para la recuperación de datos y de sistema, incluso de otros Sistemas.
– Herramientas de análisis de seguridad para administradores de redes.
– OpenOffice(TM), la versión libre GPL de la Suite StarOffice(TM) de SUN.
7
13
Ubuntu
– Varios lenguajes de programación, herramientas de desarrollo y librerías para desarrolladores.
– En total más de programas instalados 900 con unos 2000 programas, utilidades, y juegos.
14
Ubuntu
l ¿Cuáles son los requirimientos mínimos del sistema?– Intel-compatible CPU (i486 o superior),
– 16 MB de RAM para modo texto, y 128 MB para modo gráfico con Gnome
– unidad de CD-ROM , o una unidad de disco y un CD-ROM (IDE/ATAPI o SCSI) normal,
– tarjeta SVGA-compatible,– ratones Serie o PS/2 o IMPS/2-compatible o USB.
8
15
GNU / Linux
Instalación
16
Recomendaciones para la instalación
l Tipos de particiones: primarias, extendida y lógicas.– Particiones de arranque y del sistema
l Particiones en Linux: puntos de montaje
l Particiones separadas del disco duro
– / (/+/boot/+/bin+/sbin/+/tmp+/var). En servidores separar /var (proxy-squid)
– /home (depende de los usuarios del sistema) +100 Mb
– /usr (2 Gb con X): depende de las aplicaciones instaladas.
9
17
Recomendaciones para la instalación
l Partición swap:– Mínimo 64 MB (128 MB) con KDE/GNOME
– Regla: 2 veces la RAM (pero no más de 256 MB)
l Gestor de arranque LILO y compatibilidad con Windows– MBR
– Primer sector de la partición del sistema
– Disquete
18
Postinstalación
l Actualización del sistema (apt-get update)
l Servicios o demonios que arrancan al iniciar el sistema: (ver init.d y rc5.d)
l Montaje de las particiones Windows y Linux a las que quiero acceder (ver archivo fstab)
l Instalación de paquetes opcionales: Webmin (ver capítulo de instalación de paquetes)
l Configuración e instalación de algunos módulos necesarios, por ejemplo soporte NTFS (ver capítulo del Kernel)
10
19
GNU / Linux
Lo que todo linuxero debe saber
20
Acciones básicas
l Arrancar el sistema
l Hacer login– En el shell (startX)
– Desde las X: xdm, gdm
l Cambiar entre consolas: [Alt-F1] o [Ctrl-Alt-F1]– Consolas o terminales: tty1 (teletypes)– También [Alt - ->]
l Hacer logout: [Ctrl-Alt-Supr], logout.
l Apagar el sistema: Shutdown, init0, halt.
11
21
Acciones básicas
l Ejecutar un comando:– $ hostname
– $ hostname -opción– $ hostname --help (opciones estilo GNU)
l Cambiar la password: $ passwd
22
Acciones básicas
l ¿Quién hay en el sistema? – $ who: muestra quién hay en el sistema
– $ whoami: muestra quién soy yo en el sistema (username)
– $ w: muestra quién hay en el sistema y qué estan haciendo
– $ last: muestra los últimos login de los usuarios (last usuario, para un usuario)
12
23
Buscar ayuda
l Páginas man: – $ man w
l Documentación en Linux– En /usr/docs o en /usr/share/doc
– Howto´s y mini Howto´s
– Proyecto LTDP
– Proyecto Lucas
24
Buscar ayuda
l La orden apropos: Busca la herramienta o programa que podemos usar para realizar una cierta acción– $ apropos sort, apropos audio, apropos console
– Otra forma es usar las páginas man. Com -k busca en las cabeceras de las páginas de ayuda: man -k sort
l ¿Para qué sirve un programa determinado? – $ whatis who
– Opción help: $ whoami –help l (probar también -h o -?)
13
25
GNU / Linux
El shell I (acciones básicas)
26
El shell
l Interfaz de comandos
l Tipos de shell: bash, csh, ksh, sh.
l Prompt: $(usuario) , #(root)
l Dejar que el shell complete la orden: Tab– $ ls /mn [Tab]
l Histórico de órdenes: ?
– Búsqueda en el histórico de órdenes: [Ctrl+r] y la orden
14
27
Teclas especiales en el terminal
l Tab: completa y sugiere un comando incompleto
l Cursores: navegar por el historial
l Shift+Av. página o Re. Página, muestra pantallas en el terminal que no se ven
l Ctrl-l: limpia la pantalla
l Ctrl-r: Busca comandos en el historial
28
GNU / Linux
Sistemas de ficheros IOrdenes básicas de manipulación de ficheros
15
29
Sistema de ficheros
l Estructura jerárquica del sistema de ficheros en UNIX
l Linux trata todo (directorios, dispositivos, puertos,...) como ficheros
l Tipos de ficheros– Ficheros
– Directorios– Enlaces (links)
– Ficheros de bloque
30
Sistema de ficherosl Descripción del árbol de directorios
– /: raíz
– /home: homedirs de los usuarios
– /root: homedir de root
– /mnt: montaje de las particiones– /usr: aplicaciones instaladas
– /bin: ficheros ejecutables (path)
– /sbin: ficheros ejecutables de administación (path)
16
31
Sistema de ficherosl Descripción del árbol de directorios
– /etc: ficheros de configuración
– /dev: dispositivos
– /boot: arranque del sistema
– /proc: registro de configuración– /tmp: ficheros temporales
– /var: aloja los registros (logs) del sistema y algunos cachés (proxu squid)
32
Comandos sobre el árbol de directoriosl cd (Change directory)
– Rutas relativas y absolutas: tree
– pwd y directorio home (sólo cd)
l ls (-a, -l, -x, --color)
l mkdir (make directory) – -p crea directorios padre si no existen
l Para crear un archivo debo usar un editor como Vi o Emacs
17
33
Comandos sobre el árbol de directoriosl rm (-i, -f, -r) y rmdir
l cp (-r para copiar directorio y todo su contenido)
l mv -rf (también renombra)
l Uso de comodines: * , ? [i,o]
34
GNU/LINUX
Edición de archivos con Vi
18
35
Edición con Vi
l Dos modos:– Modo orden: Esc
– Modo edición: a(anexar) / i (insertar)
l Modo orden: algunas órdenes importantes.– x: borrar un carácter
– dd: borrar una línea
– / cadena: buscar una cadena. n para buscar siguiente y N para buscar anterior
– Desplazamiento: cursores, 0 para ir al principio de línea y $ para ir al final.
36
Edición con Vi
l Seleccionar: pulso v y me despalzo hasta el final de la selección (?+cursores o ?+$)
l Copiar: y
l Cortar=eliminar (d,dd o x)
l Pegar: p
19
37
Edición con Vi
l Trabajar con varios ficheros (buffers)– $ vi file1 file2
– Cambio de uno a otro, estando en modo orden escribo :bn, donde n es el número de bufer (empezando a numerarse por 1)
– Nota: si cambio algo en un archivo debo guardar los cambios (:w) para pasar al otro bufer.
l En cualquier caso consultar man vi para otras acciones.
38
GNU / Linux
Sistemas de ficheros II: acciones avanzadas
20
39
Enlaces a ficheros
l Hard links: – Mismo sistema de ficheros y mismo inodo
– Si borro el fichero borro el enlace
l Links simbólicos:– Pueden estar en diferentes máquinas incluso
– Diferente inodo
– Si borro el enlace no borro el fichero
l Orden ln (-s)
l La orden find (-exec)
40
Compartiendo ficherosl Grupos de usuarios: un usuario pertenece al
menos a un grupo (el login group)– $ groups grupo
– $ groups usuario
l Cuando creo un fichero por defecto yo soy el propietario y pertenece a su vez a mi login group
l Determinar el propietario de un fichero: $ ls -l
l Para cambiar el propietario o el grupo – $ chown usuario fichero
– $ chgroup grupo fichero
21
41
Permisos sobre ficheros
l Ver los permisos: $ ls -l
l Cambiar permisos: $ chmod– Letras: r,w,x / u, g, o, a
– Numéricos: 777
l Hacer un fichero privado (eliminando el grupo y otros: $ chmod go= fichero
l Hacer un fichero ejecutable: +x
l Permisos por defecto: $ umask 022
l Bit s y bit g.
42
Encontrar un fichero
l Para encontrar unfichero que tenga en su nomnre la palabra audio:– $ locate audio o $ locate *audio
– $ locate /. encuentra todos los fichero ocultos del sistema
– NOTA: no distingue mayúsculas
22
43
Encontrar un fichero
l La orden find– $ find /home -name Desktop
– $ find /home -iname desktop (no distingue mayúsculas)
– $ find /home -name 'D*'
– $ find /home -name '*.tex'
44
Encontrar un fichero
l Otros ejemplos:– $ find ~ -size +100k (ficheros mayores de 100k)
– $ find ~ -empty (ficheros vacíos)– # find ~ -user root (ficheros propiedad de root)
l Ejecutar comandos con los ficheros encontrados– $ find ~ -empty -exec rm -f {} \;– -ok es igual pero pide confirmación
l Redireccionar errores: – $ find / -name 'et*' >~/file 2>/dev/null
23
45
Encontrar un fichero
l Cómo saber el número de ficheros en un directorio:– $ ls -a |wc -l
l Cómo saber el número de ficheros en un árbol:– Nº de ficheros y directorios:$ find /usr/share | wc -l
– Nº de ficheros: $ find /usr/share \! -type d | wc -l (\! -type d para excluir la lista de directorios y no contarlos)
– Nº de directorios: $ find /usr/share \! -type f | wc -l (\! -type f para excluir la lista de ficheros y no contarlos)
46
Encontrar un fichero
l Localizar una orden:– $ which cd
– Consejo: mirar siempre en /bin, /sbin, /usr/bin, /usr/sbin,... en general en el PATH
l Ver el tipo de un fichero– $ type fichero
– $ file fichero
24
47
Filtros
l La orden grep
l La orden sort
l La orden cut
48
Ver el contenido de un fichero
l cat– Puede crear ficheros: cat > file
– Puede agregar algo a un fichero sin abrirlo:cat>>file.existe
l more
l less
l echo
25
49
Tratamiento de ficheros
l La orden split: fracciona un archivo en partes.– $ split b2m prueba.bmp prueba.bmp. (prueba de 3M)
l Crea prueba.bmp.aa (2M) prueba.bmp.ab (1M)
– Para juntarlos: l cat prueba.bmp.* > prueba.bmpl Rm prueba.bmp.*
50
Comparar ficheros
l La orden cmp: compara dos ficheros y ve si son iguales– $ cmp file1 file2
l La orden diff y sdiff también comparan pero dan más información– $ sdiff file1 file2 | less
26
51
Compresión de ficheros
l La orden gzip:– $ gzip file1, y obtendremos file1.gz, borrando file1
– $ gzip -r directorio (comprime los archivos de dentro)
– $ gunzip file1.gz para descomprimir (también extensión z, Z, zip,..)
l Otros compresores:– bzip2
– zip
– Compress
52
Empaquetar en un fichero
l La orden tar:– $ tar -cvf file.tar file
– $ tar -czvf file.tar.gz file (tar+gzip)
– $ tar -xzvf file.tar.gz (descomprime y desempaqueta)
27
53
Sistema de ficheros y particiones
l La orden mount / umount– $ mount -t fat /dev/hda1 /mnt/windows
– $ umount /dev/cdrom
l El fichero /etc/fstab– Estructura
– Opciones:l Userl Autol ro
54
Sistema de ficheros y particiones
l La orden df: informa del tamaño de los sistemas de ficheros y su uso– $ df -h (h, human readable)
l La orden du: muestra lo que ocupa cada fichero del directorio donde me encuentre– $ du -hm (megas) o -k(kb)
– $ du -sm /usr/local (muestra un resumen, sólo la última línea, es decir, lo que ocupa todo el directorio).
28
55
Disquetes
l Formatear un disquete– $ mke2fs /dev/fd0
l Formatear con formato fat: – $ umount /floppy; mkfs -t fat /dev/fd0
– $ mformat /dev/fd0
56
GNU / Linux
El shell II (acciones avanzadas)
29
57
El shell
l Ejecutar una lista de comandos– $ clear ; ls
l Tuberías (pipes) – $ who | w -l
– $ man | less
58
El shelll Redireccionamiento de entrada y de salida
– Entradas y salidas estándar y otras entradas y salidas
l Redireccionar la entrada a un fichero
– $ apropos < Keywords, donde Keywords es un fichero con palabras clave (órdenes)
l Redireccionar la salida a un fichero– $ ls / > ~/filedir
l Anexar la salida a un fichero existente– $ ls /etc >> ~/filedir
l Redireccionar errores: 2>/dev/null
30
59
El shell
l Redireccionar los mensajes de error a un fichero – $ ls / 2> ~file.error
l Redireccionar la salida de un comando y tomarlo como entrada de otro es al fin y al cabo una tubería
60
Histórico de órdenes
l Para ver el histórico de órdenes:– $ history
– $ history | grep apropos– $ !3, ejecuta la 3ª orden de éste histórico
l Guardado en ~/.bash_history
31
61
Personalizar el shell
l Cambiar el prompt del shell:– $ PS1=' tus deseos son órdenes: ', con comillas
porque contiene espacios
– '\w ' indica el directorio actual
– '\u ' el usuario actual– '\h ' el nombre el equipo
l $ echo $PS1
62
Personalizar el shell
l Crear alias– $ alias bye=”exit”
– $ alias ap=”apropos shell bash”
l Variable PATH: – $ echo $PATH
l Se guardan en:– ~/.bashrc (o /etc/bashrc) para todos los shell excepto
el login shell
– ~/.bash_profile para el login shell
32
63
Personalizar el shell
l Si los quiero unificar poner esta línea en el ~/.bash_profile– If [ -f ~/.bashrc ]; then . ~/.bashrc; fi
l El archivo /etc/profile: cuando hago login cargo todo lo que esté en este fichero. Es válido para cualquier usuario del sistema, mientras que .bash_profile es distinto para cada usuario.
64
Variables del shell
l Puedo definir variables para cualquier shell que arranque (ejecutando bash). Para ello debo exportarla.– $ export (vería todas las variables exportadas)
l Exportar variables:– $ BAR=bar; FOO=foo
– $ export BAR– $ echo $BAR $FOO
– $ bash; $ echo $BAR $FOO
33
65
Variables del shell
l En teoría debería poner set FOO=foo (unset)
l Otra forma sería declararlas y exportarlas en el .bash_profile, y estarían dispuestas para un login posterior.
l Puedo crear a su vez alias de órdenes:– $ alias 'lh = ls -lh'
– $ alias
– $ unalias lh
66
GNU / Linux
Administración de los recursos del sistema
34
67
Gestión de procesos
l Orden ps: – Información (-w): PID, terminal, estado del proceso
(S en pausa, R en ejecución y Z zombie)
– $ ps -w [-e , -a, -u]
l La orden top: Muestra valores actualizándose instantáneamente.
68
Gestión de trabajos
l Trabajos: listado de trabajos ejecutándose– $ jobs
– A cada trabajo se le asigna un número n como identificador.
l Un trabajo (proceso) puede ejecutarse en modo foreground (primer plano) o backgroung (segundo plano)– Background: $ ps -a &
35
69
Gestión de trabajosl Suspender un trabajo: [Ctrl-z]
l Para pasar un trabajo de foreground a background (y viceversa):– Primero suspenderlo
– Luego escribir $ bg %n (fg para foreground)
l Parar un trabajo foreground antes de que acabe: [Ctrl-c]– $ cat [enter]
l [Ctrl-c]
l Parar un trabajo backround antes de que acabe:
– $ kill %n
70
GNU / Linux
Administración de usuarios
36
71
passwd y group
l La información de los usuarios se guarda en /etc/passwd.
– Cada línea de /etc/passwd contiene un nombre de usuario, password, UID, GID, nombre completo, directorio particular y shell por defecto.
l La información de los grupos se guarda en /etc/group.– Cada línea de /etc/group contiene un nombre de
grupo, password de grupo, GID y usuarios que lo componen.
72
Ficheros shadow
l Permite almacenar las contraseñas cifradas en un fichero de sólo lectura al que sólo se puede acceder como root.
l Son /etc/shadow y /etc/gshadow para passwd y group respectivamente.
37
73
Ordenes para la administración de usuarios y gruposl useradd usuario groupadd grupo
l usermod usuario groupmod grupomodificación u/g
l userdel usuario groupdel grupo
l passwd username gpasswd groupname
l pwconv grpconv convierte passwd a shadow
l pwunconv grpunconv revierte shadow a passwd
l Change user modifica vigencia de la password
74
Entorno de usuario y variables de entorno del sistemal Scripts de configuración
– La configuración de bash en el arranque se toma de /etc/profile y /etc/bashrc.
– Las órdenes en /etc/profile se ejecutan durante el login.
– Las órdenes en /etc/bashrc se ejecutan cuando se invoca a bash.
– Los cambios en estos archivos afectan a todos los usuarios del sistema.
38
75
Entorno de usuario y variables de entorno del sistemal Directorios particulares (home directories)
– Se crean copiando el contenido de /etc/skel,y nos daría el home por defecto.
– El administrador puede añadir o borrar ficheros de este directorio.
76
GNU / Linux
X Window
39
77
X window
l Arquitectura cliente-servidor X
l Gestores de ventanas:– Fvwm95, twm, sawfish, icewm, Enlightment ...
l Entornos de escritorio:– KDE
– GNOME
78
X window
l Cambiar la resolución: [Ctrl]-[Alt]-[+ / -]
l Ejecutar un programa al iniciar sesión: – ~/.xsession
l Configurar las X: Xconfigurator y utilidades gráficas
l En debian: dpkg-reconfigure xserver-xfree86
40
79
GNU / Linux
Administración básica: instalación de paquetes rpm y código fuente
80
Ejecutables estáticos y dinámicos
l Ejecutables estáticos (linjkados estáticamente) contienen todas las funciones necesarias para ejecutarse, y no dependen de ninguna librería externa
l Ejecutables dinámicos: necesitan librerías externas compartidas para ejecutarse.
l Para ver si es dinámico: $ ldd /sbin/sln (ln estático)– Comparar el tamaño con el ln dinámico: $ ls
/usr/sbin/ln
41
81
Ejecutables estáticos y dinámicos
l Para ver de qué librerías depende:– $ ldd bin/ln
l ¿Quién tiene la fución de cargar éstas fuciones? La librería ld.linux.so.2 llamada el cargador dinámico (dinamyc loader)
l ¿Cómo encuentra las librerías necesarias el cargador dinámico? – $ cat /etc/ld.linux.so.2, y veo los directorios en los que
busca
82
Ejecutables estáticos y dinámicos
l Podría incluir rutas de directorios con librerías antiguas que quizá me gustaría que explorase el cargador dinámico.
l Pero cualquier cambio hecho en ld.so.conf debe refrescarse con la orden ldconfig, que actualiza un fichero llamado ld.so.cache.
l Para ver todas las librerías compartidas:– $ ldconfig -p | less
42
83
Instalación de aplicaciones desde las fuentesl Descargar el fichero con las fuentes: file.tar.gz
l Descomprimirlo en un directorio temporal:– $ tar zxf file.tar.gz
l Creación del Makefile:– $ ./configure
– Normalmente se instalan en /usr/local (con los binarios en /usr/local/bin) Si quiero instalar las fuentes en otro sitio usar el modificador –preffix=ruta
– En cualquier caso probar ./configure –help
84
Instalación de aplicaciones desde las fuentesl Compilar las fuentes para crear un ejecutable:
– $ make (a veces make all)
l Instalar las fuentes:– $ make install
l En cualquier caso leer el fichero README o INSTALL si lo hubiere
l Pueden venir escritos en perl (*.PL) En esta caso puede usarse perl Makefile.PL
43
85
Instalación de paquetes de aplicaciones l La aplicación viene empaquetada como:
– Rpm (Red Hat, Mandrake)
– Deb (Debian)– Tgz (Slackware)
– Pkg (Solaris)
l Se pueden convertir entre cualquiera de estos formatos usando el programa alien– $ alien f.rpm (y generaría un f.deb)
86
Instalación de paquetes de aplicaciones l Instalar un paquete rpm
– $ rpm -ihv paq.rpm
l Actualizar un paquete rpm: -U– si no está instalada una versión anterior lo instala
l Eliminar un paquete rpm: -e– Forzar para eliminar dependencias con otros
paquetes:-f
– Instalar ignorando dependencias: --nodep (por ejemplo puedo actualizar algo cuyo paquete antiguo no pueda eliminar)
44
87
Antes de la instalación
l Consultar si está instalado un paquete rpm: – $ rpm -q nfs (-í da más información)
l Mostrar dependencias esperadas antes de instalar:– -R (-qpR)
l Verificar la integridad del paquete que me he bajado de internet: --checksig
l Consultar información del paquete rpm ya instalado:– -qp
88
Después de la instalación
l Consultar información del paquete rpm:– Consultar la base de datos entera de paquetes:-qa
– -d (sólo documentación asociada)– -c (sólo archivos de configuración asocidos)
l Actualizar un paquete rpm: -U– Si no está instalada una versión anterior lo instala
l Eliminar un paquete rpm: -e
– Forzar para eliminar dependencias con otros paquetes:-f
45
89
Dependencias en la instalación (Mandrake) l Parte de una base de datos de paquetes, que pueden ser
un CDROM, discos duros, ftp, sitios web,...
l Mismo concepto que apt-get (Debian)
l Para añadir fuentes de rpm´s:
– # urpmi.addmedia dirección
– # urpmi.addmedia mycd removable://mnt/cdrom/
– # urpmi.removemedia elimina fuentes
– # urpmi.update -a actualiza la base de datos.
– # urpmi.update –auto-select, instala las actualizaciones
90
Dependencias en la instalación (Mandrake) l Archivos de configuración urpmi:
– /var/lib/urpmi/list.*: lista de los paquetes conocidos para urpmi. Cada fichero es una fuente
– /var/lib/urpmi/synthesis.hdlist.*:contiene los grafos de dependencias entre los rpm´s
– /var/lib/urpmi/cfg: localización de las fuentes (direcciones)
– /var/cache/urpmi/: directorio donde se almacena temporalmente todos los rpm´s de fuentes remotas
46
91
Dependencias en la instalación (Mandrake) l Para solventar el problema de las dependencias se
usa una herramienta llamada urpmi:
– # urpmi vim, instalará el paquete vim y todos aquellos de los que dependa
– # urpmi doocbook, si por ejemplo no sé cómo se llama el paquete para hacer Docbooks escribo eso y me lo dirá
– # urpme vim, elimina los paquetes instalados.– # urpmq vim, busca paquetes instalados
92
Instalar paquetes en Debian l Instalación de tareas (conjunto de paquetes)
sencilla: usaremos tasksel– # deselect update
– # tasksel
l Comando apt: Archivos donde se especifican las fuentes de los paquetes:– /etc/apt/sources.list y /etc/apt/apt.conf (en especial la
línea donde dice default release testing)l Si la cambio puedo usar paquetes de otras versiones.
– #apt-get update (actualiza después de la instalación según sources.list)
47
93
Instalar paquetes en Debian l Comandos apt:
– # apt-cache searh texto: busca información de paquetes que tengan que ver con textol # apt-cache searh web editor
– # apt-cache show mozilla: muestra información del paquete mozilla
– # apt-get install paquete: instala el paquete *.deb desde una ubicación de internet (sources.list)
– # apt-get update: actualiza el paquete *.deb
– # apt-get upgrade: actualiza todos los paquetes instalados.
94
Instalar paquetes en Debian – # apt-get -fix-broken -show-upgrade dist-upgrade:
actualiza toda la distribución (sin cambiarla de status) y resuelve las dependencias posibles
– # apt-get -u install paquete1 paquete2 instala p1 y desinstala p2
– # apt-get -u install paquete:instala el paquete y sus dependencias
– # apt-get remove paquete: desinstala el paquete
– # apt-get remove –purge paquete: desinstala el paquete y sus archivos de configuración
– # apt-get install paquete: instala el paquete *.deb
48
95
Instalar paquetes en Debian l Comando dpkg:
– # dpkg --install paquete.deb (la más práctica)– # dpkg --remove paquete
– # dpkg --purge paquete (incluidos archivos de configuración)
96
Equivalencia urpmi-apt
APT URPMIapt-get install urpmi
apt-get upgrade urpmi apt-get update urpmi.updateapt-get remove urpme
apt-cache search urpmf
49
97
GNU/LINUX
El proceso de arranque en Linux
98
El gestor de arranque LILO
l Programa que carga un kernel de Linux (u otro SO) en memoria y lo arranca.
l Tiene dos partes:– El boot loader: programa que intenta buscar y cargar
un kernel. Reside en el sector de arranque del disco duro (MBR) o en el primer sector de la partición primaria y es arrancado por la BIOS.
– La orden /sbin/lilo : actualiza el LILO según su fichero de configuración /etc/lilo.conf
50
99
El fichero /etc/lilo.confl Parámetros más importantes:
– Boot: el nombre de la partición desde la que arranca.
– Image: El archivo específico del Kernel.
– Label: etiqueta para cada imagen
– Map: directorio donde está el fichero map.
– Prompt: petición de parámetros de entrada al usuario durante el arranque (runlevel, parámetros del Kernel..)
– Read-only: el sistema de ficheros raíz se montará como de sólo lectura.
– Root: siguiendo a la imagen especifíca la partición que debe ser montada como raíz.
– Timeout: tiempo de elección del SO a arrancar.
100
El fichero /etc/lilo.conf
l Se puede modificar el arranque desde el prompt de LILO :– LILO: linux root=/dev/hda9
– Estos parámetros introducidos afectan al Kernel pero no a los módulos
– Para ello editar /etc/conf.modules l Por ejemplo IRQ de la tarjeta de sonido
51
101
El proceso de arranque del sistema
l Durante el arranque se da información que incluye:– Identificación del Kernel
– Información de la memoria y la CPU
– Hardware detectado (ratón, discos, puertos,...)
l Se puede consultar con la orden dmesg.
l Otros mensajes en /var/log/messages
102
El proceso de arranque del sistema
l Arranque del Kernel
l Montaje del sistema de ficheros raíz
l Arranque del proceso init (PID 1)
l Montaje del resto de sistemas de ficheros (fstab)
l Inicialización de los terminales
l Activación del nivel de ejecución o runlevel: demonios.
52
103
Runlevels (Niveles de ejecución)
l Determina qué servicios (daemons) se van a arrancar durante el arranque del SO
l Tenemos 6 posibles niveles:– Runlevel 0: Parada del sistema
– Runlevel 1: Modo mantenimiento (monousuario):
– Runlevel 2: Multiusuario sin red (NFS)
– Runlevel 3: Multiusuario
– Runlevel 4: Reservado
– Runlevel 5: Arranque con GUI login (X Window)
– Runlevel 6: Reinicio del sistema
104
Modificación del runlevel en ejecución
l Para entrar en un nivel:
– En el prompt de LILO: linux 1, siendo linux la etiqueta de la imagen del kernel
– Directamente en el shell: init 1
53
105
El directoro /etc/init.dl Es el directorio usado para mantener los scripts de
arranque de los servicios del sistema– Son scripts no binarios
– Reciben diferentes argumentos (start, stop, status, restart,...)
l rc.sysinit: se ejecuta al arrancar el SO y se encarga por ejemplo de montar los sistemas de ficheros.
l rc.local: invocado por rc.sysinit, contiene parámetros del arranque.
l rc: script usado para cambiar entre runlevels
106
El directorio /etc/rc.dl El directorio /etc/rc.d/init.d contiene scripts
individuales de inincio/parada de cada servicio del sistema (por ejemplo httpd, demonio del Apache)
– Por ejemplo para reiniciar Apache: /etc/rc.dinit.d httpd restart.
l Además contiene los directorios rc.# con linkspuntando a estos scripts, donde # va del 0 al 6 según el nivel de ejecución en el que estemos.
l Cuando el proceso init entra en el nivel n, examina todos los links en el directorio rc.n
54
107
El directorio /etc/rc.dl Estos links simbólicos se denotan de la siguiente
forma:
– [K|S] [nn] [init.d_name]lPrefijos K y S: significan Kill y Start
respectivamente, y definen si ese servicio debe estar arrancado o no. l[nn]: Determina el orden en el que los
servicios deben arrancarse o pararse. l[init.d_name] nombre del script al que
apunta. Sólo para poder identificarlos.
108
El fichero /etc/inittab
l Define el runlevel por defecto, especificado en una línea:– id:n:initdefault, donde n es el runlevel por defecto.
l Para conocer cuál es nuestro nivel de ejecución escribimos #runlevel, devolviendo N 5. Por ejemplo, 3 5 significa que ha pasado de un nivel 3 al 5.
55
109
GNU / LINUX
Trabajo básico en red
110
Acceso remoto con ssh
l ¿Qué es telnet?
l Ssh: telnet seguro (puerto 22)– $ ssh -l usuario nombre_del_equipo
l Transferencia de ficheros: sftp– $ sftp usuario@nombre_del_equipo
– Comandos get, put, mget, mput, ls cd, !, exit.
l Cuidado con el fichero .ssh el homedir.
56
111
Navegación en Internet
l Configuración: KPPP
l Winmodems (www.linmodems.org)
l Navegadores:– Mozilla
– Navegador Web Konqueror
– Galeon (Gnome)
– Lynx (modo texto)
112
Otros servicios de red
l Servidor Web Apache
l Servidor de nombres DNS
l Routers
l Proxy (squid)
l Correo (Sendmail, Postfix, Procmail)
l Bases de datos (Mysql, Oracle)
l Terminal Server (LTSP)
57
113
GNU / LINUX
El kernel de Linux: compilación
114
Compilación del nucleo
l Primero bajarse las fuentes del kernel
l Ordenes para la compilación del núcleo:– # cd /usr/src/linux/linux-2.6.x
– # make xconfig (make menuconfig, make config) (Configura el kernel)
– # make dep (genera información de dependencias)
– # make bzimage (compila la imagen binaria del kernel en el directorio /usr/src/linux/arch/i386/boot)
58
115
Compilación del nucleo
l Compilación e instalación de módulos (en usr/lib/linux2.4)– # make modules
– # make modules_install
l Compilación e instalación de módulos en un kernel que se está ejecutando:– # insmod
– # modconf (en Debian, con posible interfaz Gnome)
116
Y para terminar...