À condition que votre matériel prenne en charge 64 bits, ce qui:
Mode (s) opérationnel (s) du processeur: 32 bits, 64 bits
et le package a été préparé pour utiliser multiarch, ce qui est également vrai:
dpkg -I viber.deb
new debian package, version 2.0. <--- here
size 57046082 bytes: control archive=8024 bytes.
0 bytes, 0 lines 0
1210 bytes, 29 lines control
9475 bytes, 33 lines * copyright
7404 bytes, 85 lines md5sums
39 bytes, 2 lines * postinst #!/bin/bash
800 bytes, 35 lines * preinst #!/bin/bash
500 bytes, 24 lines * prerm #!/bin/bash
Package: viber
Version: 4.2.2.6
Section: non-free/net
Priority: extra
Architecture: amd64 <---- and here
vous pouvez simplement installer les bibliothèques et les binaires 64 bits nécessaires qui sont la dépendance du package (qui n'en est pas, plus à ce sujet plus tard) dont vous avez besoin pour exécuter l'application, avec un impact virtuel sur les performances nulles. Dans mon cas, je viens d'installer le package très bien:
$ sudo dpkg --add-architecture amd64
## adding 64-bits architecture package, in my system I didn't need to
## but it's likely you have
$ sudo apt-get update # this downloads the package list for amd64 arch
$ sudo dpkg -i viber.deb
Selecting previously unselected package viber.
(Reading database ... 268703 files and directories currently installed.)
Preparing to unpack viber.deb ...
Unpacking viber (4.2.2.6) ...
Setting up viber (4.2.2.6) ...
Processing triggers for hicolor-icon-theme (0.13-1) ...
Processing triggers for gnome-menus (3.13.3-1) ...
Processing triggers for mime-support (3.56) ...
Processing triggers for desktop-file-utils (0.22-1) ...
Et puis a commencé à rencontrer des problèmes ...
Les gestionnaires de packages ont décidé de ne répertorier aucune dépendance pour leur package,
Installed-Size: 141336
Conflicts: Viber (<< 4.2.2.6)
Replaces: Viber (<< 4.2.2.6)
Maintainer: Viber Media Inc <support@viber.com>
dont ils ont réellement besoin:
ldd /opt/viber/Viber | grep 'not found'
libXcomposite.so.1 => not found
libxslt.so.1 => not found
libxml2.so.2 => not found
libgstreamer-0.10.so.0 => not found
libgstapp-0.10.so.0 => not found
libgstbase-0.10.so.0 => not found
libgstinterfaces-0.10.so.0 => not found
libgstpbutils-0.10.so.0 => not found
libgstvideo-0.10.so.0 => not found
libsqlite3.so.0 => not found
vous devez donc trouver et installer les bibliothèques manquantes manuellement! C'est facile si vous connaissez les bons outils. apt-file
vient à portée de main ici, également http://packages.ubuntu.com fonctionnalité "Rechercher le contenu des packages" est également très bien. Mais je suis allé de l'avant et les ai recherchés:
Ces fichiers sont déjà installés sur mon système, il vous suffit de copier le nom du package, celui avant les deux points qui se termine par amd64
. Vous devez copier les noms des packages tels qu'ils sont:
dpkg -S $(ldd /opt/viber/Viber | awk '{print $3}' | grep -vP 'not|viber')
libc6:amd64: /lib/x86_64-linux-gnu/libpthread.so.0
libc6:amd64: /lib/x86_64-linux-gnu/libdl.so.2
libc6:amd64: /lib/x86_64-linux-gnu/librt.so.1
libstdc++6:amd64: /usr/lib/x86_64-linux-gnu/libstdc++.so.6
libc6:amd64: /lib/x86_64-linux-gnu/libm.so.6
libgcc1:amd64: /lib/x86_64-linux-gnu/libgcc_s.so.1
libc6:amd64: /lib/x86_64-linux-gnu/libc.so.6
libx11-6:amd64: /usr/lib/x86_64-linux-gnu/libX11.so.6
libxext6:amd64: /usr/lib/x86_64-linux-gnu/libXext.so.6
zlib1g:amd64: /lib/x86_64-linux-gnu/libz.so.1
libgl1-mesa-glx:amd64: /usr/lib/x86_64-linux-gnu/libGL.so.1
libxrender1:amd64: /usr/lib/x86_64-linux-gnu/libXrender.so.1
libglib2.0-0:amd64: /lib/x86_64-linux-gnu/libglib-2.0.so.0
libglib2.0-0:amd64: /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
libxcb1:amd64: /usr/lib/x86_64-linux-gnu/libxcb.so.1
libglapi-mesa:amd64: /usr/lib/x86_64-linux-gnu/libglapi.so.0
libxdamage1:amd64: /usr/lib/x86_64-linux-gnu/libXdamage.so.1
libxfixes3:amd64: /usr/lib/x86_64-linux-gnu/libXfixes.so.3
libx11-xcb1:amd64: /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1
libxcb-glx0:amd64: /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0
libxcb-dri2-0:amd64: /usr/lib/x86_64-linux-gnu/libxcb-dri2.so.0
libxcb-dri3-0:amd64: /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0
libxcb-present0:amd64: /usr/lib/x86_64-linux-gnu/libxcb-present.so.0
libxcb-sync1:amd64: /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1
libxshmfence1:amd64: /usr/lib/x86_64-linux-gnu/libxshmfence.so.1
libxxf86vm1:amd64: /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1
libdrm2:amd64: /usr/lib/x86_64-linux-gnu/libdrm.so.2
libpcre3:amd64: /lib/x86_64-linux-gnu/libpcre.so.3
libffi6:amd64: /usr/lib/x86_64-linux-gnu/libffi.so.6
libxau6:amd64: /usr/lib/x86_64-linux-gnu/libXau.so.6
libxdmcp6:amd64: /usr/lib/x86_64-linux-gnu/libXdmcp.so.6
Celles-ci, je ne les avais pas installées, que j'ai obtenues en utilisant ldd /opt/viber/Viber | grep 'not found' | awk '{printf "%s$\n", $1}' | apt-file search -x -a amd64 -f - | sed 's/\:/:amd64:/'
:
$ ldd /opt/viber/Viber | grep 'not found' | awk '{printf "%s$\n", $1}' | apt-file search -x -a amd64 -f - | sed 's/\:/:amd64:/'
libgstreamer-plugins-base0.10-0:amd64: /usr/lib/x86_64-linux-gnu/libgstapp-0.10.so.0
libgstreamer-plugins-base0.10-0:amd64: /usr/lib/x86_64-linux-gnu/libgstinterfaces-0.10.so.0
libgstreamer-plugins-base0.10-0:amd64: /usr/lib/x86_64-linux-gnu/libgstpbutils-0.10.so.0
libgstreamer-plugins-base0.10-0:amd64: /usr/lib/x86_64-linux-gnu/libgstvideo-0.10.so.0
libgstreamer0.10-0:amd64: /usr/lib/x86_64-linux-gnu/libgstbase-0.10.so.0
libgstreamer0.10-0:amd64: /usr/lib/x86_64-linux-gnu/libgstreamer-0.10.so.0
libsqlite3-0:amd64: /usr/lib/x86_64-linux-gnu/libsqlite3.so.0
libxcomposite1:amd64: /usr/lib/x86_64-linux-gnu/libXcomposite.so.1
libxml2:amd64: /usr/lib/x86_64-linux-gnu/libxml2.so.2
libxslt1.1:amd64: /usr/lib/x86_64-linux-gnu/libxslt.so.1
apt-file
était un taquin de me donner les paquets 64 bits, donc je devais le faire sudo apt-file -a amd64 update
pour le forcer à avoir la liste des fichiers 64 bits.
Maintenant, laissez-moi vous expliquer ce qui est tout ce qui précède:
ldd /path/to/binary
: lit un binaire et vous indique quelles sont les bibliothèques, symboles, etc. requis
dpkg -S
: recherchez les packages qui fournissent un fichier installé spécifique.
awk
, sed
et grep
: modifient le flux de texte pour ne traiter que les parties intéressantes ou afficher la sortie souhaitée.
|
, $(...)
: le premier me permet de diriger la sortie d'une commande vers une autre, et le dernier me permet d'exécuter / évaluer une commande avant que les principales ne soient exécutées.
TL; dr installez simplement ces packages:
sudo dpkg --add-architecture amd64 ## adding 64-bits architecture package
sudo apt-get update
sudo apt-get install libgstreamer-plugins-base0.10-0:amd64 libgstreamer-plugins-base0.10-0:amd64 libgstreamer-plugins-base0.10-0:amd64 libgstreamer-plugins-base0.10-0:amd64 libgstreamer0.10-0:amd64 libgstreamer0.10-0:amd64 libsqlite3-0:amd64 libxcomposite1:amd64 libxml2:amd64 libxslt1.1:amd64 libc6:amd64 libdrm2:amd64 libffi6:amd64 libgcc1:amd64 libgl1-mesa-glx:amd64 libglapi-mesa:amd64 libglib2.0-0:amd64 libpcre3:amd64 libstdc++6:amd64 libx11-6:amd64 libx11-xcb1:amd64 libxau6:amd64 libxcb1:amd64 libxcb-dri2-0:amd64 libxcb-dri3-0:amd64 libxcb-glx0:amd64 libxcb-present0:amd64 libxcb-sync1:amd64 libxdamage1:amd64 libxdmcp6:amd64 libxext6:amd64 libxfixes3:amd64 libxrender1:amd64 libxshmfence1:amd64 libxxf86vm1:amd64 zlib1g:amd64
Vous devez également installer le noyau 64 bits.