Instalar flash player en linux de 64 bits

Lamentablemente, Adobe por ahora no tiene un reproductor de flash oficial compilado nativamente en 64 bits. Si tenemos un Linux de 64 bits y queremos ver vídeos flash en nuestro navegador, la solución que recomiendan es instalar el flash player de 32 bis, «envuelto» en un producto llamado ndiswrapper, pero esta solución no es muy buena: aparte de que nos perdemos la ventaja del rendimiento de 64 bits, el ndiswrapper no es demasiado estable.

Sin embargo, existe otra opción: en realidad sí que hay un reproductor de 64 bits, lo que pasa es que aún está en estado beta, pero funciona aceptablemente bien. Se llama Flash Player «square». Para instalarlo, seguir los siguientes pasos. Yo lo he probado en Ubuntu, pero en otras distribuciones será parecido:

1) Cerrar cualquier navegador que tengamos abierto.

2) Eliminar cualquier flash player que haya actualmente. Desinstalar con –purge cualquier paquete llamado flashplugin-installer o similar. Asegurarse de que no existe ningún libflashplayer.so en /usr/lib/mozilla/plugins. Si queremos estar seguros del todo, podemos ejecutar el siguiente comando para ver si hay algún flashplayer en el sistema (y esperar un buen rato mientras busca).

find / -name «*flashplayer*»

3) Ir a Adobe FlashPlayer «Square» y descargar el paquete (ver enlace «Download Flash Player «Square» y luego «Download plug-in for 64-bit Linux (TAR.GZ, 4.1 MB)»).

4) Abrir el paquete, extraer libflashplayer.so y moverlo a /usr/lib/mozilla/plugins.

Luego ya podemos abrir el firefox, por ejemplo, introducir about:plugins en la barra de direcciones y ver si ha detectado un plugin Shockwave Flash versión 10.3. Los otros navegadores, por ejemplo, Chrome, también reconocen el plugin si está instalado en ese mismo sitio.

Arreglar teclado en Linux (guest) al usar VirtualBox 3.1

En la versión 3.1 de VirtualBox OSE parece que hay un problema serio en el que el teclado deja de funcionar tras instalar las Guest Additions. El problema reside en la configuración de las X y parece que se hace notar más en sistemas SLED u OpenSuse pero hay indicios de que puede suceder en otras distribuciones de Linux.

Los pasos son muy sencillos:

  1. Lo primero es arrancar en modo consola para realizar login usando el teclado. Lo más rápido es editar el menú de GRUB en caliente tras iniciar la máquina virtual y seguir las instrucciones de este enlace: http://www.brunolinux.com/05-Configuring_Your_System/Grub_boot_runlevel-3.html cambiando el 3 por un 2 para evitar algún problemilla con distribuciones en donde el nivel de ejecución 3 no está definido.
  2. Tras hacer login como root, vamos a /etc/X11 y copiamos algún fichero de backup de xorg.conf que encontremos. Normalmente habrá algún fichero como xorg.conf.bak. Un simple cp xorg.conf.bak xorg.conf bastará.
  3. A continuación editamos el fichero /etx/X11/xorg.conf y lo modificamos de la siguiente forma.

Añadir Option "CoreKeyboard" en la sección InputDevice de Keyboard[0]

Añadir Option "CorePointer" en la sección InputDevice de Mouse[1]

Añadir Option "SendCoreEvents" en la sección InputDevice de Mouse[2] (puede ser Mouse[3])

Renombrar la opción  Device en la sección InputDevice de  Mouse[2/3] a /dev/vboxguest

Luego ya sólo resta reiniciar las X con algo del estilo /etc/init.d/xdm restart o /etc/init.d/gdm restart y todo debería volver a la normalidad.

Acceder a PostgreSQL con cualquier usuario

Al instalar PostgreSQL en Linux, es posible que tengamos algunos problemas para entrar. ‘Fatal error’ es un mensaje que da poca información. Una de las causas de este mensaje es el que se soluciona en este post.

