My Wheezy amd64 is now multiarch

Sinceramente la cosa mi ha lasciato spiazzato , anche se ne avevo avuto notizia qualche mese fa , non mi ero peroccupato più di tanto.

Del passaggio a multiarch c’era traccia nel precedente aticolo su come installare wine (link) , qui però ero riuscito a trovare una scappatoia, ora che la cosa si è fatta più seria abbiamo fatto un pò di prove e i risultati sono stati soddisfacenti.

09062011929

Dalle operazioni di routine di aggiornamento del sistema ottengo questo output:

I seguenti pacchetti saranno RIMOSSI:
google-earth-stable{a} ia32-libs{a} ia32-libs-dev{a} ia32-libs-gtk{a} libwine-bin-unstable{a} libwine-unstable{a} skype{a}  wine-bin-unstable{a}

faccio una breve ricerca e trovo questo link : http://wiki.debian.org/Multiarch/HOWTO , decido di provare.

Aggiungiamo le repo i386

#dpkg --add-architecture i386

Verifico l’architettura principale

#dpkg --print-architecture
amd64

nel caso si voglia rimuove quanto fatto

#dpkg --remove-architecture i386

di tutto vi è traccia in : /var/lib/dpkg/arch

Cominciamo ad elaborare i dati :

#aptitude update
Installo ia32-libs e ia32-libs-gtk in due fasi
root@khome:/etc/apt# aptitude install ia32-libs
I seguenti pacchetti NUOVI (NEW) saranno installati:
  freeglut3:i386 gcc-4.7-base:i386{a} ia32-libs ia32-libs-i386:i386 
  lesstif2:i386 libacl1:i386 libaio1:i386 libasound2:i386{a} libasyncns0:i386 
  libattr1:i386{a} libaudio2:i386 libaudiofile1:i386 libavahi-client3:i386
 libavahi-common-data:i386{a} libavahi-common3:i386{a} libbsd0:i386
 libc6:i386{a} libc6-i686:i386{a} libcaca0:i386{a} libcap2:i386
 libcomerr2:i386 libcups2:i386 libcurl3:i386 libdb5.1:i386{a}
 libdbus-1-3:i386{a} libdirectfb-1.2-9:i386   libdrm-intel1:i386{a}
 libdrm-nouveau1a:i386{a} libdrm-radeon1:i386{a} libdrm2:i386{a}
 libedit2:i386 libesd0:i386 libexif12:i386 libexpat1:i386{a} 
  libffi5:i386{a} libflac8:i386 libfltk1.1:i386 libfontconfig1:i386{a}
 libfreetype6:i386{a} libgcc1:i386{a} libgcrypt11:i386{a} 
libgd2-xpm:i386{a} libgdbm3:i386 libgl1-mesa-dri:i386{a}
 libgl1-mesa-glx:i386{a} libglapi-mesa:i386{a} libglu1-mesa:i386
 libgnutls26:i386{a} libgpg-error0:i386{a} libgphoto2-2:i386
 libgphoto2-port0:i386{a} libgpm2:i386{a} libgssapi-krb5-2:i386{a}
 libice6:i386{a} libidn11:i386{a} libieee1284-3:i386 libjack-jackd2-0:i386 
  libjbig0:i386 libjpeg62:i386 libjpeg8:i386{a} libjson0:i386{a}
 libk5crypto3:i386{a} libkeyutils1:i386{a} libkrb5-3:i386{a}
 libkrb5support0:i386{a}   liblcms1:i386 libldap-2.4-2:i386{a} 
