Restaurar dpkg. Esto sirve para recuperar todos los paquetes Debian:
# ar x dpkg_1.16.10_amd64.deb
$ ar t dpkg_1.16.10_amd64.deb
debianbinary
control.tar.gz
data.tar.gz
# tar C / p xzf data.tar.gz
Para ver toda la información de un paquete, incluyendo dependencias, conflictos,
incompatibilidades (breaks), paquetes virtuales (Provides) que señalan la necesidad de que
haya un servicio intalado (por ejemplo un servidor de correo para un programa de listas de
difusión o bien la existencia de paquetes instalados que ya no son necesarios, debido a que
vienen incluídos en el paquete que estamos analizando:
$ aptcache show apt
Todos los scripts de configuración de paquetes instalados se almacenan en el directorio / var
lib / dpkg / info / como un nombre de archivo / preset paquete. También incluye, para cada
paquete, un archivo de extensión .list que contiene la lista de archivos pertenecientes al
paquete.
Un paquet source est habituellement constitué de 3 fichiers : un .dsc, un .orig.tar.gz et un
.debian.tar.gz (ou .diff.gz).
Para descompactar paquetes fuentes podemos utilizar dos métodos:
$ dpkgsource x paquet_0.71.dsc
$ aptget source paquet (en este caso hemos tenido antes que haber incluido las debsrc en
el fichero /etc/apt/sources.list)
dpkg
Instalación:
# dpkg i mandb_2.6.21_amd64.deb
realmente realiza dos pasos:
# dpkg unpack mandb_2.6.21_amd64.deb
# dpkg configure mandb
Hay muchas opciones force. La más haitual forceoverwrite que permite sobreescribir un
paquete ya instalado. Pero hay que tener cuidado con forzar, ya que puede afectar luego al
correcto funcionamiento de apt a la hora de resolver automáticamente dependencias.
Desinstalación:
# dpkg r debiancd [no borra ficheros de configuración, scripts de configuración, datos… y es
lo mejor en caso de tener que recuperar]
# dpkg P debiancd [elimina todo]
Consultas:
$ dpkg L basepasswd [ficheros instalados or un paquete]
$ dpkg S /bin/date [a qué paquete pertenece un fichero concreto]
$ dpkg s coreutils [información sobre el paquete]
$ dpkg l [paquetes conocidos el sistema y su estado de instalación]
$ dpkg c /var/cache/apt/archives/gnupg_1.4.127+deb7u2_amd64.deb [ver ficheros que
contiene el paquete, estén o no instalados]
$ dpkg I /var/cache/apt/archives/gnupg_1.4.127+deb7u2_amd64.deb [es i mayúscula, da
también información sore el paquete, como s sin la extensión .deb]
Todos los cambios de instalación dpkg en /var/log/dpkg.log
Los paquetes debian están compilados para una determinada arquitectura, pero es posible
habilitar otras arquitecturas:
De esta forma podemos instalar paquetes compilados para otras arquitecturas. Igualmente
podemos eliminar este soporte multiplataforma, pero antes tendremos que eliminar los
paquetes instalados correspondientes:
# dpkg removearchitecture armhf
Mediante la utilidad alien podemos convertir paquetes de otras distribuciones en paquetes
.deb
En este fichero se ponen las fuentes de los ficheros. La estructura de cada fuente es la
siguiente, dividida en tres partes:
deb http://ftp.debian.org/debian wheezy/i386 main contrib nonfree
La primera señala el tipo de fichero, binario (deb) o fuente (debsrc), la segundo el origen
(file://, http://, cdrom://, etc) y la tercera el subrepositorio y el tipo de licencias
Si de nombreuses sources de paquets sont référencées, il peut être utile de les séparer en
plusieurs fichiers, chaque fragment étant stocké dans un /etc/apt/sources.list.d/fichier.list
En Debian hay una herramienta, aptspy que permite analizar la velocidad de cada fuente. No
está disponible en Ubuntu.
Hay diversas opciones de configuración, por ejemplo en los ficheros contenidos en
/etc/apt/apt.conf.d/ donde podemos indicar que en un determinado paquete se sobreescriba
siempre la versión anterior.
Para consultas podemos utilizar aptcache
aptcache pkgnames [lista paquetes de la caché]
aptcache show paquete
aptcache search palabra_clave
Resolución de problemas y fuentes de información.
Para consultar manuales:
# man cp
# info cp
Para mirar solo la descripción:
$ whatis scp
Buscar un comando por la descripción:
$ apropos "copy file"
Las aplicaciones suelen dejar su README en /usr/share/doc/paquet/
Errores:
Buscar los log en /var/log.
La configuración de los logs está en el fichero /etc/rsyslog.conf y en los dicheros de
/etc/rsyslog.d/
Configuración
Idioma.
Para camiar los parámetros locales podemos ejecutar dpkgreconfigure locales, o bien
podemos tocar el /etc/locale.gen y ejecutar después localegen. Los parámetros regionales,
es decir es_ES.UFT8 se configura en la variable LANG de /etc/default/locale.
Le fichier /etc/environment sert aux programmes pour créer leurs variables d'environnement.
Para el teclado podemos ejecutar $ dpkgreconfigure keyboardconfiguration. Las
combinaciones de tecaldo suelen venir en /usr/share/X11/locale/en_US.UTF8/Compose.
En Debian hay un comando para cambiar la codificación :
Sin embargo, se suele utilizar más Network Manager, que permite cambiar entre conexiónes.
La configuración en este caso se realiza con los ficheros .ini de /etc/NetworkManager/
systemconnections/ o con una aplicación gráfica, y la configuración clásica en
/etc/network/interfaces se desactiva
El nombre de host se pone en /etc/hostname, mientras que en /etc/hosts se pondría en de
dominio:
Para la resolución de nombres se utiliza el típico fichero /etc/nsswitch.conf y para la
resolución DNS /etc/resolv.conf.
Los comandos y ficheros de usuarios, grupos y contraseñas son los normales en el entorno
UNIX/Linux.
La configuración estándar de la creación de usuarios se configura en /etc/adduser.conf
Shell
Debian utiliza el fichero /etc/bash.bashrc para configurar el shell de terminal, y el fichero
/etc/profile para el de conexión. A parte el usuario puede personalizarlos en su directorio
home con los ficheros .bash_profile y .bashrc.
Discos
Los dispositivos se encuentran en /dev/sd*, aunque con udev podemos encontrar enlaces
simbólicos en /dev/disk/byid/
# Le disque sur lequel LILO doit s'installer.
# En indiquant le disque et non pas une partition,
# on ordonne à LILO de s'installer sur le MBR.
boot=/dev/sda
# la partition qui contient Debian
root=/dev/sda2
# l'élément à charger par défaut
default=Linux
# Noyau le plus récent
image=/vmlinuz
label=Linux
initrd=/initrd.img
readonly
# Ancien noyau (si le noyau nouvellement installé ne démarre pas)
image=/vmlinuz.old
label=LinuxOLD
initrd=/initrd.img.old
readonly
optional
# Seulement pour un double amorçage Linux/Windows
other=/dev/sda1
label=Windows
GRUB2
Se instala con $ grubinstall /dev/sda y se actualiza con $ updategrub. La configuración se
guarda en /boot/grub/grub.cfg pero a partir de otros, por lo que no hay que tocarlo.
Hora
La hora del sistema se puede configurar con $ dpkgreconfigure tzdata. TAmbién podemos
mirar los fichers /etc/timezone y /etc/localtime
$ date
mercredi 28 juillet 2010, 12:05:21 (UTC+0200)
$ TZ="Pacific/Honolulu" date
mercredi 28 juillet 2010, 00:05:33 (UTC1000)
Para NTP en el cliente modificamos el fichero /etc/default/ntpdate y en el servidor
/etc/ntp.conf.
Restricción de permisos.
El comando sudo se configura en el fichero /etc/sudoers con la siguiente sintaxis:
utilisateur ALL=(ALL) ALL
Montaje
Los puntos de montaje permanentes se configuran en /etc/fstab
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc nodev,noexec,nosuid 0 0
# / was on /dev/sda1 during installation
UUID=5f6498e51e064deaa95c9a3e284e5733 / ext4 errors=remountro 0 1
# swap was on /dev/sda5 during installation
UUID=3f0f3e73dd834f778f91da58ed0d5755 none swap sw 0 0
En el primer campo se puede poner el dispositivo o su UUID, que podemos obtenerlo con el
comando blkid. En el cuarto ponemos las opciones (rw, ro, auto, noauto, user, default….) en
el quinto si hay backup, y en el sexto la verificación de integridad.
Busqueda de ficheros
Debian tiene dos comandos locate y mlocate que permiten una busqueda rápida por el
nombre de fichero. Para utilizalo hay que crear una base de datos con updatedb, cuya
configuración de indexación está en /etc/updatedb.conf
Compilación del núcleo.
Extraer los ficheros en una carpeta creada:
$ mkdir ~/kernel; cd ~/kernel
$ tar xjf /usr/src/linuxsource3.2.tar.bz2
En el penúltimo paso es cuando, con los scripts ahí contenidos se monta el disco físico, se
cargan controladores listados en /etc/modules, se montan las particiones, la red…. En el
último paso se lanzan los scripts del runlevel correspondiendo, siguiendo el orden de
prioridad marcado en el número o utilizando insserv.
Por último se arranca el gestor gráfico.
El runlevel normal es 2, y para pasar de runlevel se utiliza el comando telinit N_runvlevel.
Inicio seguro de sesión remota: SSH
SSH incluye un medio de copia segura:
$ scp archivo equipo:/tmp/
El usuario genera un par de llaves en la máquina cliente con sshkeygen t rsa; la llave públi
ca se almacena en ~/.ssh/id_rsa.pub mientras que la llave privada correspondiente estará
almacenada en ~/.ssh/id_rsa. Luego, el usuario utiliza sshcopyid servidor para agregar
su llave pública al archivo ~/.ssh/authorized_keys en el servidor.
# ssh X servidor permite establecer una conexión en entorno gráfico.
Las opciones R y L le permiten a ssh crear «túneles cifrados» entre dos equipos,
redirigiendo
de forma segura un puerto TCP local a un equipo remoto o viceversa.
ssh L 8000:servidor:25 intermediario establece una sesión SSH con el equipo intermedi
ario y escucha en el puerto local 8000. Para cualquier conexión en este puerto, ssh iniciará
una conexión desde el equipo intermediario al puerto 25 de servidor y unirá ambas
conexiones. Con R el sentido de los puertos sería el contrario.
VNC
os entornos gráficos de escritorio GNOME y KDE incluyen vino y krfb, respectivamente, que
proveen una interfaz gráfica que permite compartir una sesión existente sobre VNC. En otros
entornos también se puede utilizar x11vnc. Como clientes GNOME posee vinagre y remmina
mientras que KDE posee krdc.
ssh L localhost:5901:localhost:5900 N T equipo crea un tunel previo entre el puerto 5901
local (loclahost:0)y el 5900 (localhost:1) remotos. Ejecuntando vncviewer localhost:1 nos
conectaría a la máquina remota.
VNC también funciona para usuarios móviles. La configuración de tal servicio es más
complicada: primero instale el paquete vnc4server, modifique la configuración del gestor de
pantalla para aceptar pedidos XDMCP Query (en gdm3 puede hacerlo agregando
Enable=true en la sección «xdmcp» del archivo /etc/gdm3/daemon.conf). Finalmente, inicie el
servidor VNC con inetd para que se inicie una sesión automáticamente cuando el usuario
intente hacerlo. Por ejemplo, puede agregar la siguiente línea al archivo /etc/inetd.conf:
5950 stream tcp nowait nobody.tty /usr/bin/Xvnc Xvnc inetd query localhost
➥ once geometry 1024x768 depth 16 securitytypes=none
Interfaces de Administración.
Tradicionalmente en GNOME se utilizaba webmin (webmin.com) abiendo la consola con
hps://localhost:10000.
Otra herramienta de configuración en gnomecontrolcenter. También se puede utilizar
dpkgreconfigure paquete para realizar cambios en la configuración.
syslog Eventos de sistema
El demonio rsyslogd es responsable de recolectar los mensajes de servicio que provienen de
aplicaciones y el núcleo para luego distribuirlos en archivos de registros (usualmente almace
nados en el directorio /var/log/). Obedece a su archivo de configuración: /etc/rsyslog.conf.
Cada mensaje de registro es asociado con un subsistema de aplicaciones (llamados
«facility» en la documentación) auth, mail, ftp, cron, daemon, user……
Cada mensaje tiene asociado también un nivel de prioridad. Aquí está la lista en orden decre
ciente:
emerg: «¡Ayuda!» Hay una emergencia y el sistema probablemente está inutilizado.
alerta: apúrese, cualquier demora puede ser peligrosa, debe reaccionar inmediatamente;
crit: las condiciones son críticas;
err: error;
warn: advertencia (error potencial);
notice: las condiciones son normales pero el mensaje es importante;
info: mensaje informativo;
debug: mensaje de depuración.
subsistema[,subsistema,].[! =]prioridad
acción (/var/log/messages, @log.falcot.com,
usuarios (nombres separados por una coma o a todos los activos poniendo un *)
El superservidor inetd
El archivo /etc/inetd.conf enumera los servidores y sus puertos usuales.
Frecuentemente se utiliza el programa tcpd en el archivo /etc/inetd.conf. Permite limitar
las conexiones entrantes aplicando reglas de control de acceso, documentadas en la página
de
manual hosts_access(5), y que puede configurar en los archivos /etc/hosts.allow y /etc/
hosts.deny.
Programación de tareas con cron y atd
De forma predeterminada, todos los usuarios pueden programar tareas para ejecutar. Cada
usuario tiene su propio «crontab» en el que pueden almacenarlas. Puede editarlo ejecutan
do crontab e (el contenido del mismo es almacenado en el archivo /var/spool/cron/
crontabs/usuario). El usuario root tiene su propio «crontab», pero también puede utilizar el
archivo /etc/crontab o escribir archivos «crontab» adicionales en el directorio /etc/cron.d.
# 08:00 en días de semana (Lunes a Viernes)
00 08 * * 15 $HOME/bin/haceralgo (en /etc/crontab y en /etc/cron.d hay que poner el usuario
antes del programa a ejecutar.
Se aceptan diminutivos en la parte de la fecha hora:
@yearly:una vez por año (1 de Enero a las 00:00);
@monthly: una vez por mes (el 1ro de mes a las 00:00);
@weekly: una vez por semana (Domingo a las 00:00);
@daily: una vez por día (a las 00:00);
@hourly: una vez por hora (al principio de cada hora).
@reboot: cuando se reinicia el sistema.
Puede restringir el acceso a cron si crea un archivo de autorización explícita (una lista
blanca) en /etc/cron.allow. A la inversa /etc/cron.deny. Esta misma funcionalidad
está disponible para atd con los archivos /etc/at.allow y /etc/at.deny.
Para crear un at debemos añadirle fecha y/o hora.
Para consulta atq, y para borrar atrm o at rm y número de trabajo.
anacron es el demonio que completa cron en equipos que no están encendidos todo el
tiempo.
Cuotas
Para activarlo en un sistema de archivos debe indicar las opciones usrquota y grpquota en el
archivo /etc/fstab para las cuotas de usuario y grupos, respectivamente.
Ejecutar edquota usuario (o edquota g grupo) le permite modificar los límites mientras
examina el uso actual del espacio en disco. Si ejecuta edquota t puede definir un «período
de gracia» máximo. Los límites se hace por bloques o por inodos.
Respaldo
Existen multiples paquetes para realizar buckups. Por ejempo rsync (dirvish). La
configuración principal se encuentra en el archivo /etc/dirvish/master.conf. Define la ubicación
del espacio de almacenamiento de respaldos, la lista de «bóvedas» administradas y los
valores predeterminados de expiración de los respaldos. El resto de la configuración está
ubicada en los archivos banco/bóveda/dirvish/default.conf y contienen las configuraciones
específicas a los conjuntos de archivos correspondientes.