# rm-rf.es | Administración de sistemas

Bitácora personal de un SysAdmin Gnu/Linux, Windows, BSD...

Ubuntu: proceso java al 100% de CPU


Java UbuntuHoy, trabajando con KVM sobre Firefox y/o Google Chrome notaba que cada poco tiempo el proceso de JAVA comenzaba a utilizar el 100% de la CPU del sistema. Por supuesto, no había manera de que la consola KVM funcionara bien. El problema residía en la versión de JAVA instalada en Ubuntu por defecto (11.04). Instalando JRE6 el problema ha quedado solucionado y las consolas KVM funcionan a las mil maravillas:

Desinstalamos java-common:

$ sudo apt-get remove java-common

Instalamos los paquetes de JAVA JRE 6 y el plugin correspondiente para los navegadores:

$ sudo apt-get install sun-java6-jre sun-java6-plugin

Ubuntu/Debian: deshabilitar Touchpad portatil Dell Vostro


Nos salimos un poquito de los post habituales del blog para dejar constancia de la forma de deshabilitar el dichoso Touchpad de los portatiles Dell Vostro (en este caso un 3300). En mi caso necesito deshabilitarlo debido a que uso un ratón USB y que siempre toco sin querer el Touchpad y es lo más incómodo que existe…

Bien, para desactivarlo seguimos los siguientes pasos. Primero con el comando xinput list localizamos el nombre del dispositivo en el sistema:

$ xinput list
...
...
SynPS/2 Synaptics TouchPad
...

Una vez localizado, estas son las líneas de comando para activar y desactivar el Touchpad.

Activar:

$ xinput --set-prop "SynPS/2 Synaptics TouchPad" "Device Enabled" 1

Desactivar:

$ xinput --set-prop "SynPS/2 Synaptics TouchPad" "Device Enabled" 0

A partir de aquí, podéis configurarlo al inicio del sistema, con un alias, etc:

$ vim ~/.bashrc

alias raton_off='xinput --set-prop "SynPS/2 Synaptics TouchPad" "Device Enabled" 0'
alias raton_on='xinput --set-prop "SynPS/2 Synaptics TouchPad" "Device Enabled" 1'

Getlibs: encontrar dependencias en librerías (64 vs 32 bits)


El otro día tuvimos que instalar software de 32 bits en una máquina virtual de Debian de 64 bits. Tras la instalación encontramos problemas con dependencias incumplidas que hacían referencia a librerías de 32 bits que no se encontraban instaladas en el sistema. A partir de ahí, gracias a getlibs (¡y a Ángel!) pudimos instalar de forma sencilla todas las librerías necesarias. Todo ello debido a que dicho software no disponía de versión para Debian en 64 bits.

Lo primero que hicimos fue descargar e instalar getlibs:

$ wget http://frozenfox.freehostia.com/cappy/getlibs-all.deb
$ sudo dpkg -i getlibs-all.deb

Después sólo queda ejecutar getlibs seguido de la ruta al binario que da problemas para que automáticamente podamos resolver todas las dependencias:

$ getlibs
Usage: getlibs /path/to/binary
       getlibs -l i386librarytoinstall.so
       getlibs -p i386packagename
       getlibs -w www.website.com/i386package.deb
       getlibs -i /home/alex/i386package.deb
       See 'man getlibs' for more commands

Guía de comandos apt para Debian / Ubuntu (apt-get, apt-cache)


debianHoy vamos a dar un repaso al gestor de paquetes de Debian (y Ubuntu…) apt (Advanced Packaging Tool). Nos vamos a centrar en apt-get y apt-cache. apt-get permite descargar, actualizar e instalar paquetes entre otras cosas, apt-cache por otro lado permite lanzar consultas y buscar paquetes contra la base de datos de los repositorios.

APT-GET

Instalar un paquete:

# apt-get install <paquete>

Desinstalar un paquete:

# apt-get remove <paquete>

Eliminar un paquete incluidos sus ficheros de configuración:

# apt-get purge <paquete>

Eliminar de forma automática aquellos paquetes que no se estén utilizando:

# apt-get autoremove

Actualizar un paquete a la última versión disponible en el repositorio:

# apt-get update <paquete>

Actualizar el sistema. Actualizará todos los paquetes que dispongan de una versión superior dentro de la rama instalada de la distribución:

# apt-get upgrade

Actualizar la distribución completa. Actualizará nuestro sistema a la siguiente versión disponible de la distribución:

# apt-get dist-upgrade

Descargar únicamente las fuentes de un paquete para manipularlas de forma manual:

# apt-get source <paquete>

