I have Ubuntu 14.04. I recently downloaded Viber. The Viber .deb file has 64-bit architecture. I want to install it on my computer, but my computer only supports 32-bit.
The output of running lscpu
is as follows:
Architecture: i686
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 2
On-line CPU(s) list: 0,1
Thread(s) per core: 1
Core(s) per socket: 2
Socket(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 23
Stepping: 10
CPU MHz: 2800.000
BogoMIPS: 5586.12
Virtualization: VT-x
L1d cache: 32K
L1i cache: 32K
L2 cache: 2048K
Best Answer
Provided that your hardware support 64-bits, which does:
and the package was prepared to use multiarch, which is also true:
you could just install the necessary 64-bit libraries and binaries which are dependency of the package (which is none, more about that later) that you need to run the application, with virtual zero performance impact. In my case, I just installed the package just fine:
And then started running into problems...
The package managers decided that they should not list any dependency for their package,
which they actually need:
so you must find and install the libraries missing manually! This is easy if you know the correct tools.
apt-file
comes handy here, also http://packages.ubuntu.com functionality "Search the contents of packages" comes fine also. But I went ahead and searched for them:These files are already installed in my system, you only need to copy the package name, the one before the colon that ends with
amd64
. You should copy the package names as they are:These I didn't had them installed, which I obtained using
ldd /opt/viber/Viber | grep 'not found' | awk '{printf "%s$\n", $1}' | apt-file search -x -a amd64 -f - | sed 's/\:/:amd64:/'
:apt-file
was a tease to give me the 64-bit packages so I had to dosudo apt-file -a amd64 update
to force it to have the 64-bit file list.Now, let me explain what is all the above:
ldd /path/to/binary
: reads a binary and tells you what are the required libraries, symbols, etc.dpkg -S
: search which packages provide a specific installed file.awk
,sed
andgrep
: are modifying the text stream to process only the interesting parts or show the desired output.|
,$(...)
: the first allows me to pipe the output of a command to another, and the later allows me to execute/evaluate a command before the main ones gets executed.TL;dr just install these packages:
You also need to install the 64-bit kernel.