martes, 2 de julio de 2013

Multiarch, multiples arquitecturas en Debian

Desde la llegada de Wheezy, Debian es multi-arquitectura. Es decir, en tu equipo pueden coexistir paquetes creados para diferentes arquitecturas dando así a tu ordenador funcionalidades que no están disponibles para tu arquitectura.

De esta manera, en tu instalación de 64 bits puedes tener paquetes de 32 bits o incluso paquetes de arquitectura arm. Ademas es tremendamente sencillo y coexisten sin mayor problema.


Lo primero que vamos ha hacer, es comprobar que arquitectura esta instalada en nuestro equipo.
  • dpkg --print-architecture
amd64

Y el siguiente paso es comprobar si tenemos instalada alguna arquitectura “ajena”
  • dpkg --print-foreign-architectures


Aquí nos dirá si hay alguna arquitectura instalada que no es la principal de nuestro equipo. Si por ejemplo, queremos añadir a nuestro equipo de 64 bits la i386, podemos hacerlo con
  • dpkg --add-architecture i386

Y ahora al repetir el dpkg --print-foreign-architectures nos indicará que esta instalada la arquitectura i386
  • dpkg --print-foreign-architectures
i386
Evidentemente, igual que podemos añadir arquitecturas, podemos eliminarlas cuando no nos resulten necesarias
  • dpkg --remove-architecture arquitectura-a-eliminar

Y ahora viene la parte “divertida”. Supón que quieres instalar un paquete que solo esta disponible para i386 en tu instalación amd64. Ya has añadido la arquitectura i386. 

Actualizamos repositorios
  • sudo aptitude update

Instalamos
  • sudo aptitude install paquete-que-queremos:i386

Listo. Ya tenemos instalado el paquete, sin necesidad de las ia32-libs ni similares.

Y ademas, aquí estamos hablando constantemente de i386, pero igualmente podemos hablar de armel o de armhf....

14 comentarios:

  1. Hola! recibe un cordial saludo.
    Felicidades por tu blog, lo estoy visitando desde hace un timpo y siempre me interesan los temas que colcoas, ademas de que Debian es la distro que uso desde hace poco mas de 1 año y me ha parecido increíble y por su puesto stable, ahora tengo Wheezy con KDE, y me va todo bien, siempre hay ciertos errores pero buscando todo se puede.

    Gracias por tus ayudas con los temas, me paso hace un tiempo, instale el skype en Debian Wheezy y pues en un sistema de 64 bit hay que agregar la arquitectura de 32 bit y funcionaba bien pero sin sonido, fue luego cuando instale las ia32-libs que funciono.

    quiera esta oportunidad para decirte que el tema de optimizacion de los sistemas operativos y mas Debian siempre se manaje en cada blog que he visto, sabes que hay varias aplicaciones para mejorar el rendimiento, siempre he leido como zram, pero creo que a partir de alguna version del kernel, viene por defecto, no recuerdo cual, lo siento :( ademas hay otras aplicaciones como preload prelink readahead-fedora para optimizar el inicio del sistema y otras cosas, y hace un tiempo encontre un paquete en los repositorios de Debian que se llama microcode para procesadores intel y amd, es un paquete que contiene actualizaciones del micro procesador, la verdad siempre hay cosas nuevas que encontrar y aprender.

    Gracias por la ayuda, saludos

    ResponderEliminar
    Respuestas
    1. Me alegro de que te guste el blog. espero que siga así.
      Voy a ver si me entero de algo de preload y luego si logro aprender algo, lo cuento por aqui.... pero no prometo nada,

      Eliminar
  2. Gracias por tus aportes, siempre me sirven monton

    ResponderEliminar
  3. Hola, muchas gracias por esta explicación. Ya realicé el ejercicio y encuentro que efectivamente, también temgo i86 en una lap dell con amd 64.

    Por favor, podrías ayudarme. Instalé la versión amd 64 de gvSIG. Se sugiere que se instale una jre a 32 bits que es un add-on del propio software. Ya lo hice, pero me sigue indicando que el software opera con amd 64.

    ¿Qué debo hacer?, He reinstalado el software y por defecto es de 64 bits.

    Saludos A. Colliere

    ResponderEliminar
  4. Respuestas
    1. No puedo ayudarte, pero seguro que la gente de desdelinux.net te echa una mano.
      Pasate por sus foros, estan geniales

      Eliminar
  5. No entiendo cómo puede funcionar eso de meter paquetes para ARM en un sistema i386 (por ejemplo). ¿Los sistemas Multiarch llevan algún emulador incorporado para conseguir esto?

    ResponderEliminar
    Respuestas
    1. Se trata de que los paquetes no dependan de la máquina en la que están porque con quien realmente traten sea con el sistema operativo.

      Evidentemente, este, que si trata directamente con la máquina, si tiene que estar escrito específicamente para ella (al menos las partes que tratan con la máquina)

      Eliminar
  6. Excelente y bien explicado.
    Nota: Corrige donde dice:
    Y ahora al repetir el dpkg --print-foreign-architectures nos indicará que esta instalada la arquitectura i386
    dpkg --add-architecture i386 (esta repetido el comando)
    ahí se esperaba: dpkg --print-foreign-architectures

    ResponderEliminar
    Respuestas
    1. Gracias por el aviso, ya esta corregida la errata.

      Eliminar

prekes sodui