Limpiar cachés, paquetes descargados, etc:

# apt-get clean
# apt-get autoclean

Verificar que no tenemos ninguna dependencia incumplida:

# apt-get check

APT-CACHE

Buscar un paquete en los repositorios, se puede especificar un patrón, expresión regular, el nombre exacto del paquete, etc:

# apt-cache search <paquete>

Mostrar información sobre un paquete específico (nombre del paquete, versión, dependencias…):

# apt-cache showpkg <paquete>

Mostrar información del paquete incluyendo la descripción, información del paquete como su sitio web, página de bugs…

# apt-cache show <paquete>

Mostrar dependencias de un paquete:

# apt-cache depends <paquete>

Mostrar los nombres de todos los paquetes instalados en el sistema:

# apt-cache pkgnames

Cómo usar APT o Synaptic en versiones antiguas de Ubuntu (tras ‘end of life’)


Como muchos sabéis, Ubuntu tiene un calendario muy riguroso en el que se van publicando nuevas versiones del sistema operativo. Algunas de ellas son llamadas LTS (Long Time Support) debido a que tienen soporte durante 5 años, mientras que las normales solo durante uno o dos años. Por esto, lógicamente es recomendable instalar siempre una LTS para disponer el mayor tiempo de las actualizaciones.

En el momento que se termina el ciclo de soporte de la versión, los repositorios dejan de funcionar, dando error 404 (tanto en APT como Synaptic):

# sudo apt-get update
Ign http://mirror.ousli.org jaunty Release.gpg
Ign http://mirror.ousli.org jaunty/main Translation-es
Ign http://mirror.ousli.org jaunty/restricted Translation-es
Ign http://mirror.ousli.org jaunty/universe Translation-es
Ign http://mirror.ousli.org jaunty/multiverse Translation-es
...
...
Err http://mirror.ousli.org jaunty/main Packages
  404 Not Found
Err http://mirror.ousli.org jaunty/restricted Packages
  404 Not Found
Err http://mirror.ousli.org jaunty/main Sources
  404 Not Found
...
...
W: Imposible obtener http://mirror.ousli.org/ubuntu/dists/jaunty/main/binary-i386/Packages  404 Not Found

W: Imposible obtener http://mirror.ousli.org/ubuntu/dists/jaunty/restricted/binary-i386/Packages  404 Not Found

W: Imposible obtener http://mirror.ousli.org/ubuntu/dists/jaunty/main/source/Sources  404 Not Found
...
...

Lo recomendable llegados a este punto es reinstalar el sistema con una versión LTS actual, una pena porque la estabilidad de GNU/Linux y Ubuntu es tal que podemos tener un sistema durante años y años sin ningún tipo de problema.

No obstante, existe una forma de modificar las sources/repositorios para poder seguir utilizando APT e instalar/actualizar paquetes. Simplemente, modificad el fichero /etc/apt/sources.list y copiar el siguiente contenido. En este caso sería para la versión jaunty, si utilizáis otra versión simplemente sustituid ‘jaunty’por el nombre de la misma:

deb http://old-releases.ubuntu.com/ubuntu/ jaunty main restricted
deb-src http://old-releases.ubuntu.com/ubuntu/ jaunty main restricted
deb http://old-releases.ubuntu.com/ubuntu/ jaunty-updates main restricted
deb-src http://old-releases.ubuntu.com/ubuntu/ jaunty-updates main restricted
deb http://old-releases.ubuntu.com/ubuntu/ jaunty universe multiverse
deb-src http://old-releases.ubuntu.com/ubuntu/ jaunty universe multiverse
deb http://old-releases.ubuntu.com/ubuntu jaunty-security main restricted
deb-src http://old-releases.ubuntu.com/ubuntu jaunty-security main restricted

Guardamos y actualizamos los repositorios, a partir de ese momento y si no recibimos ningún error podremos seguir instalando nuevos paquetes en el sistema:

$ sudo apt-get update