Resulta que la instalación por defecto de postgres obliga a que el usuario de postgres sea el mismo del sistema. Así que si creamos un usuario ‘user-postgres’ en la base de datos, tenemos que crearlo también en el sistema, y lanzar el comando psql logados como ‘user-postgres’.

Para evitar esta engorrosa configuración, hay que localizar el  fichero pg_hba.conf en la instalación de postgres (estará en un sitio u otro dependiendo de la distribución, por ejemplo: /var/lib/pgsql/data) y en la parte final del fichero, cambiar ‘ident sameuser’ por ‘trust’ en todas las líneas.

Desde este momento ya puedes lanzar postgres con el usuario que quieras, por ejemplo:

foss$ psql -U user-postgres -W

Firefox sin flash en Ubuntu 9.04, solución

Si has llegado hasta aquí, es por que no tienes flash en la nueva distribución de Ubuntu 9.04…Y has dado unas cuantas vueltas instalando la librería de flash de adobe etc, pero sigue sin funcionar.

La nueva distribución traia en los paquetes de origen, librerias alternativas a las propietarias de Adobe para flash. Esto es un paso de confianza importante para el desarrollo Open Source, pero y después de un poquito de chapa no funcionan como es debido.

Después de dar una cuantas vueltas visto documentación, llegué a una solución no sin antes pasar por instalar y desinstalar paquetes de allí para acá.

El problema al parecer lo tenemos en esta librería:

/usr/lib/swfdec-mozilla/libswfdecmozilla.so

A la que apuntan, como enlace simbolico desde algunas de estas aplicaciones.

/usr/lib/firefox/plugins/flashplugin-alternative.so
/usr/lib/iceape/plugins/flashplugin-alternative.so
/usr/lib/iceweasel/plugins/flashplugin-alternative.so
/usr/lib/midbrowser/plugins/flashplugin-alternative.so
/usr/lib/mozilla/plugins/flashplugin-alternative.so
/usr/lib/xulrunner/plugins/flashplugin-alternative.so
/usr/lib/xulrunner-addons/plugins/flashplugin-alternative.so

(puede ser que no tengas todas las aplicaciones)

La solución final en principio es sencilla, pero puedes desquiciarte un poco si no consigues saber que está pasando si ya has limpiado varias veces el directorio /home/mi_home/.mozilla/plugins y /usr/lib/mozilla/plugins cuando todavía ves que sigue sin funcionar.

Bien, se trata de desinstalar el paquete libswfdec-x.x-x que supuestamente tengamos instalado en nuestro sistema, y que vendrá por defecto. Una buena forma de buscarlo y hacer esto es a través del Gestor de paquetes, rapido y comodo.

Una vez que tengamos desinstalado el paquete, vamos a la página de adobe, y nos bajamos el ultimo plugin de flash o desde este enlace http://get.adobe.com/es/flashplayer/ (alguno esto ya lo habrá hecho y lo tendrá en local) nos bajamos el .tar.gz NO el .deb… Descomprimimos el paquete de adobe con el plugin, y copiamos con «cp» la librería «libflashplayer.so» de dentro de la carpeta en los directorios /home/mi_home/.mozilla/plugins y /usr/lib/mozilla/plugins

Reiniciamos Firefox, y ya funcionaría 😉

Conversión de ficheros «unoconv.py» lenta (seis minutos)

El proceso de conversión entre formatos OpenOffice.org y MSOffice no debe sobrepasar algunos segundos, así que en el caso de emplear seis minutos existe algún tipo de problema.

La solución que hemos encontrado pasa por desinstalar del sistema el paquete el «displayconfig-gtk». Al parecer debe tener conflictos con el emulador de las X’s utilizado para OpenOffice.org.

Desinstalándolo, el proceso unoconv.py termina de manera correcta, en los mismos segundos que debía utilizar.

Una hipótesis del problema, podría ser la explicada a continuación.

El proceso de transformación «unoconv.py», hace uso del bridge UNO que OpenOffice.org tiene para python. Por defecto, el proceso principal  de OpenOffice, «soffice.bin», requiere que esté cargado un entorno gráfico en la máquina. De ahí la necesidad de emular las X’s con un servidor «falso» mediante el paquete «Xvfb».