libltdl7:i386{a} liblzma5:i386{a} liblzo2-2:i386 libmpg123-0:i386
 libncursesw5:i386{a} libnspr4:i386 libnspr4-0d:i386 libnss3:i386
 libnss3-1d:i386 libodbc1:i386 libogg0:i386{a} libopenal1:i386
 libp11-kit0:i386{a} libpam0g:i386 libpciaccess0:i386{a}
 libpng12-0:i386{a} libpopt0:i386 libpulse0:i386{a} librtmp0:i386{a}
 libsamplerate0:i386{a} libsane:i386 libsane-extras:i386{a}
 libsasl2-2:i386{a} libsasl2-modules:i386{a} libsdl1.2debian:i386
 libselinux1:i386 libsigc++-2.0-0c2a:i386 libslang2:i386{a}
 libsm6:i386{a} libsndfile1:i386{a} libsqlite3-0:i386{a}
 libssh2-1:i386{a} libssl1.0.0:i386{a} libstdc++5:i386 libstdc++6:i386{a}
 libsvga1:i386 libsysfs2:i386 libtasn1-3:i386{a} libtdb1:i386
 libtiff4:i386{a} libtinfo5:i386{a} libts-0.0-0:i386{a} libusb-0.1-4:i386{a}
 libuuid1:i386{a} libv4l-0:i386{a} libv4lconvert0:i386{a}
 libvorbis0a:i386{a} libvorbisenc2:i386{a} libvorbisfile3:i386
 libwrap0:i386{a} libx11-6:i386{a} libx11-xcb1:i386{a} libx86-1:i386{a}
 libxau6:i386{a} libxaw7:i386 libxcb-glx0:i386{a} libxcb-render-util0:i386
 libxcb-render0:i386{a} libxcb1:i386{a} libxcomposite1:i386 libxcursor1:i386
 libxdamage1:i386{a} libxdmcp6:i386{a} libxext6:i386{a} libxfixes3:i386{a}
 libxft2:i386{a} libxi6:i386{a} libxinerama1:i386{a} libxml2:i386
 libxmu6:i386{a} libxmuu1:i386 libxp6:i386{a} libxpm4:i386{a} libxrandr2:i386
 libxrender1:i386{a} libxslt1.1:i386 libxss1:i386 libxt6:i386{a}
 libxtst6:i386{a} libxv1:i386 libxxf86vm1:i386{a} odbcinst1debian2:i386 
 xaw3dg:i386 zlib1g:i386{a} 
0 pacchetti aggiornati, 151 installati, 0 da rimuovere e 0 non aggiornati.
È necessario prelevare 59,6 MB di archivi. Dopo l'estrazione, verranno occupati 182 MB.
Continuare? [Y/n/?] Y

e poi

# aptitude install ia32-libs-gtk
I seguenti pacchetti NUOVI (NEW) saranno installati:
  cpp:i386{ab} cpp-4.7:i386{ab} gtk2-engines:i386 gtk2-engines-pixbuf:i386
 ia32-libs-gtk ia32-libs-gtk-i386:i386{a} libart-2.0-2:i386 libatk1.0-0:i386{a} 
  libbonobo2-0:i386{b} libcairo2:i386{a} libcanberra-gtk-module:i386
 libcanberra-gtk0:i386{a} libcanberra0:i386{a} libdatrie1:i386{a}
 libdbus-glib-1-2:i386 libgail-common:i386 libgail18:i386{a} libgconf-2-4:i386
 libgconf2-4:i386 libgdk-pixbuf2.0-0:i386{a} libglade2-0:i386{b} libglib2.0-0:i386{a}
 libgmp10:i386{a} libgnomecanvas2-0:i386{b} libgtk2.0-0:i386{a} libidl0:i386{b}
 libjasper1:i386{a} liblua5.1-0:i386 libmng1:i386 libmpc2:i386{a} libmpfr4:i386{a} 
  liborbit2:i386{b} libpango1.0-0:i386{a} libpcre3:i386{a} libpixman-1-0:i386{a}
 libqt4-dbus:i386 libqt4-network:i386 libqt4-script:i386 libqt4-test:i386 
  libqt4-xml:i386{a} libqtcore4:i386{a} libqtgui4:i386 libthai0:i386{a}
 libwmf0.2-7:i386{b} libxcb-shm0:i386{a} 
I seguenti pacchetti parzialmente installati saranno configurati:
  skype 