Obj http://old-releases.ubuntu.com jaunty Release.gpg
Obj http://old-releases.ubuntu.com jaunty/main Translation-es
Obj http://old-releases.ubuntu.com jaunty/restricted Translation-es
Obj http://old-releases.ubuntu.com jaunty/universe Translation-es
Obj http://old-releases.ubuntu.com jaunty/multiverse Translation-es
Obj http://old-releases.ubuntu.com jaunty-updates Release.gpg
Ign http://old-releases.ubuntu.com jaunty-updates/main Translation-es
Ign http://old-releases.ubuntu.com jaunty-updates/restricted Translation-es
Obj http://old-releases.ubuntu.com jaunty-security Release.gpg
Ign http://old-releases.ubuntu.com jaunty-security/main Translation-es
Ign http://old-releases.ubuntu.com jaunty-security/restricted Translation-es
Obj http://old-releases.ubuntu.com jaunty Release
Obj http://old-releases.ubuntu.com jaunty-updates Release
Obj http://old-releases.ubuntu.com jaunty-security Release
Obj http://old-releases.ubuntu.com jaunty/main Packages
Obj http://old-releases.ubuntu.com jaunty/restricted Packages
Obj http://old-releases.ubuntu.com jaunty/main Sources
Obj http://old-releases.ubuntu.com jaunty/restricted Sources
Obj http://old-releases.ubuntu.com jaunty/universe Packages
Obj http://old-releases.ubuntu.com jaunty/multiverse Packages
Obj http://old-releases.ubuntu.com jaunty/universe Sources
Obj http://old-releases.ubuntu.com jaunty/multiverse Sources
Obj http://old-releases.ubuntu.com jaunty-updates/main Packages
Obj http://old-releases.ubuntu.com jaunty-updates/restricted Packages
Obj http://old-releases.ubuntu.com jaunty-updates/main Sources
Obj http://old-releases.ubuntu.com jaunty-updates/restricted Sources
Obj http://old-releases.ubuntu.com jaunty-security/main Packages
Obj http://old-releases.ubuntu.com jaunty-security/restricted Packages
Obj http://old-releases.ubuntu.com jaunty-security/main Sources
Obj http://old-releases.ubuntu.com jaunty-security/restricted Sources
Leyendo lista de paquetes... Hecho

Crea un Backup/Live-CD de tu Ubuntu con un solo comando


backup

Hoy os quiero hablar de una aplicación muy interesante para aquellos que quieran guardar un backup completo de su sistema Debian/Ubuntu o crear una distribución/Live CD del mismo.

Remastersys es la aplicación que nos permite hacerlo con un único comando, más sencillo imposible. Vamos a ver como instalarlo y ejecutar los comandos para cada tarea.

Instalar Remastersys

Tenemos que añadir el repositorio correspondiente a nuestras sources, según la versión que tengáis de Ubuntu tenéis que añadir una línea distinta al fichero /etc/apt/sources.list

Gutsy o anterior:

# Remastersys
deb http://www.geekconnection.org/remastersys/repository remastersys/

Hardy:

# Remastersys
deb http://www.geekconnection.org/remastersys/repository ubuntu/

Karmic, Lucid y siguientes:

# Remastersys
deb http://www.geekconnection.org/remastersys/repository karmic/

Una vez hecho esto, instalamos con el siguiente comando:

sudo apt-get update && sudo apt-get install remastersys

Hacer una imagen del sistema (BACKUP)

sudo remastersys backup

Hacer un LIVE CD del sistema

sudo remastersys dist

Si no especificáis lo contrario, las imágenes se crearán en la carpeta /home/remastersys. Ya véis que su uso es bien sencillo, evidentemente se le pueden pasar parámetros para personalizar la ejecución del comando pero esto es lo más básico que se debe conocer para utilizarlo.

Instalar Ubuntu con “lo mínimo”


Logo Ubuntu

Uno de los puntos más flojos de Ubuntu a mi parecer es la falta de opciones y personalización que tiene en el instalador estándar. Automáticamente se instalan una cantidad elevada de programas y servicios que probablemente nunca necesitamos, provocando un uso mayor de recursos y espacio en el sistema.

Si queremos personalizar al máximo los paquetes/aplicaciones a instalar en nuestro sistema, lo mejor es que utilicemos el instalador mínimo de Ubuntu, el CD/ISO se puede descargar desde la web de Ubuntu y tiene un tamaño de únicamente 12MB. La instalación se realiza en red y nos permite personalizar la instalación como queramos.
Otra opción interesante es hacer uso del instalador de Ubuntu Server, que también instala una cantidad menor de paquetes y que igualmente luego podemos personalizar.

En el sitio web de Ubuntu al igual que esparcidas por Internet encontraréis una buena cantidad de guías explicando como instalar a mano aplicaciones, entornos gráficos y demás utilidades.

Cómo configurar tarjetas de red en Debian / Ubuntu


Vamos a ver cómo configurar las interfaces/tarjetas de red en sistemas GNU/Linux Debian (como por ejemplo Ubuntu) a través del fichero interfaces. Normalmente si disponemos de entorno gráfico solemos hacerlo a través de GUI pero nunca viene mal, para el caso de que este fallo o que no lo tengamos saber hacerlo desde los ficheros de configuración.