Por otro lado, la finalidad del paquete en conflicto, «DisplayConfigGTK», es la de permitir cambiar la configuración de la tarjeta gráfica y la pantalla. Digamos que si se utiliza el paquete emulador de entorno gráfico, no puede, o no debería tener detrás un servidor de X real. Del mismo modo, si se dispone de un entorno gráfico real, no hay necesidad de utilizar el emulador.

Internamente podría estar dándose un posible conflicto al intentar fijar una determinada resolución (DisplayConfigGTK), para una pantalla ficticia montada por «xvfs», que también la haya definido.

Crear bridge para las máquinas virtuales de virtualbox

Primero procedemos a instalar los siguientes paquetes :

sudo apt-get install vtun bridge-utils uml-utilities

Para crear el bridge basta con añadir lo siguiente en /etc/network/interfaces

auto br0
iface br0 inet dhcp
bridge_ports eth0
bridge_fd 9
bridge_hello 2
bridge_maxage 12
bridge_stp off

Despues, se reinicia la red con

sudo /etc/init.d/networking restart

Ahora se crea un dispositivo para virtualbox con:

VBoxAddIF vbox0 eraunatonteria br0

Si además vamos a poner una ip fija en la máquina creada tendremos que ejecutar:

VBoxManage modifyvm nombre_de_la_maquina -hostifdev1 vbox0 (podemos consultar los id’s de las máquinas ejecutando  VBoxManage list vms)

(Poniendo el usuario que vaya a lanzar virtualbox)

Y ya está. Ahora en la VM se establece la red de tipo «Interface anfitrión» y como dispositivo vbox0

NOTA: El usuario que lance virtualbox debe tener acceso a /dev/net/tun (para dar acceso a todo el mundo, sudo chmod 0666 /dev/net/tun)

Reducir la velocidad del micro

Con las altas temperaturas del verano, mi micro estaba empezando a entrar en zonas críticas de temperatura. Para reducir la frecuencia, basta con hacer:

cpufreq-selector -c 0 -f 600
cpufreq-selector -c 1 -f 600

(dos veces, porque es un core duo, y hay que hacerlo por separado para cada núcleo)

Empezar a trabajar con el API Java de OpenOffice.org

Esto si que es una tontería, pero acabo de perder media hora buscandolo, a si que…

Para poder trabajar con el API de Java de OpenOffice.org es necesario utilizar las siguientes bibliotecas: juh.jar, jurt.jar, ridl.jar y unoil.jar.

Tras un buen rato buscandolas por internet, decargando versiones del sdk de OOo, etc, resulta que están incluidas en el OpenOffice.org. No en un paquete de desarrollo, sino en el propio sistema ofimático.

Python: ejecutar un subproceso desde un script

En un script de python necesitamos, ante unas condiciones, lanzar un programa externo (puede estar escrito en python o no, es irrelevante). Queremos monitorizarlo y para ello nos gustaría saber su PID.

Lo habitual es hacer un import os y empezar a jugar con los spawn*, los waitpid, los exec*, los popen* e incluso algún fork(). El resultado suele ser procesos zombie (Z) que no se inician bien y se quedan en defunct. Con bastante tiempo, podríamos tener algún éxito pero lo recomendable eshacer uso del módulo subprocess y, en concreto, de Popen().

Así que para lanzar un proceso independiente y recoger su PID escribid:

PID = subprocess.Popen([cmdline], shell=True).pid

Dependencias de pidgin en ubuntu

Para compilar pidgin en Ubuntu, es necesario instalar los siguientes paquetes:

sudo apt-get install libgtk2.0-dev libxml2-dev gettext libnss-dev libnspr-dev libgtk2.0-dev libxml2-dev gettext libnss-dev libnspr-dev

A continuación, descarga la última versión de pidgin de la web (ahora mismo la versión 2.2.1).

Se trata de un fichero comprimido tar.bz. Descomprimelo, y accede al directorio:

tar -xvjf pidgin-2.2.1.tar.bz2

cd pidgin-2.2.1

Compila e instala

./configure

make

sudo make install