Como adoptar un pingüino

BLOG de AZULcasiNEGRO, donde se cuentan básicamente las peripecias durante la migración a Kubuntu/Linux

Aviso Cookies

Categories

Contador

Eres el visitante

Como este error veo que persiste en la nueva versión de Ubuntu 9.10 Karmic Koala, escribiré como solventarlo.

El problema es que al actualizar repositorios sale el siguiente error:

Err http://softlibre.unizar.es karmic-updates/restricted Translation-es
Error leyendo del servidor - read (104: Conexión reiniciada por el par)
Esto pasa en todos los repositorios de idiomas.

Tenemos 3 soluciones, la puntual, la sencilla y la definitiva.


Solución Puntual

Es añadir la una variable de lenguaje genérico para la ejecución quedando de la siguiente manera.
sudo LANG=C apt-get update


Solución Sencilla

Es cambiar la configuración para que no trate los repositorios de idiomas.
Editamos /etc/apt-cacher/apt-cacher.conf cambiando la siguiente variable
index_files_regexp = (?:Index|Packages\.gz|Packages\.bz2|Release
|Release\.gpg|Sources\.gz|Sources\.bz2|Contents-.+\.gz|pkglist.*\.bz2
|release|release\..*|srclist.*.bz2)$
Hay que ponerlo sin saltos de linea.
Recordad que hace falta reiniciar el servicio.


Solución Definitiva (la mejor)