0 pacchetti aggiornati, 45 installati, 0 da rimuovere e 0 non aggiornati.
È necessario prelevare 25,8 MB di archivi. Dopo l'estrazione, verranno occupati 67,0 MB.
I seguenti pacchetti hanno dipendenze non soddisfatte:
 libgnomecanvas2-0 : Va in conflitto: libgnomecanvas2-0:i386 ma 2.30.3-1.2 sta per essere installato.
 libgnomecanvas2-0:i386 : Va in conflitto: libgnomecanvas2-0 ma 2.30.3-1.2 è installato.
 libwmf0.2-7 : Va in conflitto: libwmf0.2-7:i386 ma 0.2.8.4-10 sta per essere installato.
 libwmf0.2-7:i386 : Va in conflitto: libwmf0.2-7 ma 0.2.8.4-10 è installato.
 libbonobo2-0 : Va in conflitto: libbonobo2-0:i386 ma 2.24.3-1 sta per essere installato.
 libbonobo2-0:i386 : Dipende: libbonobo2-common:i386 (= 2.24.3-1) che è un pacchetto virtuale.
                     Va in conflitto: libbonobo2-0 ma 2.24.3-1 è installato.
 cpp : Va in conflitto: cpp:i386 ma 4:4.7.2-1 sta per essere installato.
 cpp:i386 : Va in conflitto: cpp ma 4:4.7.2-1 è installato.
 libidl0 : Va in conflitto: libidl0:i386 ma 0.8.14-0.2 sta per essere installato.
 libidl0:i386 : Va in conflitto: libidl0 ma 0.8.14-0.2 è installato.
 libglade2-0 : Va in conflitto: libglade2-0:i386 ma 1:2.6.4-1 sta per essere installato.
 libglade2-0:i386 : Va in conflitto: libglade2-0 ma 1:2.6.4-1 è installato.
 liborbit2 : Va in conflitto: liborbit2:i386 ma 1:2.14.19-0.1 sta per essere installato.
 liborbit2:i386 : Va in conflitto: liborbit2 ma 1:2.14.19-0.1 è installato.
 cpp-4.7 : Va in conflitto: cpp-4.7:i386 ma 4.7.2-4 sta per essere installato.
 cpp-4.7:i386 : Va in conflitto: cpp-4.7 ma 4.7.2-4 è installato.
Le seguenti azioni permetteranno di soddisfare queste dipendenze:

      Mantenere i seguenti pacchetti alla versione attuale:                    
1)      cpp:i386 [Non installato]                                              
2)      cpp-4.7:i386 [Non installato]                                          
3)      libbonobo2-0:i386 [Non installato]                                     
4)      libglade2-0:i386 [Non installato]                                      
5)      libgnomecanvas2-0:i386 [Non installato]                                
6)      libidl0:i386 [Non installato]                                          
7)      liborbit2:i386 [Non installato]                                        
8)      libwmf0.2-7:i386 [Non installato]                                      

      Leave the following dependencies unresolved:                             
9)      ia32-libs-gtk-i386:i386 raccomanda libbonobo2-0:i386 (>= 2.24.3-1)     
10)     ia32-libs-gtk-i386:i386 raccomanda libglade2-0:i386 (>= 1:2.6.4-1)     
11)     ia32-libs-gtk-i386:i386 raccomanda libgnomecanvas2-0:i386 (>= 2.30.1-1)
12)     ia32-libs-gtk-i386:i386 raccomanda libidl0:i386 (>= 0.8.14-0.1)        
13)     ia32-libs-gtk-i386:i386 raccomanda liborbit2:i386 (>= 1:2.14.18-0.1)   
14)     ia32-libs-gtk-i386:i386 raccomanda libwmf0.2-7:i386 (>= 0.2.8.4-6.1+b1)

Accettare questa soluzione? [Y/n/q/?] 
I seguenti pacchetti NUOVI (NEW) saranno installati:
  gtk2-engines:i386 gtk2-engines-pixbuf:i386 ia32-libs-gtk 
ia32-libs-gtk-i386:i386{a} libart-2.0-2:i386 libatk1.0-0:i386{a}
 libcairo2:i386{a}   libcanberra-gtk-module:i386 libcanberra-gtk0:i386{a}
 libcanberra0:i386{a} libdatrie1:i386{a} libdbus-glib-1-2:i386
 libgail-common:i386 libgail18:i386{a} libgconf-2-4:i386 libgconf2-4:i386
 libgdk-pixbuf2.0-0:i386{a} libglib2.0-0:i386{a} libgtk2.0-0:i386{a}
 libjasper1:i386{a} liblua5.1-0:i386 libmng1:i386 libpango1.0-0:i386{a}
 libpcre3:i386{a} libpixman-1-0:i386{a} libqt4-dbus:i386
 libqt4-network:i386 libqt4-script:i386 libqt4-test:i386 libqt4-xml:i386{a} 
  libqtcore4:i386{a} libqtgui4:i386 libthai0:i386{a} libxcb-shm0:i386{a} 
