How to run IFL on 64-bit Linux distributions
Problem:
Image for Linux does not run on a 64-bit Linux distribution, either by double-clicking the imagel icon in the file manager, or by typing './imagel' in a terminal window. There may be no response or error message when attempting to run the program.
This issue can also affect the ability to install IFL to the distribution or create IFL boot media from the distribution since a missing package can prevent the IFL setup script from running.
Cause:
The 64-bit version of the distribution does not have the 32-bit shared libraries installed. These 32-bit shared libraries are usually not installed by default on 64-bit distributions.
Solutions:
Install the 32-bit shared libraries that IFL requires. Most 64-bit distributions do not install these by default, but they can be installed after the fact by using the distribution's package manager. The shared library packages required to accomplish this task will vary by distribution. Some common distributions are covered below. Prior to version 2.99-00 the CUI version did not require additional libraries.
Some of the packages listed below will depend on other packages, which will also be installed at the same time. The package manager will work out the dependencies and will install what is needed. Installing 32-bit support can use anywhere from about 25 to 270 MiB of additional disk space, depending on the distribution, and what is already installed by default. Command lines to install the packages are listed below for convenience, but a graphical package manager, if available, can also be used.
Important note: The command lines listed below will need to be run as root, or by prefacing them with 'sudo' if the distribution supports/requires it (e.g. sudo apt-get install ia32-libs).
Note: The setup script included with the newer 3.x versions of IFL require one or more of the 32-bit CUI packages in order to run. If you are installing the CUI version of IFL, install the CUI packages for the distribution before running setup. If you are installing the GUI version of IFL, install the the GUI packages for the distribution before running setup (the GUI packages include the required CUI packages).
Note: Having this page open in a browser on the Linux system will allow you to copy & and paste the commands into a terminal (no need to type them in).
Article Links
Debian 7.x and older (Debian, Ubuntu, Kubuntu, Linux Mint, etc.)
Ubuntu & Kubuntu 13.10, 14.04, 14.10; Linux Mint 17.x
Ubuntu & Kubuntu 15.04, 15.10, 16.04; Linux Mint 18.x
Ubuntu & Kubuntu 16.10, 17.04, 17.10, 18.04, 18.10; Linux Mint 19.x, 20.0
Ubuntu 19.04, 19.10, 20.04, 20.10, 22.04; Linux Mint 20.1, 21
Debian 10 (buster), Debian 11 (bullseye)
OpenSUSE (as of OpenSUSE Leap 42.3, Leap 15.x)
Fedora (as of Fedora 16 thru 23); CentOS (as of CentOS 7.x); Red Hat (as of RHEL7)
Debian 7.x and older (Debian, Ubuntu, Kubuntu, Linux Mint, etc.):
Additional package(s) required (GUI & CUI): ia32-libs, libncursesw5:i386
GUI: libjpeg62:i386Additional disk space used: Up to 270 MiB
Command lines:
apt-get update
Command line GUI: apt-get install ia32-libs libjpeg62:i386 libncursesw5:i386
Command line CUI: apt-get install ia32-libs libncursesw5:i386
Ubuntu & Kubuntu 13.10, 14.04, 14.10; Linux Mint 17.x
Additional packages required (GUI & CUI): libstdc++6:i386, lib32z1, libncursesw5:i386
GUI: lib32ncurses5, lib32bz2-1.0, libpng12-0:i386, libjpeg62:i386, libxext6:i386, libxft2:i386, libxinerama1:i386, libxcursor1:i386
Additional disk space used: Up to 50 MiB
Command lines:
dpkg --add-architecture i386
apt-get update
Command line GUI: apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0 libpng12-0:i386 libjpeg62:i386 libxext6:i386 libxft2:i386 libxinerama1:i386 libstdc++6:i386 libncursesw5:i386 libxcursor1:i386
Command line CUI: apt-get install lib32z1 libncursesw5:i386 libstdc++6:i386
Ubuntu & Kubuntu 15.04, 15.10, 16.04; Linux Mint 18.x
Additional packages required (GUI & CUI): lib32z1, libstdc++6:i386, libncursesw5:i386
GUI: lib32ncurses5, libpng12-0:i386, libjpeg62:i386, libxext6:i386, libxft2:i386, libxinerama1:i386, libxcursor1:i386
Additional disk space used: Up to 50 MiB
Command lines:
dpkg --add-architecture i386
apt-get update
Command line GUI: apt-get install lib32z1 lib32ncurses5 libpng12-0:i386 libjpeg62:i386 libxext6:i386 libxft2:i386 libxinerama1:i386 libstdc++6:i386 libncursesw5:i386 libxcursor1:i386
Command line CUI: apt-get install lib32z1 libncursesw5:i386 libstdc++6:i386
Ubuntu & Kubuntu 16.10, 17.04, 17.10, 18.04, 18.10; Linux Mint 19.x, 20.0
Additional packages required (GUI & CUI): lib32z1, libstdc++6:i386, libncursesw5:i386
GUI: libncurses5:i386, libpng12-0:i386, libjpeg62:i386, libxext6:i386, libxft2:i386, libxinerama1:i386, libxcursor1:i386
Additional disk space used: Up to 50 MiB
Command lines:
dpkg --add-architecture i386
apt-get update
Command line GUI #1: apt-get install lib32z1 libncurses5:i386 libjpeg62:i386 libxext6:i386 libxft2:i386 libxinerama1:i386 libstdc++6:i386 libncursesw5:i386 libxcursor1:i386
Command line GUI #2: wget http://mirrors.kernel.org/ubuntu/pool/main/libp/libpng/libpng12-0_1.2.54-1ubuntu1_i386.deb
(This command will download the libpng12 package and save it to the current folder.)Command line GUI #3: dpkg -i libpng12-0_1.2.54-1ubuntu1_i386.deb
(This command will install the downloaded libpng12 package. Must be run from the folder containing the package file.)Command line CUI: apt-get install lib32z1 libncursesw5:i386 libstdc++6:i386
Ubuntu 19.04, 19.10, 20.04, 20.10, 22.04; Linux Mint 20.1*, 21
Additional packages required (GUI & CUI): lib32z1, libstdc++6:i386, libncursesw5:i386
GUI: libpng12-0:i386, libjpeg62:i386, libxext6:i386, libxft2:i386, libxinerama1:i386, libxcursor1:i386
Additional disk space used: Up to 50 MiB
*Linux Mint 20.1 Note: If 20.1 was an upgrade (not a clean install) and usrmerge was not run, use the Linux Mint 20.0 instructions.
Command lines:
dpkg --add-architecture i386
apt-get update
Command line GUI #1: apt-get install lib32z1 libjpeg62:i386 libxext6:i386 libxft2:i386 libxinerama1:i386 libstdc++6:i386 libncursesw5:i386 libxcursor1:i386
Command line GUI #2: wget http://mirrors.kernel.org/ubuntu/pool/main/libp/libpng/libpng12-0_1.2.54-1ubuntu1_i386.deb
(This command will download the libpng12 package and save it to the current folder.)Command line GUI #3: dpkg -x libpng12-0_1.2.54-1ubuntu1_i386.deb libpng12
(This command will extract the package to the libpng12 folder. Must be run from the folder containing the package file.)Command line GUI #4: cp -P libpng12/lib/i386-linux-gnu/* /usr/lib/i386-linux-gnu/
(This command will copy the files into the appropriate /usr/lib folder. Must be run from the folder containing the package file.)Command line CUI: apt-get install lib32z1 libncursesw5:i386 libstdc++6:i386
Debian 8 (jessie)
Additional packages required (GUI & CUI): lib32z1 libstdc++6:i386 libncursesw5:i386
GUI: lib32ncurses5 libpng12-0:i386 libjpeg62-turbo:i386 libxext6:i386 libxft2:i386 libxinerama1:i386 libxcursor1:i386
Additional disk space used: Up to 30 MiB
Command lines:
dpkg --add-architecture i386
apt-get update
Command line GUI: apt-get install lib32z1 lib32ncurses5 libpng12-0:i386 libjpeg62-turbo:i386 libxext6:i386 libxft2:i386 libxinerama1:i386 libstdc++6:i386 libncursesw5:i386 libxcursor1:i386
Command line CUI: apt-get install lib32z1 libncursesw5:i386 libstdc++6:i386
Note: Several additional packages will be installed by command line above. They are dependencies of the packages listed on the command line.
Debian 9 (stretch)
Additional packages required (GUI & CUI): lib32z1 libstdc++6:i386 libncursesw5:i386
GUI: lib32ncurses5 libpng12-0:i386 libjpeg62-turbo:i386 libxext6:i386 libxft2:i386 libxinerama1:i386 libxcursor1:i386
Additional disk space used: Up to 30 MiB
Command lines:
dpkg --add-architecture i386
apt-get update
Command line GUI #1: apt-get install lib32z1 lib32ncurses5 libjpeg62-turbo:i386 libxext6:i386 libxft2:i386 libxinerama1:i386 libstdc++6:i386 libncursesw5:i386 libxcursor1:i386
Command line GUI #2: wget http://ftp.us.debian.org/debian/pool/main/libp/libpng/libpng12-0_1.2.50-2+deb8u3_i386.deb
(This command will download the libpng12 package and save it to the current folder.)Command line GUI #3: dpkg -i libpng12-0_1.2.50-2+deb8u3_i386.deb
(This command will install the downloaded libpng12 package. Must be run from the folder containing the package file.)Command line CUI: apt-get install lib32z1 libncursesw5:i386 libstdc++6:i386
Note: Several additional packages will be installed by command line above. They are dependencies of the packages listed on the command line.
Debian 10 (buster), Debian 11 (bullseye)
Additional packages required (GUI & CUI): lib32z1 libstdc++6:i386 libncursesw5:i386
GUI: libpng12-0:i386 libjpeg62-turbo:i386 libxext6:i386 libxft2:i386 libxinerama1:i386 libxcursor1:i386
Additional disk space used: Up to 40 MiB
Command lines:
dpkg --add-architecture i386
apt-get update
Command line GUI #1: apt-get install lib32z1 libjpeg62-turbo:i386 libxext6:i386 libxft2:i386 libxinerama1:i386 libstdc++6:i386 libncursesw5:i386 libxcursor1:i386
Command line GUI #2: wget http://ftp.us.debian.org/debian/pool/main/libp/libpng/libpng12-0_1.2.50-2+deb8u3_i386.deb
(This command will download the libpng12 package and save it to the current folder.)Command line GUI #3: dpkg -x libpng12-0_1.2.50-2+deb8u3_i386.deb libpng12
(This command will extract the package to the libpng12 folder. Must be run from the folder containing the package file.)Command line GUI #4: cp -P libpng12/lib/i386-linux-gnu/* /usr/lib/i386-linux-gnu/
(This command will copy the files into the appropriate /usr/lib folder. Must be run from the folder containing the package file.)Command line CUI: apt-get install lib32z1 libncursesw5:i386 libstdc++6:i386
Note: Several additional packages will be installed by command line above. They are dependencies of the packages listed on the command line.
OpenSUSE (as of OpenSUSE Leap 42.3, Leap 15.x, Tumbleweed 2022-08)
Additional packages required (GUI): libxine2-32bit, libpng12-0-32bit, libjpeg62-32bit, libXinerama1-32bit, libncurses5-32bit, libXcursor1-32bit
Additional packages required (CUI): libncurses5-32bit
Additional disk space used: Up to 84 MiB
Command line GUI: zypper install libxine2-32bit libpng12-0-32bit libjpeg62-32bit libXinerama1-32bit libncurses5-32bit libXcursor1-32bit
Command line CUI: zypper install libncurses5-32bit
Note: Some versions, such as Leap 15.4, may also require the libXft2-32bit package for the GUI version.
Fedora (as of Fedora 16 thru 23); CentOS (as of CentOS 7.x); Red Hat (as of RHEL7)
Additional packages required (GUI & CUI): glibc.i686, libstdc++.i686, ncurses-libs.i686
GUI: libXinerama.i686, fontconfig.i686, libXft.i686, libpng.i686, libjpeg-turbo.i686, libXcursor.i686
Additional disk space used: 25 MiB
Command line GUI: yum install glibc.i686 libXinerama.i686 libstdc++.i686 fontconfig.i686 libXft.i686 libpng.i686 libjpeg-turbo.i686 ncurses-libs.i686 libXcursor.i686
Command line CUI: yum install glibc.i686 libstdc++.i686 ncurses-libs.i686
Note: Some of these distro versions may also require the libpng12.i686 package. This will be indicated by an "error while loading shares libraries: libpng12.so.0" error message when starting up 'imagel'. The install command line for that package is:
yum install libpng12.i686Note: Some versions of Fedora have deprecated yum and the command is redirected to dnf. Additionally, to avoid a transaction check error when installing the GUI libraries you may need to install libpng.i686 separately from the others. For example:
dnf install glibc.i686 libXinerama.i686 libstdc++.i686 fontconfig.i686 libXft.i686 libjpeg-turbo.i686 ncurses-libs.i686 libXcursor.i686
dnf install libpng.i686
dnf install libpng12.i686
Fedora 25 thru 36; Centos 8.3; Red Hat (as of RHEL8)
Additional packages required (GUI & CUI): glibc.i686, libstdc++.i686, ncurses-compat-libs.i686
GUI: libXinerama.i686, libXft.i686, libpng12.i686, libjpeg-turbo.i686, libXcursor.i686
Additional disk space used: 25 MiB
Command line GUI: yum install glibc.i686 libXinerama.i686 libstdc++.i686 libXft.i686 libpng12.i686 libjpeg-turbo.i686 ncurses-compat-libs.i686 libXcursor.i686
Command line CUI: yum install glibc.i686 libstdc++.i686 ncurses-compat-libs.i686
Arch Linux 2020.04.01_x86_64
Note: All commands below must be run as root or equivalent (e.g. using 'sudo' or 'su').
Due to the way Arch Linux is released, installed, and updated, several additional steps may be required in order to install the required 32-bit libraries and allow the IFL setup script to run. Steps may be skipped if known to already be applied/installed.
- Install sudo if needed/wanted (not needed if logging in as root or using 'su'):
pacman -S sudo
Note: You may need to add user to sudo group before using sudo.
- Install the which utility (required by the IFL setup script):
pacman -S which
- Edit /etc/pacman.conf and uncomment the [multilib] section. You can use any text editor for this step (e.g. nano, gedit):
gedit /etc/pacman.conf
Browse near the end of the file and locate the [multilib] section. Uncomment the section by removing the # character from beginning of each line and then save the file. Example:
[multilib] Include = /etc/pacman.d/mirrorlist
- Update the system:
pacman -Syu
- The required 32-bit libraries can now be installed.
Additional packages required (GUI & CUI): lib32-gcc-libs, lib32-ncurses (v5), lib32-libtinfo (v5)
GUI: lib32-libxcursor, lib32-libxext, lib32-libxft, lib32-libxinerama, lib32-libpng12, lib32-libjpeg6-turbo
Command line GUI & CUI #1: pacman -U https://archive.org/download/archlinux_pkg_lib32-ncurses/lib32-ncurses-5.9-3-x86_64.pkg.tar.xz
Command line GUI & CUI #2: ln -s libncursesw.so.5 /usr/lib32/libtinfo.so.5
Command line GUI #3: pacman -S lib32-libxcursor lib32-libxext lib32-libxft lib32-libxinerama lib32-libpng12 lib32-libjpeg6-turbo
Command line CUI #3: pacman -S lib32-gcc-libs