# Multi arch et nvidia pour sid/amd64

**URL:** <https://www.debian-fr.org/t/multi-arch-et-nvidia-pour-sid-amd64/54702>\
**Category:** Trucs et Astuces\
**Created:** [Février 21, 2016, 1:11 UTC](https://www.debian-fr.org/t/multi-arch-et-nvidia-pour-sid-amd64/54702 "2016-02-21T13:11:14Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![guyr34](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/g/c68b51/32.png) [@guyr34](https://www.debian-fr.org/u/guyr34)\
**Post date:** [Février 21, 2016, 1:11 UTC](https://www.debian-fr.org/t/multi-arch-et-nvidia-pour-sid-amd64/54702/1 "2016-02-21T13:11:14Z")

</div>

Bonsoir,

Si vous avez franchi le cap du multi arch sur votre debian sid en  
amd64 et que vous utilisez les drivers nvidia proprio, ce qui suit  
peut vous intéresser.

ça fait 2 semaines que je galère avec certains softs (wine, playonlinux,  
google-earth, teamviwer7) sur cette conf.

En effet, il est pas possible actuellement d’installer le paquet  
libxvmc1:i386 et cela bloque l’installation du paquet nécessaire à  
toutes ces appli. qui utilisent le libGL.so.1 32bits nvidia proprio  
contenu dans le paquet libgl1-nvidia-glx:i386

La solution :

1. Installer les paquets deux paquets libxvmc1 en [ralfj.de/upload/debian/](http://www.ralfj.de/upload/debian/)
2. Du coup on peut maintenant installer libgl1-nvidia-glx:i386
3. wine et playonlinux : ils ne posent plus de problèmes.
4. Installer Google earth. Des problèmes de dépendances se posent (conf inachevée).  
Si on prend le paquet priprio google-earth-stable\_current\_amd64.deb chez google,  
et qu’on l’installe, on constate des problèmes de dépendances (avec lsb-core et ia32-libs)  
Aussi j’utilise 2 scripts qui permettent de modifier un paquet binaire.  
Ces scripts proviennent de [grapsus.net/blog/post/Modifier-u … rapidement](http://grapsus.net/blog/post/Modifier-un-paquet-Debian-rapidement)  
Je les ai un peu modifié pour qu’ils prennent en compte le format .lzma  
[deb-dirty-extract.sh](http://deb-dirty-extract.sh) :

```auto
#!/bin/bash
 
if [! -f "$1"] ; then
  echo "No such file"
fi
   
DIR=${1%%.deb}
mkdir "$DIR" && cd "$DIR"
ar x "../$1"
if [-f ./data.tar.gz]; then
 mkdir data && cd data && tar -zxf ../data.tar.gz && cd ..
elif [-f ./data.tar.lzma]; then
 mkdir data && cd data && tar --lzma -xf ../data.tar.lzma && cd ..
fi
mkdir control && cd control && tar -zxf ../control.tar.gz
```

et [deb-dirty-rebuild.sh](http://deb-dirty-rebuild.sh)

[code]#!/bin/bash

if [! -f ‘debian-binary’ -o ! -d ‘control’ -o ! -d ‘data’] ; then  
echo "No extracted deb file here"  
exit 1  
fi

if [-z “$1” -o ! -f “$1”] ; then  
PKG="…/"$(basename $PWD)"-custom.deb"  
else  
PKG="$1"  
fi  
echo “Writing new package to $PKG…”

rm -f “$PKG”

PKGDATA="data.tar.gz"  
if [-f data.tar.gz]; then  
rm -f data.tar.gz && cd data && tar -zcf …/data.tar.gz ./ && cd …  
elif [-f data.tar.lzma]; then  
rm -f data.tar.lzma && cd data && tar -c ./ | lzma \> …/data.tar.lzma && cd …  
PKGDATA="data.tar.lzma"  
fi  
rm -f control.tar.gz && cd control && tar -zcf …/control.tar.gz ./ && cd …  
ar rc “$PKG” debian-binary control.tar.gz $PKGDATA  
[/code]

Il faut rendre ces scripts exécutables et les mettre quelque part dans un chemin  
accessible au PATH.

Puis :

- extraire le paquet avec [deb-dirty-extract.sh](http://deb-dirty-extract.sh) google-earth-stable\_current\_amd64.deb
- cd google-earth-stable\_current\_amd64/
- Supprimer la ligne "Depends: " du fichier control/control
- rebuild le paquet binaire avec [deb-dirty-rebuil.sh](http://deb-dirty-rebuil.sh)
- sudo dpkg -i …/google-earth\*amd64-custom.deb
- enjoy 😉

1. Installer teamviewer 7  
Même manip que pour google-earth, mais cette fois-ci il suffit de supprimer  
le dernier paquet de la ligne "Depends: " qui est “, ia32-libs”

---

<div class="post-metadata">

**Author:** ![poliakov](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/p/97f17d/32.png) [@poliakov](https://www.debian-fr.org/u/poliakov)\
**Post date:** [Février 21, 2016, 1:16 UTC](https://www.debian-fr.org/t/multi-arch-et-nvidia-pour-sid-amd64/54702/2 "2016-02-21T13:16:16Z")

</div>

mon hero ![:041](https://www.debian-fr.org/uploads/default/original/1X/bfe857c9119752799c3eac55ca37a50312c51282.gif "applaudit")

---

<div class="post-metadata">

**Author:** ![guyr34](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/g/c68b51/32.png) [@guyr34](https://www.debian-fr.org/u/guyr34)\
**Post date:** [Février 21, 2016, 1:59 UTC](https://www.debian-fr.org/t/multi-arch-et-nvidia-pour-sid-amd64/54702/3 "2016-02-21T13:59:25Z")

</div>

Je sais pas vous, mais quand j’ai voulu refaire la manip. pour un  
autre PC en wheezy, j’ai pas pu: les fichiers du 1. ne sont plus dispo !

Visiblement, on a pas encore de correction du problème dans wheezy  
(sans doute une allergie des debianeux aux drivers proprio …  
je ne leur en veux pas).

Donc voici la méthode que j’ai utilisée pour franchir cette étape des  
points 1 et 2 (= installer libgl1-nvidia-glx:i386)

a) j’ai ajouté une ligne pour le dépôt sid dans /etc/apt/sources.list :

```auto

```

b) j’ai ajouté une section dans /etc/apt/preferences pour empêcher  
qu’un paquet sid vienne à s’installer par inadvertance :

`$ cat /etc/apt/preferences
Package: *
Pin: release a=unstable
Pin-Priority: 101
`  
c) L’idée c’est maintenant d’upgrader tout ce qui est paquet nvidia avec ce  
qui vient de sid puis d’installer le fameux paquet libgl1-nvidia-glx:i386  
Un truc comme ça devrait faire l’affaire (de mémoire) :

`aptitude update
aptitude -t unstable install nvidia~i libgl1-nvidia-glx:i386`

Attention n’acceptez pas une solution qui vous vire des paquets !  
Normalement cela vous amène à mettre à jour votre version des  
drivers nvidia, vous aurez un petit message d’alerte comme quoi  
le module nvidia utilisé correspond plus au module installé.  
Bref, le mieux est de rebooter lorsque vous voyez que tout s’est  
bien passé. (on évite de rebooter lorsqu’on vient de faire une  
bêtise comme virer les drivers, le noyau, grub ou autre)

---

<div class="post-metadata">

**Author:** ![guyr34](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/g/c68b51/32.png) [@guyr34](https://www.debian-fr.org/u/guyr34)\
**Post date:** [Février 21, 2016, 2:08 UTC](https://www.debian-fr.org/t/multi-arch-et-nvidia-pour-sid-amd64/54702/4 "2016-02-21T14:08:39Z")

</div>

Pour info, avec les mises à jour récentes de wheezy plus  
besoin de toute la gymnastique décrite dans mon message  
précédent .  
L’installation du paquet libgl1-nvidia-glx:i386 ne pose  
plus de problème. On fera donc simplement :

`aptitude install libgl1-nvidia-glx:i386
`  
Donc par rapport au 1er message de ce fil, le point 1  
de la solution n’est plus nécessaire.

Notez également que le paquet ia32-libs s’installe maintenant  
sans difficultés. Ce qui fait que les problèmes de  
dépendances des paquets proprio cités est levée…

Pour ma part, je n’arrive pas à installer le paquet ia32-libs-gtk  
du coup la méthode proposée peut encore présenter un intérêt  
dans certains cas.
