Android: instalación de Android-studio en una distro para arquitectura amd64.

Siguiendo con el espíritu del blog añado una pequeña receta que ahorrará algunos quebraderos de cabeza a aquellos que querías usar el nuevo Android-studio (actualmente en la versión 0.2.10) en una máquina de 64-bits.

Aquí podeís encontrar toda la información oficial y los enlaces para descargarlo.

El problema viene con las herramientas android-sdk, ya que están compiladas enlazando dinamicamente con bibliotecas de 32-bits y no hay versión de 64-bits. Esto quiere decir que tiene que tener esas librerías de 32-bits disponibles en tu máquina ó no funcionarán.

Para resolver esto tienes dos opciones:
  1. Utilizar 'multiarch'. (Ya lo mencioné en el blog anteriormente. En concreto como desinstalarlo :-D ) Multiarch te permite instalar paquetes de varias arquitecturas (x86/amd64, lo más problable) en una sóla máquina.
  2. Instalar las versión lib32[xxx] correspondiente.
Si optamos por la segunda opción, la más recomendable en mi opinión, deberemos instalar al menos:
  • lib32z1
  • lib32stdc++6
  • lib32ncurses5
Y con esto ya deberíamos tener todo el android-studio operativo.

Debian multiarch: desactivar una arquitectura.

Os dejo una receta para resolver una situación un poco molesta que presenta de vez en cuando.

A veces, por alguna razón importante, necesitamos instalar en nuestro linux un programa propietario que necesita paquetes de la arquitectura i386. Después de investigar un poco, acabamos modificando la configuración del sistema para que acepte paquetes de la nueva arquitectura y desde ese momento tenemos una mezcla de paquetes compilados para varias arquitecturas, normalmente i386 y amd64. Después de un tiempo, dejamos de necesitar ese programa y queremos hacer limpieza de todos los paquetes que sobran.

El comando para eliminar una arquitectura de los repositorios es:

dpkg --remove-architecture i386

Pero esto nos dará un ...

dpkg: error: cannot remove architecture 'i386' currently in use by the database

... ya que tenemos varios paquetes instalados en el sistema de esas arquitectura.

La solución es fácil. Con ...

dpkg -l | grep i386

... obtenemos la lista de paquetes instalados en el sistema de una arquitectura. Si son pocos, puedes desinstalarlos manualmente pero si son muchos puedes usar este comando para hacerlo de una vez.

apt-get remove --purge `dpkg --get-selections | grep i386 | awk '{print $1}'`

Una vez terminada la desinstalación el comando para eliminar la arquitectura funciona correctamente y listo. Tu sistema vuelve a tener sólo paquetes de la arquitectura adecuada.