Lo primero que tenemos que saber es que el fichero de configuración en el que se almacena toda esta información es /etc/network/interfaces. Este fichero se puede dividir en “bloques” a través de los cuales definimos parámetros de configuración a cada una de las interfaces. Un ejemplo básico de configuración en un equipo de escritorio sería el siguiente:

Interfaz de red configurada con DHCP

auto eth0
iface eth0 inet dhcp

Este ejemplo implica una configuración en la que la interfaz de red eth0 está configurada para que arranque automáticamente y a través de DHCP. Lo primero que definimos cuando configuramos una interfaz es si queremos que arranque automáticamente con el sistema, para ello indicamos auto seguido del nombre de la interfaz. Después mediante iface definimos los parámetros de configuración de la interfaz de red, la estructura es la siguiente:

iface <nombre de la interfaz de red> <protocolo> <tipo de asignamiento IP>

Con esto ya tendríamos configurada nuestra tarjeta de red mediante DHCP

Interfaz de red configurada con IP estática

En equipos de escritorio rara vez configuramos nuestra red mediante IP estática, pero en servidores y otros sistemas es el método a utilizar. Una estructura básica de configuración de interfaz de red con IP estática es la siguiente, pasamos a explicarla:

auto eth1
iface eth1 inet static
        address 192.168.0.120
        netmask 255.255.255.0
        network 192.168.0.0
        broadcast 192.168.0.255
        gateway 192.168.0.1
        dns-nameservers 8.8.8.8

Como podéis ver seguimos la misma estructura, en este caso utilizamos la interfaz eth1, la configuramos para que levante con el sistema (auto eth1) y pasamos a definir mediante iface todos los parámetros de red, que en este caso engloban la IP asignada a la interfaz (192.168.0.120), su máscara de red (255.255.255.0), la red en la que se encuentra (192.168.0.0), la IP asignada para Broadcast en la red (192.168.0.255), la puerta de enlace o router (192.168.0.1) y los servidores DNS (8.8.8.8).

Podríamos combinar ambos ejemplos si por ejemplo tuviéramos un equipo con dos tarjetas de red y quisiéramos asignar una mediante DHCP y otra con IP estática:

# Interfaz de red por DHCP
auto eth0
iface eth0 inet dhcp
# Interfaz de red con IP estática
auto eth1
iface eth1 inet static
        address 192.168.0.120
        netmask 255.255.255.0
        network 192.168.0.0
        broadcast 192.168.0.255
        gateway 192.168.0.1
        dns-nameservers 8.8.8.8

Como podréis imaginar, esto es lo más básico, podemos hacer otras cosas como asignar IPs virtuales o alias, añadir rutas estáticas permanentes, etc.

Interfaz de red configurada con IP estática y alias

Para asignar un alias tenemos que definir primero la interfaz principal. Si tomamos como ejemplo la configuración anterior para IP estática, podemos añadir a la interfaz un alias y así poder tener dos IPs distintas a través de una única tarjeta de red:

# Interfaz principal
auto eth1
iface eth1 inet static
        address 192.168.0.120
        netmask 255.255.255.0
        network 192.168.0.0
        broadcast 192.168.0.255
        gateway 192.168.0.1
        dns-nameservers 8.8.8.8
# Alias
auto eth1:1
iface eth1:1 inet static
       address 192.168.0.121
       netmask 255.255.255.0
       network 192.168.0.0
       broadcast 192.168.0.255
       gateway 192.168.0.1
       dns-nameservers 8.8.8.8

Una vez que hayamos finalizado la configuración, podemos reiniciar la red por completo o levantar manualmente la interfaz que queramos con el comando ifup:

Reiniciar toda la red

# /etc/init.d/networking restart

Levantar por separado cada interfaz

# ifup eth0

Averiguar información sobre las tarjetas de red de nuestro sistema

Mediante dmesg podéis averiguar tanto el nombre de interfaz como cuantas tarjetas de red tiene el equipo, su modelo, etc. Aquí tenéis un ejemplo en el que encontramos dos tarjetas de red a las que se les ha asignado los nombres eth0 y eth1:

# dmesg | grep eth

e1000: eth0: e1000_probe: Intel(R) PRO/1000 Network Connection
e1000: eth1: e1000_probe: Intel(R) PRO/1000 Network Connection
e1000: eth0: e1000_watchdog_task: NIC Link is Up 100 Mbps Full Duplex, Flow Control: RX
e1000: eth1: e1000_watchdog_task: NIC Link is Up 100 Mbps Full Duplex, Flow Control: RX
eth0: no IPv6 routers present
eth1: no IPv6 routers present