I seguenti pacchetti parzialmente installati saranno configurati:
  skype 
I seguenti pacchetti sono RACCOMANDATI ma NON verranno installati:
  libbonobo2-0:i386 libglade2-0:i386 libgnomecanvas2-0:i386
 libidl0:i386 liborbit2:i386 libwmf0.2-7:i386 
0 pacchetti aggiornati, 34 installati, 0 da rimuovere e 0 non aggiornati.
È necessario prelevare 18,7 MB di archivi. Dopo l'estrazione, verranno occupati 50,2 MB.
Continuare? [Y/n/?]

Ora passo all’installazione dei pacchetti rimossi, ovvero wine , google-earth e skype.

PS lo so che sono programmi di terze parti non indispensabili , ma mi servono !

  • Wine

Come fatto in precedenza installo i tre pacchetti per la versione 1.5 , tutto ok 😉

  • Google-earth

Installo la versione 6.2 amd64 prelevata dal sito di google-earth , nessun problema nell’installazione.

Al primo avvio tutto parte ma la parte dove dovrebbe vedersi il globo resta nera …….. azz.

Dato che i driver Nvidia propietari che uso, durante l’installazione chiedono come procedere sulla compatibilità a 32bit, decido dato il cambiamento di ia32-libs di reinstallare i driver.

Al sucessivo login tutto funziona perfettamente . 😉

  • Skype

Provo a prelevare l’ultima versione per wheezy , la 4.1 multiarch ma l’installazione non riesce a terminare correttamente.

Qualche piccola ricerca e trovo qualcosa sul forum debianizzati (link) , peccato che la soluzione proposta non risolva il mio problema.

Riprendo la vecchia versione 4.0.0.8 che si installa correttamente. 😉

 

Now i’m ready to work in multiarch e sperem ben.

 

Rimuovere multiarch

Per voler tornare a 64 puri , prima di rimuovere da dpkg l’architettura i386 occorre rimuovere tutti i pacchetti i386.

Per rimuovere i386 :

#dpkg --remove-architecture i386

se non va a buon fine l’errore potrebbe essere :

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

cerchiamo i pacchetti a 32 rimasti :

#dpkg -l | grep i386

possiamo rimuoverli con :

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

 

adesso potete pregare sul multiarch sperando che la compatibilità sia mantenuta dai manteiner nella compilazione dei pacchetti.

 

 

6 risposte a “My Wheezy amd64 is now multiarch”

  1. Allora? Come è andata a finire?? Sono curioso di sapere, perché vorrei fare anch’io un tentativo e la mia esperienza non è così smaliziata come la tua. 😉

  2. spero ci ripensino, un sacco di librerie doppie…
    cmq non riesco ad installarlo
    apt-get ia32-libs (and64) non trova la dipendenza ia32-libs-i386 (i386)

  3. Con che sistema ?
    L’output del comando con errore ?

    che minchia mi hai scambiato per un mago ?

    Ora con jessie ci sono problemi a installare ia32-libs anche se il sistema resta multiarch
    l’unico problema si ha con googleearth che senza non vuole andare

    🙂

  4. sono riuscito ad installare google-earth 7.1 scaricato dal sito rimuovendo l’indicazione della dipendenza e apparentemente funziona lo stesso 🙂

    mkdir google
    dpkg-deb -R googleearth*.deb google
    nano google/DEBIAN/control #locate the depends line and remove ‘ia32-libs’
    dpkg-deb -b google googleearth-custom_amd64.deb
    dpkg -i googleearth-custom_amd64.deb

  5. Grazie per l’aggiramento della limitazione , ora tutto funziona senza ia32-libs che :

    This is a transitional package used to migrate the ia32-libs package to true multiarch.
    It can be removed once nothing on the system depends on it.

    Mi pare che non ci siano più problemi, google-earth ora funziona con la modifica che hai indicato
    il resto come skype o wine non necessita di ia32-libs.

Rispondi