Es modificando el propio programa para que acepte los repositorios de idiomas sin problemas.
Modificamos /usr/shared/apt-cacher/apt-cacher
diff --git a/apt-cacher b/apt-cacher
index 48741b6..feee576 100755
--- a/apt-cacher
+++ b/apt-cacher
@@ -844,14 +844,20 @@ sub return_file {
$headstring .= 'Connection: '.($concloseflag ? 'Close' :
'Keep-Alive')."\r\n";

# keep only parts interesting for apt
- for(<$in>) {
- if(/^Last-Modified|Content|Accept|ETag|Age/) {
- $headstring.=$_;
- if(/^Content-Length:\ *(\d+)/) {
- $explen=$1;
+ if ($code==200) {
+ for(<$in>) {
+ chomp;
+ if(/^Last-Modified|Content|Accept|ETag|Age/) {
+ $headstring.=$_."\r\n";
+ if(/^Content-Length:\ *(\d+)/) {
+ $explen=$1;
+ }
}
}
}
+ else {
+ $headstring.="Content-Length: 0\r\n";
+ }
close($in);
&release_global_lock;

@@ -861,7 +867,7 @@ sub return_file {
debug_message("Header sent: $headstring");

# Stop after sending the header with errors
- return if HTTP::Status::is_server_error($code);
+ return if HTTP::Status::is_error($code);

}
else {
Para los que no esten acostumbrados a este tipo de notación, decirles que es la típica salida resultado de comparar dos archivos de textos.
@@ indica que el primer cambio es en la linea 844. El signo indica si añadimos o quitamos: + será añadir y - quitar. Intuitivo :) En el segundo bloque repetir lo mismo.

Recordad que hace falta reiniciar el servicio.

FUENTES :
· www.mail-archive.com/debian-bugs-dist
· martin.ind-web.com

Uno de los problemas que nos encontramos a la hora de bajarnos cd's de ubuntu es el ancho de banda tercermundista que tenemos en España. Claro, eso implica que para bajarme una iso de cd con mi ADSL tarda casi 3 horas. Si encima añadimos diferentes versiones (alternate,amd64,kubuntu,etc) pues peor. Para acabarlo de rematar, si queremos testear las diferentes alphas y betas, se vuelve casi imposible. Bueno, para esto último hay solución.

ZSYNC

Zsync tiene la misma filosofia que rsync, pero con la gracia que se genera un archivo en el servidor con los cambios. Para los que no sepan lo que hace rsync decirles que lo que hace es comparar origen con destino y descargar sólo lo necesario. Algo así como una copia incremental (que solo transmite los cambios).

Vamos a poner un ejemplo.
A día de hoy esta la beta de 9.10 de Ubuntu (karmic), pero diariamente salen actualizaciones hasta la versión final.
Lo primero nos descargamos la versión beta, eso si, nos toca bajarla entera.

$ wget http://releases.ubuntu.com/9.10/ubuntu-9.10-beta-desktop-i386.iso

Hasta aquí como siempre. Pero podemos actualizar a la versión de hoy (hay una versión que se actualiza diariamente corrigiendo fallos).
Copiamos la iso para no perder el original.
$ cp ubuntu-9.10-beta-desktop-i386.iso ubuntu-9.10-daily-desktop-i386.iso

Y ahora viene lo interesante: le pedimos que actualice la imagen a día de hoy sobre la copia.
$ zsync -o ubuntu-9.10-daily-desktop-i386.iso 
http://cdimage.ubuntu.com/daily-live/current/karmic-desktop-i386.iso.zsync

Zsync descarga primero el archivo .zsync y seguido lo compara con la iso que le damos de salida.
El resultado es
Read ubuntu-9.10-daily-desktop-i386.iso. Target 57.9% complete.
Quiere decir que el 57.9% no ha cambiado, por tanto no hay que descargarlo. A partir de aquí empieza la descarga.
En este caso concreto no llegó a 1 hora.

Esto también nos servirá para la Release Candidate y la final.
Así que seguramente esta será la versión que tardaré menos en tener.

Mirando jueguecitos de PlayDeb he visto que había cosas muy interesantes: nuevas versiones de juegos o juegos que no se incluyen en Ubuntu.
Así que he configurado mi repositorio tal y como indica la web.
Pero al pedirle que descargue paquetes ... sorpresa !!!

Err http://archive.getdeb.net jaunty-getdeb/games smc 1.8-1~getdeb1                      
302 Found
Sorpresa y desagradable. Como tengo varios ordenadores y una conexión de internet lenta, la red actualiza con un apt-cacher instalado en mi servidor. Ya he comentado como configurarlo en otras ocasiones. Pues ahora es más un problema que una solución.
Veamos la causa del problema. La descarga da error porque en realidad la dirección a la que llama debe redireccionar a otra, y eso es incompatible con apt-cacher. Pero tiene solución.

Solución

El truco está en intentar descargar un paquete directamente de la web y ver la dirección real desde que se realiza. Así que a mí me salió:
http://rsync.labby.co.uk/getdeb//ubuntu/pool/games/s/smc/smc_1.8-1~getdeb1_i386.deb
Jejeje, casi ya estamos.
Ahora nos toca añadir en /etc/apt/source.list
deb http://rsync.labby.co.uk/getdeb/ubuntu/ jaunty-getdeb games

Si lo probais, sería normal que os saliera otra página web como origen. Es lógico porque probablemente reparta la descarga entre varias. Es más, os recomiento que si os sale otra probeis de usarla, para que así no sobrecarguemos al servidor.

Sólo queda actualizar los repositorios. Descargarnos el juego que queramos.
Y a jugar.

Hace años que soy usuario de Kubuntu (KDE). Me gusta mucho, y no uso Ubuntu (Gnome) si no es en cdlive o virtualizado. Simplemente es una cuestión de gustos. Pero también me gusta usar Firefox como navegador y Thunderbird como cliente de correo. La razón es que son multiplataforma y funcionan muy bien. Mejor que muchos otros.
Pero a la hora de integrarse con KDE tienen algunas lagunas. No voy a entrar, al menos que alguien me lo pida, en la parte estética. Pero sí en la de aplicaciones asociadas a archivos. El problema reside en que estos programas se enlazan con los archivos de configuración de Gnome y no con los de KDE para abrir aplicaciones. Estos archivos son ~/.mailcap y ~/.mime.types) para el usuario y /etc/mailcap y /etc/mime.types para el sistema. Los mime.types definen los tipos de archivo, y los mailcap las aplicaciones asociadas a estos. Además, estos programas tienen como parámetros de configuración dichos cuatro archivos.
El objetivo será hacer que Firefox y Thunderbird usen la asociación de archivos de KDE. Para esto nos ayudaremos que la aplicación kde-open, la cual abre el archivo que la pasemos con el programa asociado en KDE.
Bueno, ya tenemos todas las piezas. Sólo hace falta construir el puzle. Y como es normal, hay varias soluciones dependiendo de como querramos nuestro entorno.

OPCION 1: Reconfiguramos Firefox y Thunderbird en 1 usuario
En este caso modificaremos la configuración de estos programas sin afectar ni al resto de programas que usen Gnome ni al resto de usuarios.
Lo primero generamos un archivo ~/.mailcap.enlacekde y añadimos lo siguiente dentro:
application/*; /usr/bin/kde-open '%s'; edit=/usr/bin/kde-open '%s'; test=test -n "$DISPLAY"; description=Enlace con KDE; nametemplate=%s
audio/*; /usr/bin/kde-open '%s'; test=test -n "$DISPLAY"; description=Enlace con KDE; nametemplate=%s
image/*; /usr/bin/kde-open '%s'; test=test -n "$DISPLAY"; description=Enlace con KDE; nametemplate=%s
multipart/*; /usr/bin/kde-open '%s'; test=test -n "$DISPLAY"; description=Enlace con KDE; nametemplate=%s
text/*; /usr/bin/kde-open '%s'; test=test -n "$DISPLAY"; description=Enlace con KDE; nametemplate=%s
video/*; /usr/bin/kde-open '%s'; test=test -n "$DISPLAY"; description=Enlace con KDE; nametemplate=%s
vms/*; /usr/bin/kde-open '%s'; test=test -n "$DISPLAY"; description=Enlace con KDE; nametemplate=%s

Con esto lo que definimos la aplicación kde-open por defecto para cada familia de archivos.
Luego cambiaremos la configuración de Firefox y Thunderbird cambiando:
1. El parámetro helpers.global_mailcap_file lo dejaremos en blanco.
2. El parámetro helpers.private_mailcap_file lo cambiaremos a ~/.mailcap.enlacekde
Para acceder a la pantalla de parámetros en Firefox es escribiendo about:config como dirección.
Antes de realizar los cambios:
Depués de realizar los cambios:
En Thunderbird se llega en el menú Editar / Preferencias / Avanzadas / Editor de configuración.
Recordad que sólo estamos configurando estas dos aplicaciones y en el usuario actual. Esto no afectará a los demás usuarios.

OPCION 2: Usamos sólo KDE
Eso quiere decir que no abriremos sesiones Gnome. Esta opción es más radical, pero nos permite arreglarlo para todas las aplicaciones de todos los usuarios.
Primero de todo movemos, por seguridad, el archivo original.
# mv /etc/mailcap /etc/mailcap.original
Segundo creamos /etc/mailcap con el texto de la opción anterior.
La ventaja de esta opción es que lo hacemos todo de un plumazo. Lo malo es que al realizar actualizaciones es probable que tengamos que volver a realizar este proceso.

Y con esto solucionamos parte de la integración de Firefox y Thunderbird con KDE

Hace ya tiempo que realicé por primera vez este proceso. Pero hasta que no he visto que no da ningún problema no he querido escribirlo.

¿ Para qué migrar ? Básicamente por rendimiento, aunque también hay otro tipo de mejoras. Podéis consultar la lista de mejoras (en castellano). En muy muy resumen, desfragmenta menos y chequea más rápido. Al final se nota que el sistema va más "ligero", que es lo que importa.

Requisitos Linux con particiones Ext3 (o Ext2), grub 0.97 o superior, y kernel 2.6.28 o superior.

El COMO
Arrancamos desde cd. Con un Ubuntu 9.04 nos basta.

Si la partición está en Ext2 la pasamos a Ext3.
# tune2fs -j /dev/<DEV>
Donde <DEV> es la partición que queremos migrar.

Ahora ya empezamos a migrar a Ext4.
# tune2fs -O extents,uninit_bg,dir_index /dev/<DEV>
Con esto añadimos las nuevas opciones de Ext4.
Para que los cambios se apliquen, le decimos que repare la partición con las nuevas opciones, y así aplicará los cambios.
# e2fsck -fpDC0 /dev/<DEV>
Este proceso puede ser algo largo. Acordaros de hacer esto para cada partición que querais migrar.

Con esto ya están migradas las particiones, pero el sistema aún no lo sabe. Sin salir del cdlive vamos a actualizar el sistema. Hay 2 cosillas a hacer: la primera actualizar /etc/fstab y la segunda grub.
Vamos por la primera. Montamos la para partición de /etc (o /). Editamos /etc/fstab y cambiamos el sistema de archivos de ext3 (o ext2) a ext4. Por ejemplo, pasaríamos de tener una linea así
/dev/sda1 / ext3 relatime,errors=remount-ro 0 1
a otra así
/dev/sda1 / ext4 relatime,errors=remount-ro 0 1
Ahora los del Grub. Es un poco más complicado, pero no mucho. Montamos tambien la particion /boot (o /). Modificamos /boot/grub/menu.lst . Toca añadir rootfs=ext4 a la linea
# kopt=root=/dev/sda1 ro
Quedando así
# kopt=root=/dev/sda1 rootfs=ext4 ro
También hay que añadirlo todas las lineas de parámetros de kernel que ya tenemos. Si tenemos
title Ubuntu 9.04, kernel 2.6.28-15-generic
root (hd0,0)
kernel /vmlinuz-2.6.28-15-generic root=/dev/sda1 ro quiet splash
initrd /initrd.img-2.6.28-15-generic
quiet

Sólo tocamos la línea que empieza por kernel quedando así.
title Ubuntu 9.04, kernel 2.6.28-15-generic
root (hd0,0)
kernel /vmlinuz-2.6.28-15-generic root=/dev/sda1 rootfs=ext4 ro quiet splash
initrd /initrd.img-2.6.28-15-generic
quiet


Ahora deberíais poder arrancar normalmente el sistema. La verdad es que lo he hecho en varios ordenadores sin que aparezcan problemas.

Hasta la próxima.

Fuentes:
Ext4 Howto de Kernel.org
Ubuntu Life
Wikipedia

El otro día mi Kubuntu 8.04 (actualizado a 9.04) se quedó parado al arrancar, probando de configurar la red para funcionar con VirtualBox 2.0 (otro día os cuento como). Al final lo arreglé con el arranque de emergencia que llega grub, pero luego pensé: me leería un cdlive las particiones en RAID creadas con mdadm ? La respuesta es que sí se puede.
Os lo explicaré para 2 cdlive típicos, y así uséis el que os guste más.

Con SystemRescueCD

Una vez hemos arrancado desde cd normalmente hacemos esto

$mdadm -E -s
ARRAY /dev/md0 level=raid1 num-devices=2 UUID=41dbbd9c:7c6f2804:535abdc8:a95f46d1
ARRAY /dev/md1 level=raid1 num-devices=2 UUID=84ee1b14:dd87a3fc:14ab804b:41aaf9ef
ARRAY /dev/md2 level=raid1 num-devices=2 UUID=130a6b43:f0b9f1b9:7cf9955e:cc5b6fd4
ARRAY /dev/md3 level=raid1 num-devices=2 UUID=c4b0142d:42d38824:9a8d4b82:5b8ae5bd
ARRAY /dev/md4 level=raid1 num-devices=2 UUID=91d2e72d:0cb000ed:2b751b1c:7d5a06ff
ARRAY /dev/md5 level=raid1 num-devices=2 UUID=bd3ce1f8:14d879b0:3c55423b:e841324e
ARRAY /dev/md6 level=raid0 num-devices=2 UUID=8ce475b8:af5636c2:3c55423b:e841324e

Parece que reconoce todo.
Ahora los cargamos para poder montarlos.
$mdadm --auto-detect

Sólo nos queda montar lo que queramos. Por ejemplo
$mount /dev/md4 /mnt/custom

Y ya podemos acceder a los archivos.

Con Ubuntu 9.04 cdlive (actualizado)

Arrancamos normalmente el entorno gráfico. Con este cd necesitaremos tener conexión a internet, porque el paquete mdadm no va incluido en el cd :(
Una vez que ya tenemos conexión, instalamos el paquete
$sudo apt-get install mdadm

El resto es como con SystemRescueCD. Ahora ya se comportan igual :) (Antes no)

Y ya podremos montar el dispositivo.
Recordad que hay que crear una carpeta en /media/ para poderlo montar.

Espero que haya quedado claro.

Hace unos meses os hablé de un par de plasmoids interesantes. La verdad es que hay muchos, y seguro que varios nos servirán para el día a día. Sólo hace falta dar una vuelta por http://www.kde-look.org para darnos cuenta de la variedad y potencia de muchos.
Pero el problema es que, aunque sabemos compilarlos, es engorroso estar pendiente de si sale una versión nueva por cada uno que tengamos instalado.

Esto lo podemos solucionar con el repositorio de Sam Rog, el cual contiene entre otras cosas un recopilatorio de plasmoids muy interesante. Esto nos evitará tener que compilar (y tener instalados los paquetes necesarios para ello), y también obtendremos las actualizaciones de manera automática.

Para añadir este repositorio debemos seguir los pasos que nos indican:
Seleccionamos nuestra versión en el desplegable, en mi caso (actual)

deb http://ppa.launchpad.net/samrog131/ppa/ubuntu jaunty main
deb-src http://ppa.launchpad.net/samrog131/ppa/ubuntu jaunty main
y la añadimos al archivo /etc/apt/source.list
Luego añadimos la clave PPA. Hay por ahí métodos quizás más sencillos, pero a mí me gusta "seguir la receta". Copiamos este enlace a un archivo de texto (con kate, nano o cualquier otro). Y finalmente añadimos ese archivo de clave. Por ejemplo:
sudo apt-key add archivo_clave.txt

La verdad es que os recomiendo probar unos cuantos. No todos os servirán, pero seguro que os quedais con alguno. Suerte :)

Esta es una de esas cosas que hacen que el usuario nos llame para "tonterias". Que al encender una impresora USB no detecte que está encendida, y que haya que darle manualmente a la opción de Cups es algo que deseamos que en la próxima versión (la 9.04) esté arreglado por defecto.
Mientras tanto, os doy la solución:
1. Renombramos el archivo a sustituir, para poder volver atrás por si falla

$ sudo mv /usr/lib/hal/scripts/hal_lpadmin /usr/lib/hal/scripts/hal_lpadmin_
2. Descargamos la nueva versión
$ wget http://launchpadlibrarian.net/23842424/hal_lpadmin
3. La movemos
$ sudo mv hal_lpadmin /usr/lib/hal/scripts/hal_lpadmin
4. Le damos permisos de ejecución y listo
$ sudo chmod 755 /usr/lib/hal/scripts/hal_lpadmin



Fuente : Ubuntu launchpad

Hace meses que uso VirtualBox (a día de hoy 2.1.4). Haciendo pruebas me di cuenta que existía una versión de rdesktop retocada por la gente de VirtualBox. Al principio no le di importancia, pero al conectarme remotamente mediante rdesktop desde otro pc, comencé a tener problemas con el teclado. Cogía las mayúsculas cuando quería, y alguna otra cosa rara. Entonces me acordé de la utilidad que os he mencionado. Se llama rdesktop-vrdp. Me instalé VirtualBox en la máquina cliente, y funcionó sin problemas. Pero si sólo voy a usar esa utilidad, tener que instalar todo el soft de virtualización es como matar mocas a cañonazos. La idea es poder instalar rdesktop-vrdp sin tener que instalar todo VirtualBox.

Lo primero que vamos a necesitar es el binario. Nos lo descargamos.

$ wget http://download.clientescc.com/kubuntu/rdesktop-vrdp.bin
Lo movemos para que sea accesible para todos los usuarios
$ sudo mv rdesktop-vrdp.bin /usr/bin/rdesktop-vrdp
Le damos permisos de ejecución
$ sudo chmod a+x /usr/bin/rdesktop-vrdp
Nos queda aún el mapeo de teclado. Descargamos el archivo comprimido
$ wget http://download.clientescc.com/kubuntu/rdesktop-vrdp-keymaps.tar
Lo descomprimimos
$ tar xvf rdesktop-vrdp-keymaps.tar
Creamos la carpeta destino
$ sudo mkdir /usr/share/virtualbox/
Movemos la carpeta para que configure correctamente el teclado
$ sudo mv rdesktop-vrdp-keymaps/ /usr/share/virtualbox/


Os pongo también un ejemplo de conexión por si a alguien le sirve de inspiración.
$ rdesktop-vrdp -g1024x768 -zCN -a16 -xb IP_SERVIDO_RDP:PUERTO 

Comentamos las opciones:
 -g1024x768  Ancho y alto de la pantalla
-z Habilita compresión. Muy importante si la hacemos via internet.
-C Mapa de colores propio
-N Sincroniza el bloque numérico
-a16 Calidad de color. Cuanta menos calidad, más rapido irá pero peor se verá.
-xb Optimización para ancho de banda por internet.
Otras opciones interesantes:
 -T Ejemplo  Cambia el texto de la ventana a Ejemplo. Util para distinguir ventanas cuando abrimos varias.
-D Elimina el marco y la cabecera de la ventana. Util cuando queremos asignar todo el tamaño del escritorio
-r disk:export=/home/USUARIO/
Enlaza la carpeta de USUARIO a la carpeta \\tsclient\export\ del servidor. Sólo funciona en Terminal Server.
-r printer:Nombre_Impresora
Enlaza la impresora local Nombre_Impresora como predeterminada en la sesión. Se puedes poner más, y sólo funciona en Terminal Server.
-u USUARIO Asigna USUARIO como usuario predeterminado
-p CONTRASEÑA
Asigna CONTRASEÑA como predeterminada. Si usamos a la vez -u y -p nos abrirá automaticamente la sesión.

Como la gente de VirtualBox son gente seria, y sabiendo que rdesktop es GNU/GLP, nos ponen el código fuente retocado por si lo necesitamos. Así da gusto.

Caps Lock
En el caso particular del bloqueo de mayúsculas, podemos modificar el archivo common. Se trata de comentar la linea
Caps_Lock 0x0 inhibit
que esta al final del archivo.
Para rdesktop la ruta es /usr/share/rdesktop/keymaps/common
Y para rdesktop-vrdp la ruta es /usr/share/virtualbox/rdesktop-vrdp-keymaps/common

Ayer, al actualizar mi sistema (Kubuntu 8.10 64bits con KDE 4.1), me llevé la agridulce sorpresa de que el sistema, practicamente sin consultar, me actualizaba a KDE 4.2. En casa ya lo tenía instalado, y aunque me parece más estable que la 4.1, estaba esperando a la siguiente versión de Kubuntu para dar el salto.

Hay un monton de webs y blogs que hablan del cambio de las bibliotecas de 4.1 a 4.2, que al parecer son importantes. Probablemente KDE 4.1 pase a la historia como una versión beta que no debería haber pasado de ahí. Pero a mí me gusta escribir de lo que no escriben otros, sobretodo de las soluciones a problemas que no se encuentran fácilmente.

Pues vamos a comentar un fallo en un paquete nuevo Akonadi. Gran parte de la solución ya está documentado, pero aun así no acababa de funcionar correctamente.

Lo primero es parar apparmor, que es el "responsable" de que el MySQL asociado a Akonadi no arranque.

# /etc/init.d/apparmor stop
Iniciamos Akonadi y miramos si funciona correctamente.
$ akonadictl start
$ akonadictl status
Si nos contesta lo siguiente, es que realmente AppArmor estaba lo bloqueando.
Akonadi Control: running
Akonadi Server: running
Ya hemos verificado el origen del problema, ahora ejecutamos la solución.
# aa-complain mysqld
# aa-complain mysqld-akonadi
# /etc/init.d/apparmor reload
Ahora podemos reiniciar el sistema para ver que el error ha desaparecido.

Ciencia y paciencia.

Primero vamos a ver para que nos puede servir.
Supongamos que tenemos una maquina virtual que contiene un determinado servicio o programa que queremos que se arranque y pare cuando se arraque y pare nuestro ubuntu/kubuntu. También sería interesante para una mv que tubiera algún programa que accedemos remotamente.
Un caso típico sería un Windows con alguna vieja y/o pegajosa aplicación de gestión, la cual es necesaria pero no se quiere o puede migrar a linux.

Pues para eso os propongo el siquiente script:

#!/bin/sh                                                                   
### BEGIN INIT INFO
# Provides: VB - ServidorXP
# Required-Start: $local_fs $remote_fs vboxdrv vboxnet
# Required-Stop: $local_fs $remote_fs vboxdrv vboxnet
# Default-Start: 2 3 4 5
# Default-Stop: S 0 1 6
# Short-Description: Handles the ServidorXP virtual machine
# Description: This file should be used to construct scripts to be
# placed in /etc/init.d.
### END INIT INFO

# AZULcasiNEGRO - x22bcn@gmail.com

#
# CHANGE THESE AS NEEDED
#
# Name given to the virtual machine
VM_NAME="ServidorXP"

# Name of this file, excluding /etc/init.d/
THIS_FILE=vb-servidorxp

# Username to run as
RUNAS_USERNAME=usuario

#
# END CHANGE THESE AS NEEDED
#
PATH=/usr/sbin:/usr/bin:/sbin:/bin
DESC="VirtualBox - ${VM_NAME}"
#DAEMON=/usr/bin/VBoxHeadless
DAEMON=/usr/bin/VBoxManage
DAEMON_ARGS="-startvm \"${VM_NAME}\""
PIDFILE=/var/run/$THIS_FILE.pid
SCRIPTNAME=/etc/init.d/$THIS_FILE

# Exit if the package is not installed
[ -x "$DAEMON" ] || exit 0

# Define LSB log_* functions.
# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
. /lib/lsb/init-functions

is_running()
{
ISRUNNING=`su $RUNAS_USERNAME -c "$DAEMON showvminfo $VM_NAME | grep running"`
# echo ">"$ISRUNNING"<"
if [ -n "$ISRUNNING" ]; then
return 1
else
return 0
fi
}

#
# Function that starts the daemon/service
#
do_start()
{
# Return
# 0 if daemon has been started
# 1 if daemon was already running
# 2 if daemon could not be started
is_running
if [ $? -eq 1 ]; then return 1; fi

su $RUNAS_USERNAME -c "$DAEMON startvm ${VM_NAME} -type vrdp " &
sleep 5

is_running
if [ $? -eq 0 ]; then return 2; fi
return 0
}

#
# Function that stops the daemon/service
#
do_stop()
{
# Return
# 0 if daemon has been stopped
# 1 if daemon was already stopped
# 2 if daemon could not be stopped
is_running
if [ $? -eq 0 ]; then return 1; fi

su $RUNAS_USERNAME -c "$DAEMON controlvm ${VM_NAME} savestate "

is_running
if [ $? -eq 1 ]; then return 2; fi
return 0
}

case "$1" in
start)
log_daemon_msg "Starting $DESC" "$THIS_FILE"
do_start
case "$?" in
0) log_end_msg 0 ;;
1) log_end_msg 1; log_failure_msg "$DESC in running." ;;
2) log_end_msg 1 ;;
esac
;;
stop)
log_daemon_msg "Stopping $DESC" "$THIS_FILE"
do_stop
case "$?" in
0) log_end_msg 0 ;;
1) log_end_msg 1; log_failure_msg "$DESC in stoped." ;;
2) log_end_msg 1 ;;
esac
;;
status)
is_running
case "$?" in
0) log_success_msg "$DESC is stoped." ;;
1) log_success_msg "$DESC is running." ;;
esac
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|status}" >&2
exit 3
;;
esac
:

¿ Como lo usamos ?
Creamos un archivo con el contenido de este script en /etc/init.d
Le ponemos un nombre archivo, en este caso vb-servidorxp. Nos acordamos de él ;)
Configuramos esta parte del script
#
# CHANGE THESE AS NEEDED
#
# Name given to the virtual machine
VM_NAME="ServidorXP"

# Name of this file, excluding /etc/init.d/
THIS_FILE=vb-servidorxp

# Username to run as
RUNAS_USERNAME=usuario

#
# END CHANGE THESE AS NEEDED
#
Donde VM_NAME es el nombre de la máquina virtual. THIS_FILE el nombre del script, y RUNAS_USERNAME el usuario con el que se debe ejecutar la máquina virtual.

Le cambiamos el usuario y grupo
# chown root:root /etc/init.d/vb-serverxp

Ahora le damos permisos de ejecución al script
# chmod ug+x /etc/init.d/vb-serverxp

Sólo nos queda que se inicie y cierre con el ordenador. Aquí debemos tener una cosa en cuenta. Como dependemos de los servicios de VirtualBox (vboxdrv y vboxnet) para que funcione, debemos configurarlo para que se encienda despues y se apague antes. Si no lo hacemos, o no arrancará o puede dejar colgado el sistema al cerrar. En principio, esto ya lo conseguimos con los parámetros Required-Start y Required-Stop. El sistema ya se encargará de vigilar que se encienda despues y se apague antes que estos servicios. Entonces asignaremos a nuestro script para que se ejecute automáticamente de la siguiente manera:
# update-rc.d vb-serverxp defaults

Pues ya tenemos nuestro pc complementario dentro de nuestro pc con linux, que arranca y apaga automáticamente.

Actualización: He añadido la restricción de servicios en Required-Start y Required-Stop porque es mucho más efectivo que la numeración de arranque.
Para eliminar el arranque automático actual haremos:
# update-rc.d -f vb-serverxp remove
Y luego volveremos a asignarlo con defaults.

Actualización (II):
Este primer apaño no acaba de funcionar del todo. Al apagar si que funciona, pero al arrancar la vm no se inicia porque aún no están cargados los modulos de VirtualBox en el kernel. Creo que el error es debido a lo hace de forma asíncrona. Total, como lo queremos es que funcione, le cambiamos la configuración al script y listo.
Para eliminar el arranque automático actual haremos:
# update-rc.d -f vb-serverxp remove
Y luego volveremos a asignarlo con defaults, y 99 al arrancar (al final de todo) y 20 al apagar (tal y como estaba).
# update-rc.d vb-serverxp defaults 99 20

Esto es una de esas cosillas que con el tiempo dejan de funcionar. Que en realidad son una tontería ... vital !!!
Para conectarme a estaciones Windows sin instalar nada uso SingleClick. La verdad es que va bien. Hace lo básico, se conecta inversamente mediante vnc, y colgado en una web es fácil de ejecutar para los usuarios corrientes. No hace falta abrir ningún puerto en el cliente, sólo en nuestra red.
Pero resulta que al actualizar la versión a intrepid, ha dejado de funcionar. El motivo es que se ha actualizado a una nueva versión de vnc, la 4, y la anterior la ha desestimado. Y con esta nueva versión SingleClick no funciona.
Todo esto se arreglaría instalando el paquete xvncviewer. Pero este ya no existe en esta versión, aunque sí en alguna anterior. Así que buscamos en la web de paquetes de ubuntu seleccionando cualquier versión, porque hemos quedado que en las últimas no está.
El resultado es el siguiente:

Package xvncviewer

  • dapper (x11): Virtual network computing client software for X
    3.3.7-8ubuntu2: amd64 i386 powerpc
  • feisty (x11): Virtual network computing client software for X
    3.3.7-13ubuntu2: amd64 i386 powerpc
  • gutsy (x11): Virtual network computing client software for X [universe]
    3.3.7-14ubuntu1: amd64 i386 powerpc
Estamos deacuerdo que la versión más reciente de las siguientes es Gutsy, aunque creo que funcionaría cualquiera de las demás.
Nos vamos a Gutsy y nos aparece los siguientes paquetes disponibles:

Download xvncviewer

Download for all available architectures
Architecture Package Size Installed Size Files
amd64 64.0 kB220 kB [list of files]
i386 59.2 kB208 kB [list of files]
powerpc 67.8 kB224 kB [list of files]

Escogemos el que corresponte a nuestra arquitectura y lo descargamos.
Instalamos el paquete. En un entorno gráfico con clicar encima ya se nos abre un instalador. Sino, podemos instalarlo desde consola con:
sudo dpkg -i nombre_paquete_deb
Ahora sólo tenemos que poner en una consola
/usr/bin/xrealvncviewer -listen
Y a funcionar otra vez.

Haciendo mi repaso diario de blogs, he encontrado un truco muy interesante.
Firefox 3 usa bases de datos sqlite para almacenar su información. Pues de tanto entrar, salir, guardar y borrar al final las bases de datos van "engordando" en espacio que no se usa.
Para arreglar esto podemos compactar las bases de datos, osea quitar el espacio que no se usa.
Para ello debemos instalar

$ sudo apt-get install sqlite3

Cerramos Firefox, y pasamos es siguiente script
$ for f in ~/.mozilla/firefox/*/*.sqlite; do sqlite3 $f 'VACUUM;'; done

En mi caso conseguí reducir el espacio de los archivos más grandes de un 25%-30%.
Al arrancar otra vez Firefox la verdad es que se notaba más ágil.
A ver si vosotros notais lo mismo.

Fuente: UbuntuLife

Hace un par de días que actualicé mi máquina de trabajo a Intrepid. Sí, he tardado. Pero es que es la del trabajo, y hasta que las de casa han demostrado ser estable con KDE4 no quería arriesgarme.
Bueno, continuo. Esta mañana al arrancar, he verificado que todo funcionara sin problemas. Hasta aquí todo correcto. Pero usándolo me doy cuenta que faltan un par de cosillas: Información climatológica y una barra de lanzamiendo rápido con múltiples filas. Buscando en KDE-Look veo las dos soluciones, que ahora os contaré como instalar.

Antes de empezar con los plasmoids (se llaman así estos añadidos de KDE4), tenemos que instalar algunas cosillas para poder generar los binarios.

sudo aptitude install cmake build-essential kdelibs5-dev libplasma-dev kdebase-workspace-dev
gettext
En el paso anterior es donde está el "truco". Luego os cuento el porqué.

Instalando Yet Another Weather Plasmoid


Descargamos de la web de yaWP el código fuente. Y seguimos los pasos que describe la instalación general.
tar -xvf nombre_paquete.tar.gz
cd nombre_carpeta_donde_se_descomprimió
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix` ..
make
sudo make install

Con esto ya os tendría que salir en la lista de componentes instalables. Después de configurarlo, el resultado es este :

Chulo, no ? Hay otro en los repositorios, pero sólo da la temperatura y gracias.
Aunque parece una chorrada, a las personas que he instalado Kubuntu les ha parecido interesante tener esta información. Y migrar de KDE 3.5 a KDE 4 sin poder igualar o mejorar este detalle es la diferencia entre el éxito y el fracaso para un usuario de a pie.

Instalando QuickLauncher Applet


El proceso es similar al anterior.
tar -xvf nombre_paquete.tar.gz
cd nombre_carpeta_donde_se_descomprimió
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix` ../src
make
sudo make install

Fijaros que cuando llamamos a cmake la carpeta que indicamos es ../src y no ..
Y el resultado es este:

Comentaros que podeis añadir nuevas aplicaciones arrastrando desde el menú, o buscando en /usr/share/applications y sus carpetas.

Como arreglar un fallo de compilación


Resulta que lo que os he descrito como paso previo no te lo cuentan. Y es que pueden salir errores de este tipo.
$ make
[ 25%] Generating ui_quicklauncherAdd.h
Generating quicklauncher.moc
[ 25%] Generating ui_quicklauncherConfig.h
[ 25%] Building CXX object CMakeFiles/plasma_applet_quicklauncher.dir/plasma_applet_quicklauncher_automoc.o
[ 25%] Building CXX object CMakeFiles/plasma_applet_quicklauncher.dir/quicklauncher.o
/home/users/xavier/Plasmoids/plasma-applet-quicklauncher-0.5/src/quicklauncher.cpp:26:35:
error: kworkspace/kworkspace.h: No existe el fichero ó directorio
make[2]: *** [CMakeFiles/plasma_applet_quicklauncher.dir/quicklauncher.o] Error 1
make[1]: *** [CMakeFiles/plasma_applet_quicklauncher.dir/all] Error 2
make: *** [all] Error 2

¿ Qué ha pasado ? Pues que no encuentra kworkspace.h
¿ De donde lo sacamos ? Bueno, lo primero es localizar el paquete que lo incluye. Para eso necesitamos instalar apt-file.
Una vez lo tenemos instalado, actualizamos el listado interno de búsqueda mediante
$ sudo apt-file update

No os preocupeis si tarda un ratito. Es normal. Lo que hace es crear un listado con todos los archivos de todos los paquetes(.deb) de todos los repositorios que tenemos configurados.
Ahora ya podemos pedirle que busque dónde está.
$ apt-file find kworkspace.h
kdebase-workspace-dev: /usr/include/kworkspace/kworkspace.h

Nos contesta que esta kdebase-workspace-dev. Pues lo instalamos y veremos que ya no da este error.

El otro día, trasteando con VirtualBox 2.1, vi la opción que poder gestionar discos duros SATA.
Total que me animé a configurar mi xp de la siguiente forma

De esta manera lo que conseguimos es que Windows XP no arranque. Y no es que el VirtualBox falle, no. El problema es que Windows no reconoce el SATA. Es decir, no tiene controladores para SATA.
La solución es sencilla, instalar los controladores. Pero aun queda una cuestión a resolver. ¿ Exactamente qué controlador ? Pues este de Intel es el que funciona correctamente.

Osea, configuramos nuestro disco duro como IDE, pero con el controlador SATA de la máquina virtual activado. Descargamos e instalamos el controlador de Windows de Intel. Y volvemos a configurar el disco como SATA.

En teoría, configurado como un disco SATA debería es algo más rápido. Si alguien hace pruebas que me lo diga, a ver que sale.

Fuente : Foro de VirtualBox

Se realiza mediante la sentencia

sudo update-alternatives --config editor

Sale una lista, y escogeis el que más os guste.
Hay 4 alternativas que proveen `editor'.

Selección Alternativa
-----------------------------------------------
1 /usr/bin/vim.tiny
2 /bin/ed
+ 3 /bin/nano
* 4 /usr/bin/mcedit-debian

Pulse para mantener el valor por omisión [*] o pulse un número de selección:

Así de sencillo.

Fuente : muylinux - Cómo cambiar el editor de textos

Cuenta atrás

Nuestros derechos

Recent Posts

Recent Comments