Teamviewer – package architecture (i386) does not match system (amd64)

The teamviewer installation error “package architecture (i386) does not match system (amd64)” is observed on when attempting an install on 64 bit versions of either Debian or Ubuntu. This article details how to solve this quickly and easily.

This comes from using a “multiarch” or “multiple-architecture” installer as opposed to one which has been expressly compiled for wither i386 or amd64 architectures; from the Debian site:

“Multiarch is the term being used to refer to the capability of a system to install and run applications of multiple different binary targets on the same system. For example running a i386-linux-gnu application on an amd64-linux-gnu system.”

Symptoms:

The error is observed once an install is attempted with:

sudo dpkg -i teamviewer_linux.deb

install error

Solution

Download

The latest teamviewer package for linux can always be downloaded using the following:

wget http://www.teamviewer.com/download/teamviewer_linux.deb

Download linux teamviewer installer
Download linux teamviewer installer

Add i386 Architecture to dpkg

The following command will add the i386 directives to dpkg:

sudo dpkg --add-architecture i386

Add i386 architecture to dpkg
Add i386 architecture to dpkg

Update Sources

We now need to update our sources so that the system knows about the new i386 packages:

sudo apt-get update

Update Package Sources
Update Package Sources

Install Teamviewer

We can now go ahead and try to install Teamviewer again. This will partially work but some of its dependencies will be unfulfilled, shown with the errors “dependency problems – leaving unconfigured” – we will address this in the next step.

sudo dpkg -i teamviewer_linux.deb

Run Teamviewer installer again
Run Teamviewer installer again

Fix Unfulfilled Dependencies

Running the apt-get with the “-f” or “–fix-broken” switch will resolve any missing dependencies for installed programs:

sudo apt-get install -f

Resolve Unfulfilled Dependencies
Resolve Unfulfilled Dependencies

Start Teamviewer!

Open Teamviewer From the Menu:

From the applications menu, navigate to Internet and Teamviewer should be available for selection:

Open Teamviewer
Accept the EULA ..
Accept EULA
And Away We Go!

9 away we go

 

Quick Reference: apt-get

apt-get is the command-line tool for handling packages for Debian Linux which is use to:

  • Install/manage individual packages
  • Upgrade packages
  • Apply security patch(s)
  • Keep Debian system up to date
  • Download source .deb files
  • Has many GUI and other utilities as front-ends

Here is quick cheat sheet you will find handy while using apt-get at shell prompt:

Syntax Description Example(s)
apt-get install {package} Install the new package. If package is installed then try to upgrade to latest version apt-get install zip
apt-get install lsof samba mysql-client
apt-get install {package} -f Install the new package and fix any broken dependencies. “-f” equates to “–fix-broken” apt-get install -f zip
apt-get install -f lsof samba mysql-client
apt-get remove {package} Remove/Delete an installed package except configuration files apt-get remove zip
apt-get –purge remove {package} Remove/Delete everything including configuration files apt-get –purge remove mysql-server
apt-get update
apt-get upgrade
Resynchronize the package index files and Upgrade the Debian Linux system including security update (Internet access required) apt-get update
apt-get upgrade
apt-get update
apt-get dist-upgrade
Usually use to upgrade to Debian distribution. For example Woody to Sarge upgrade. ‘dist-upgrade’ in addition to performing the function of upgrade, also intelligently handles changing dependencies with new versions of packages; apt-get has a “smart” conflict resolution system, and it will attempt to upgrade the most important packages at the expense of less important ones if necessary. apt-get update
apt-get dist-upgrade

{package} – Replace with actual package name

The full man page for apt-get can be found here: http://ss64.com/bash/apt-get.html

Build A Complete Linux Media Server – Install Sonarr Series Download Manager

Install Sonarr Downloader

This article describes how to install Sonarr on Debian and integrate it with the previously configured transmission and nzbget programs.

Sonarr is the new name for NZBdrone – an application which not only automates TV show downloads but also maintains them after this is done. For example, depending on settings you configure, Sonarr will download an episode of a series in SD format as soon as it is posted and then upgrade it as progressively better quality releases become available.

Install Mono

Mono is an open source impementation of Microsoft’s .NET runtime and required in order run Sonarr. Debian needs a couple of extra steps to install this:

  1. Add the mono repositories to the Debian sources list:
    • sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
      echo "deb http://download.mono-project.com/repo/debian wheezy main" | sudo tee /etc/apt/sources.list.d/mono-xamarin.list
      echo "deb http://download.mono-project.com/repo/debian wheezy-libjpeg62-compat main" | sudo tee -a /etc/apt/sources.list.d/mono-xamarin.list
  2. Update the package lists and install:
    • sudo apt-get upgrade && sudo apt-get install mono-devel

 Install Sonarr

First, add the Sonarr software repository to the debian software source list. This will allow us to easily install (and upgrade in the future) using apt-get:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys FDA5DFFC
echo "deb http://apt.sonarr.tv/ master main" | sudo tee /etc/apt/sources.list.d/sonarr.list

The next step is to install Sonarr itself:

sudo apt-get update
sudo apt-get install nzbdrone

Configure Sonarr to Run As a Service Under nobody:nogroup

  1. Change permissions on the Sonarr folder:
    • sudo chown -R nobody:nogroup /opt/NzbDrone/
  2. Create the file sonarr.service in /etc/systemd/system/ and paste in the following:
    • [Unit]
      Description=Sonarr Daemon
      After=network.target
      
      [Service]
      User=nobody
      Group=nogroup
      Restart=always
      RestartSec=5
      Type=simple
      ExecStart=/usr/bin/mono /opt/NzbDrone/NzbDrone.exe -nobrowser -data=ExecStart=/usr/bin/mono /opt/NzbDrone/NzbDrone.exe -nobrowser -data=/home/nobody/.config/NzbDrone
      TimeoutStopSec=20
      KillMode=process
      Restart=on-failure
      
      [Install]
      WantedBy=multi-user.target
  3. Update systemctl, enable the service and start sonarr:
    • sudo systemctl daemon-reload 
      sudo systemctl enable sonarr 
      sudo systemctl start sonarr
  4. This point is just a reminder that if you haven’t given nobody a home as detailed on the server install page then you’ll need to do it now and then restart sonarr. This is necessary to enable sonarr to auto-update which it can only do if the config files are kept separately away from its install directory.

Connect to Sonarr Web GUI

Open your browser and browse to http://your_server_ip:8989/

You should now see the following and this tells us that everything is working well:

sonarr web gui

Now we can proceed to our Sonarr configuration – click here to continue!