Introducción a GNU/Linux (presentación completa)

Anuncio
GNU / Linux
Introducción a GNU / Linux
1
Un poco de historia
l
l
1991: Linus Torvalds creó Linux basándose en
Minix, una pequeña implementación de UNIX
para PC, escrito totalmente en C.
Linus anunció la primera versión oficial de Linux,
la 0.02 el 5 de Octubre de 1991
–
l
Constaba básicamente del Kernel, el shell bash y el
compilador gcc.
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
1
Qué es GNU / Linux
l
Richard Stallman: Software libre (free)
–
l
l
“...es como si te vendieran un coche con el capó
sellado para que no pudieses ver el motor”
Proyecto GNU realizado por la FSF (Free Software
Foundation
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)
3
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
4
2
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.
5
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
6
3
Debian
l
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)
El paso de inestable a prueba se realiza
congelando la versión cuando alcanza un cierto
grado de madurez.
7
Debian
l
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
Todos se encuentran en www.debian.org
8
4
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
9
GNU / Linux
Ubuntu
10
5
Ubuntu
l
l
Live CD e instalable
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.
11
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.
12
6
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.
13
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 CDROM (IDE/ATAPI o SCSI) normal,
–
tarjeta SVGA-compatible,
ratones Serie o PS/2 o IMPS/2-compatible o USB.
–
14
7
GNU / Linux
Instalación
15
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.
16
8
Recomendaciones para la instalación
l
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)
Gestor de arranque LILO y compatibilidad con
Windows
–
MBR
–
Primer sector de la partición del sistema
–
Disquete
17
Postinstalación
l
l
l
l
l
Actualización del sistema (apt-get update)
Servicios o demonios que arrancan al iniciar el
sistema: (ver init.d y rc5.d)
Montaje de las particiones Windows y Linux a las
que quiero acceder (ver archivo fstab)
Instalación de paquetes opcionales: Webmin (ver
capítulo de instalación de paquetes)
Configuración e instalación de algunos módulos
necesarios, por ejemplo soporte NTFS (ver
capítulo del Kernel)
18
9
GNU / Linux
Lo que todo linuxero debe saber
19
Acciones básicas
l
Arrancar el sistema
l
Hacer login
l
–
En el shell (startX)
–
Desde las X: xdm, gdm
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.
20
10
Acciones básicas
l
Ejecutar un comando:
–
$ hostname
–
$ hostname -opción
$ hostname --help (opciones estilo GNU)
–
l
Cambiar la password: $ passwd
21
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)
22
11
Buscar ayuda
l
Páginas man:
–
l
$ man w
Documentación en Linux
–
En /usr/docs o en /usr/share/doc
–
Howto´s y mini Howto´s
–
Proyecto LTDP
–
Proyecto Lucas
23
Buscar ayuda
l
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
¿Para qué sirve un programa determinado?
–
$ whatis who
–
Opción help: $ whoami –help
l
(probar también -h o -?)
24
12
GNU / Linux
El shell I (acciones básicas)
25
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
–
l
$ ls /mn [Tab]
Histórico de órdenes: ?
–
Búsqueda en el histórico de órdenes: [Ctrl+r] y la
orden
26
13
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
27
GNU / Linux
Sistemas de ficheros I
Ordenes básicas de manipulación de ficheros
28
14
Sistema de ficheros
l
l
l
Estructura jerárquica del sistema de ficheros en
UNIX
Linux trata todo (directorios, dispositivos,
puertos,...) como ficheros
Tipos de ficheros
–
Ficheros
–
–
Directorios
Enlaces (links)
–
Ficheros de bloque
29
Sistema de ficheros
l
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)
30
15
Sistema de ficheros
l
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)
31
Comandos sobre el árbol de
directorios
l
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)
–
l
-p crea directorios padre si no existen
Para crear un archivo debo usar un editor como
Vi o Emacs
32
16
Comandos sobre el árbol de
directorios
l
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]
33
GNU/LINUX
Edición de archivos con Vi
34
17
Edición con Vi
l
l
Dos modos:
–
Modo orden: Esc
–
Modo edición: a(anexar) / i (insertar)
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.
35
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
36
18
Edición con Vi
l
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.
En cualquier caso consultar man vi para otras
acciones.
37
GNU / Linux
Sistemas de ficheros II: acciones avanzadas
38
19
Enlaces a ficheros
l
l
Hard links:
–
Mismo sistema de ficheros y mismo inodo
–
Si borro el fichero borro el enlace
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)
39
Compartiendo ficheros
l
l
Grupos de usuarios: un usuario pertenece al
menos a un grupo (el login group)
–
$ groups grupo
–
$ groups usuario
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
40
20
Permisos sobre ficheros
l
Ver los permisos: $ ls -l
l
Cambiar permisos: $ chmod
l
–
Letras: r,w,x / u, g, o, a
–
Numéricos: 777
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.
41
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
42
21
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'
43
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
–
–
l
$ find ~ -empty -exec rm -f {} \;
-ok es igual pero pide confirmación
Redireccionar errores:
–
$ find / -name 'et*' >~/file 2>/dev/null
44
22
Encontrar un fichero
l
Cómo saber el número de ficheros en un
directorio:
–
l
$ ls -a |wc -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)
45
Encontrar un fichero
l
l
Localizar una orden:
–
$ which cd
–
Consejo: mirar siempre en /bin, /sbin, /usr/bin,
/usr/sbin,... en general en el PATH
Ver el tipo de un fichero
–
$ type fichero
–
$ file fichero
46
23
Filtros
l
La orden grep
l
La orden sort
l
La orden cut
47
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
48
24
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
l
cat prueba.bmp.* > prueba.bmp
Rm prueba.bmp.*
49
Comparar ficheros
l
La orden cmp: compara dos ficheros y ve si son
iguales
–
l
$ cmp file1 file2
La orden diff y sdiff también comparan pero dan
más información
–
$ sdiff file1 file2 | less
50
25
Compresión de ficheros
l
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,..)
Otros compresores:
–
bzip2
–
zip
–
Compress
51
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)
52
26
Sistema de ficheros y particiones
l
l
La orden mount / umount
–
$ mount -t fat /dev/hda1 /mnt/windows
–
$ umount /dev/cdrom
El fichero /etc/fstab
–
Estructura
–
Opciones:
l
l
l
User
Auto
ro
53
Sistema de ficheros y particiones
l
La orden df: informa del tamaño de los sistemas
de ficheros y su uso
–
l
$ df -h (h, human readable)
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).
54
27
Disquetes
l
Formatear un disquete
–
l
$ mke2fs /dev/fd0
Formatear con formato fat:
–
$ umount /floppy; mkfs -t fat /dev/fd0
–
$ mformat /dev/fd0
55
GNU / Linux
El shell II (acciones avanzadas)
56
28
El shell
l
Ejecutar una lista de comandos
–
l
$ clear ; ls
Tuberías (pipes)
–
$ who | w -l
–
$ man | less
57
El shell
l
Redireccionamiento de entrada y de salida
–
l
Redireccionar la entrada a un fichero
–
l
$ ls / > ~/filedir
Anexar la salida a un fichero existente
–
l
$ apropos < Keywords, donde Keywords es un
fichero con palabras clave (órdenes)
Redireccionar la salida a un fichero
–
l
Entradas y salidas estándar y otras entradas y salidas
$ ls /etc >> ~/filedir
Redireccionar errores: 2>/dev/null
58
29
El shell
l
Redireccionar los mensajes de error a un fichero
–
l
$ ls / 2> ~file.error
Redireccionar la salida de un comando y tomarlo
como entrada de otro es al fin y al cabo una
tubería
59
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
60
30
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
61
Personalizar el shell
l
l
Crear alias
–
$ alias bye=”exit”
–
$ alias ap=”apropos shell bash”
Variable PATH:
–
l
$ echo $PATH
Se guardan en:
–
~/.bashrc (o /etc/bashrc) para todos los shell excepto
el login shell
–
~/.bash_profile para el login shell
62
31
Personalizar el shell
l
Si los quiero unificar poner esta línea en el
~/.bash_profile
–
l
If [ -f ~/.bashrc ]; then . ~/.bashrc; fi
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.
63
Variables del shell
l
Puedo definir variables para cualquier shell que
arranque (ejecutando bash). Para ello debo
exportarla.
–
l
$ export (vería todas las variables exportadas)
Exportar variables:
–
$ BAR=bar; FOO=foo
–
–
$ export BAR
$ echo $BAR $FOO
–
$ bash; $ echo $BAR $FOO
64
32
Variables del shell
l
l
l
En teoría debería poner set FOO=foo (unset)
Otra forma sería declararlas y exportarlas en el
.bash_profile, y estarían dispuestas para un login
posterior.
Puedo crear a su vez alias de órdenes:
–
$ alias 'lh = ls -lh'
–
$ alias
–
$ unalias lh
65
GNU / Linux
Administración de los recursos del sistema
66
33
Gestión de procesos
l
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]
La orden top: Muestra valores actualizándose
instantáneamente.
67
Gestión de trabajos
l
l
Trabajos: listado de trabajos ejecutándose
–
$ jobs
–
A cada trabajo se le asigna un número n como
identificador.
Un trabajo (proceso) puede ejecutarse en modo
foreground (primer plano) o backgroung
(segundo plano)
–
Background: $ ps -a &
68
34
Gestión de trabajos
l
l
l
Suspender un trabajo: [Ctrl-z]
Para pasar un trabajo de foreground a background
(y viceversa):
–
Primero suspenderlo
–
Luego escribir $ bg %n (fg para foreground)
Parar un trabajo foreground antes de que acabe:
[Ctrl-c]
–
$ cat [enter]
l
l
[Ctrl-c]
Parar un trabajo backround antes de que acabe:
–
$ kill %n
69
GNU / Linux
Administración de usuarios
70
35
passwd y group
l
La información de los usuarios se guarda en
/etc/passwd.
–
l
Cada línea de /etc/passwd contiene un nombre de
usuario, password, UID, GID, nombre completo,
directorio particular y shell por defecto.
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.
71
Ficheros shadow
l
l
Permite almacenar las contraseñas cifradas en un
fichero de sólo lectura al que sólo se puede
acceder como root.
Son /etc/shadow y /etc/gshadow para passwd y
group respectivamente.
72
36
Ordenes para la administración de
usuarios y grupos
useradd usuario
groupadd grupo
usermod usuario
modificación u/g
groupmod grupo
l
userdel usuario
groupdel grupo
l
passwd username
l
l
l
l
l
pwconv
shadow
gpasswd groupname
grpconv
pwunconv
a passwd
convierte passwd a
grpunconv revierte shadow
Change user modifica vigencia de la password
73
Entorno de usuario y variables de
entorno del sistema
l
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.
74
37
Entorno de usuario y variables de
entorno del sistema
l
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.
75
GNU / Linux
X Window
76
38
X window
l
Arquitectura cliente-servidor X
l
Gestores de ventanas:
–
l
Fvwm95, twm, sawfish, icewm, Enlightment ...
Entornos de escritorio:
–
KDE
–
GNOME
77
X window
l
Cambiar la resolución: [Ctrl]-[Alt]-[+ / -]
l
Ejecutar un programa al iniciar sesión:
–
l
l
~/.xsession
Configurar las X: Xconfigurator y utilidades
gráficas
En debian: dpkg-reconfigure xserver-xfree86
78
39
GNU / Linux
Administración básica:
instalación de paquetes rpm y código fuente
79
Ejecutables estáticos y dinámicos
l
l
l
Ejecutables estáticos (linjkados estáticamente)
contienen todas las funciones necesarias para
ejecutarse, y no dependen de ninguna librería
externa
Ejecutables dinámicos: necesitan librerías
externas compartidas para ejecutarse.
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
80
40
Ejecutables estáticos y dinámicos
l
Para ver de qué librerías depende:
–
l
l
$ ldd bin/ln
¿Quién tiene la fución de cargar éstas fuciones?
La librería ld.linux.so.2 llamada el cargador
dinámico (dinamyc loader)
¿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
81
Ejecutables estáticos y dinámicos
l
l
l
Podría incluir rutas de directorios con librerías
antiguas que quizá me gustaría que explorase el
cargador dinámico.
Pero cualquier cambio hecho en ld.so.conf debe
refrescarse con la orden ldconfig, que actualiza un
fichero llamado ld.so.cache.
Para ver todas las librerías compartidas:
–
$ ldconfig -p | less
82
41
Instalación de aplicaciones desde las
fuentes
l
Descargar el fichero con las fuentes: file.tar.gz
l
Descomprimirlo en un directorio temporal:
–
l
$ tar zxf file.tar.gz
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
83
Instalación de aplicaciones desde las
fuentes
l
Compilar las fuentes para crear un ejecutable:
–
l
Instalar las fuentes:
–
l
l
$ make (a veces make all)
$ make install
En cualquier caso leer el fichero README o
INSTALL si lo hubiere
Pueden venir escritos en perl (*.PL) En esta caso
puede usarse perl Makefile.PL
84
42
Instalación de paquetes de
aplicaciones
l
l
La aplicación viene empaquetada como:
–
Rpm (Red Hat, Mandrake)
–
–
Deb (Debian)
Tgz (Slackware)
–
Pkg (Solaris)
Se pueden convertir entre cualquiera de estos
formatos usando el programa alien
–
$ alien f.rpm (y generaría un f.deb)
85
Instalación de paquetes de
aplicaciones
l
Instalar un paquete rpm
–
l
Actualizar un paquete rpm: -U
–
l
$ rpm -ihv paq.rpm
si no está instalada una versión anterior lo instala
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)
86
43
Antes de la instalación
l
Consultar si está instalado un paquete rpm:
–
l
Mostrar dependencias esperadas antes de instalar:
–
l
l
$ rpm -q nfs (-í da más información)
-R (-qpR)
Verificar la integridad del paquete que me he
bajado de internet: --checksig
Consultar información del paquete rpm ya
instalado:
–
-qp
87
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
–
l
Si no está instalada una versión anterior lo instala
Eliminar un paquete rpm: -e
–
Forzar para eliminar dependencias con otros
paquetes:-f
88
44
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
89
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
90
45
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
–
91
Instalar paquetes en Debian
l
l
Instalación de tareas (conjunto de paquetes)
sencilla: usaremos tasksel
–
# deselect update
–
# tasksel
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)
92
46
Instalar paquetes en Debian
l
Comandos apt:
–
# apt-cache searh texto: busca información de
paquetes que tengan que ver con texto
l
# 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.
93
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
94
47
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)
95
Equivalencia urpmi-apt
APT
apt-get install
apt-get upgrade
apt-get update
apt-get remove
apt-cache search
URPMI
urpmi
urpmi
urpmi.update
urpme
urpmf
96
48
GNU/LINUX
El proceso de arranque en Linux
97
El gestor de arranque LILO
l
l
Programa que carga un kernel de Linux (u otro
SO) en memoria y lo arranca.
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
98
49
El fichero /etc/lilo.conf
l
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.
99
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
100
50
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
101
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.
102
51
Runlevels (Niveles de ejecución)
l
l
Determina qué servicios (daemons) se van a
arrancar durante el arranque del SO
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
103
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
104
52
El directoro /etc/init.d
l
l
l
l
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,...)
rc.sysinit: se ejecuta al arrancar el SO y se
encarga por ejemplo de montar los sistemas de
ficheros.
rc.local: invocado por rc.sysinit, contiene
parámetros del arranque.
rc: script usado para cambiar entre runlevels
105
El directorio /etc/rc.d
l
El directorio /etc/rc.d/init.d contiene scripts
individuales de inincio/parada de cada servicio
del sistema (por ejemplo httpd, demonio del
Apache)
–
l
l
Por ejemplo para reiniciar Apache: /etc/rc.dinit.d httpd restart.
Además contiene los directorios rc.# con links
puntando a estos scripts, donde # va del 0 al 6
según el nivel de ejecución en el que estemos.
Cuando el proceso init entra en el nivel n,
examina todos los links en el directorio rc.n
106
53
El directorio /etc/rc.d
l
Estos links simbólicos se denotan de la siguiente
forma:
– [K|S] [nn] [init.d_name]
Prefijos 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.
l
107
El fichero /etc/inittab
l
Define el runlevel por defecto, especificado en
una línea:
–
l
id:n:initdefault, donde n es el runlevel por defecto.
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.
108
54
GNU / LINUX
Trabajo básico en red
109
Acceso remoto con ssh
l
¿Qué es telnet?
l
Ssh: telnet seguro (puerto 22)
–
l
l
$ ssh -l usuario nombre_del_equipo
Transferencia de ficheros: sftp
–
$ sftp usuario@nombre_del_equipo
–
Comandos get, put, mget, mput, ls cd, !, exit.
Cuidado con el fichero .ssh el homedir.
110
55
Navegación en Internet
l
Configuración: KPPP
l
Winmodems (www.linmodems.org)
l
Navegadores:
–
Mozilla
–
Navegador Web Konqueror
–
Galeon (Gnome)
–
Lynx (modo texto)
111
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)
112
56
GNU / LINUX
El kernel de Linux: compilación
113
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)
114
57
Compilación del nucleo
l
l
Compilación e instalación de módulos (en
usr/lib/linux2.4)
–
# make modules
–
# make modules_install
Compilación e instalación de módulos en un
kernel que se está ejecutando:
–
# insmod
–
# modconf (en Debian, con posible interfaz Gnome)
115
Y para terminar...
116
58
Descargar