Installation Dependencies on 64-bit Linux

Requirements

MPLAB® X IDE and the MPLAB XC Compilers are 32-bit applications, so to run them on a 64-bit system with a 64-bit Linux distribution, youmay need to install additional packages from your distribution's repository.

For better or worse, there is still quite a bit of variation among 64-bit Linux distributions with respect to their support of 32-bit applications and exactly which libraries are installed or required by default. The information on this page will hopefully allow you to successfully install and run MPLAB X IDE and the MPLAB XC Compilers on a 64-bit Linux system.

Do I have a 64-bit Linux installation?

You can determine whether you are running a 64-bit version of Linux by running the following command in a terminal:

uname -m

If the output has "64" at the end (e.g.x86_64), then you have a 64-bit system.

What about 64-bit distributions withmultiarch support?

64-bit versions of Debian based distributions such as Ubuntu, Linux Mint and their derivatives, and perhaps some others now includemultiarch support. Ideally, this means that you don't need to installia32-libs, though you may still require some 32-bit versions of specific libraries.

You can determine if a 64-bit Debian based distribution has multiarch support by running the following command in a terminal:

dpkg --print-foreign-architectures

If the output isi386 you have multiarch support and don't need to install theia32-libs 32-bit runtime libraries, though you will probably need to install other 32-bit libraries.

What 32-bit libraries / packages do I need to install?

MPLAB X IDE requires the libraries listed below. The MPLAB XC compilers require a subset of these libraries, so if you install them for MPLAB X IDE, you will be all set to use the MPLAB XC compilers as well.

PackageDescriptionLibraries
ia32-libs32-bit runtime libraries.Only for 64-bit distributions without multiarch support
libc6:i386Embedded GNU C Librarylibc.so, libdl.so, libm.so, libpthread.so, librt.so
libx11-6:i386X11 client-side librarylibX11.so
libxext6:i386X11 miscellaneous extension librarylibXext.so
libstdc++6:i386GNU Standard C++ Librarylibstdc++.so
libexpat1:i386XML parsing C librarylibexpat.so

Distribution Specific Notes

Ubuntu 14.04 and later

libc6:i386 is the only one of these packages you will find if you are using Synaptic. These must be installed from the command line using apt-get:

sudo apt-get install libc6:i386 libx11-6:i386 libxext6:i386 libstdc++6:i386 libexpat1:i386

Fedora

If you try to install without the required libraries, the installer will quit without any warning messages.
Tested on versions 20 and above.

sudo dnf install libX11.i686 libXext.i686 libgcc.i686 libstdc++.i686 expat.i686

Mageia 4

Installer script can't detect 32 bit libraries on this platform.
Work around suggested by a user:
In the installation script function 'check32BitLibraries()' search for:

echo Check for 32 Bit libraries
out=0
for lib in $@
do
ldconfig -p | grep $lib | grep 386 > /dev/null
if [ $? -ne 0 ]; then
if [ $out -eq 0 ]; then
echo These 32 bit libraries were not found and are needed for MPLAB X to run:

and change
ldconfig -p | grep $lib | grep 386
to
ldconfig -p | grep $lib | grep -v x86-64
to enable detection.
According to the developers, a fix similar to this will be in the version 2.25 installer script.

Package Installation

Check Installation Status

You may already have one or more of these installed on your system. To determine whether a package is installed on a Debian based distribution, run the following command in a terminal:

dpkg -spackage

For example:dpkg -s libexpat1:i386

For rpm based systems, the command is:

rpm -qa | greppackage

Installing Required Packages

On Debian based systems (e.g. Ubuntu, Mint) packages may be installed withapt-get in a terminal window:

sudo apt-get installpackage1package2packageN

Or they may be installed from your distribution's graphical package manager such asSynaptic,Muon, or theUbuntu Software Center.