(Last Updated On: November 12, 2018)
Hello all. Today i would like to share with you a short, working tutorial on how to install latest GNS3 on Arch Linux, Manjaro and any other Arch Linux based distribution out there.

For Ubuntu, check

How to Install GNS3 on Ubuntu 18.04 / Ubuntu 16.04

For Fedora, use:

How to Install GNS3 on Fedora 29 / Fedora 28

I tried this on both Arch and Manjaro and works just fine. There are few prerequisites that need to be met first and I will show you how to. We’ll also create a launcher for Gns3 that works for both KDE, Gnome 3 and any other Desktop Environment used on Linux.
So, without much theory, let’s get into hands on installation.

Install Latest GNS3 on Arch Linux

The steps to follow are:

  1. Install pip,wget, git and pyqt5.

sudo pacman -S python-pip wget git
sudo pacman -S python-pyqt5 qt5-tools qt5-multimedia
  1. Install all Python packages needed:

 sudo pacman -S python-pyqt5 qt5-tools qt5-multimedia python-pyzmq

Using pip:
You can also use pip to install above python packages. ( Recommended)

sudo pip install --upgrade pip
sudo pip install -U tornado ws4py setuptools netifaces zmq dev
sudo pip install -U ws4py 
sudo pip install  pyqt5
  1. Install gcc, cmake, libelf, libpcap

sudo pacman -S gcc cmake libelf libpcap
  1. Install Gns3 gui

mkdir -p /tmp/gns3
cd /tmp/gns3 
git clone https://github.com/GNS3/gns3-gui.git
cd gns3-gui
sudo python setup.py install 
cd ..
  1. Install Gns3 server:

git clone https://github.com/GNS3/gns3-server.git
cd gns3-server
sudo python setup.py install 
cd ..
  1. Install dynamips*

git clone git://github.com/GNS3/dynamips.git
cd dynamips
mkdir build
cd build
cmake ..
make
sudo make install 
cd ../..
  1. Download and Install iouyap.

git clone http://github.com/ndevilla/iniparser.git
cd iniparser
make
sudo cp libiniparser.* /usr/lib/
sudo cp src/iniparser.h /usr/local/include
sudo cp src/dictionary.h /usr/local/include
cd ..

git clone https://github.com/GNS3/iouyap.git
cd iouyap
make
sudo make install

Output:

cloning into 'iouyap'...
remote: Counting objects: 120, done.
remote: Total 120 (delta 0), reused 0 (delta 0), pack-reused 120
Receiving objects: 100% (120/120), 165.39 KiB | 65.00 KiB/s, done.
Resolving deltas: 100% (61/61), done.
Checking connectivity... done.
gcc -Wall -c -o iouyap.o iouyap.c
bison -y -d netmap_parse.y 
mv -f y.tab.c netmap_parse.c
gcc -Wall -c -o netmap_parse.o netmap_parse.c
flex -t netmap_scan.l > netmap_scan.c
gcc -Wall -c -o netmap_scan.o netmap_scan.c
gcc -Wall -c -o netmap.o netmap.c
gcc -Wall -c -o config.o config.c
gcc -Wall -c -o iniparser/iniparser.o iniparser/iniparser.c
gcc -Wall -c -o iniparser/dictionary.o iniparser/dictionary.c
gcc iouyap.o netmap_parse.o netmap_scan.o netmap.o config.o iniparser/iniparser.o iniparser/dictionary.o -lpthread -o iouyap
rm netmap_scan.c netmap_parse.c
chmod +x iouyap
cp iouyap /usr/local/bin
setcap cap_net_admin,cap_net_raw=ep /usr/local/bin/iouyap
  1. Install initparser

sudo pacman -S bison flex git 

output:

→ pacman -S bison flex git 
warning: bison-3.0.4-1 is up to date -- reinstalling
warning: flex-2.6.0-2 is up to date -- reinstalling
warning: git-2.8.0-1 is up to date -- reinstalling
resolving dependencies...
looking for conflicting ppackages... 
Packages (3) bison-3.0.4-1 flex-2.6.0-2 git-2.8.0-1 
Total Download Size: 1.34 MiB
Total Installed Size: 30.70 MiB
Net Upgrade Size: 0.00 MiB 
:: Proceed with installation? [Y/n] y
:: Retrieving packages...
bison-3.0.4-1-x86_64 557.8 KiB 289K/s 00:02 [############################] 100%
flex-2.6.0-2-x86_64 812.0 KiB 331K/s 00:02 [############################] 100%
(3/3) checking keys in keyring [############################] 100%
(3/3) checking package integrity [############################] 100%
(3/3) loading package files [############################] 100%
(3/3) checking for file conflicts [############################] 100%
:: Processing package changes...
(1/3) reinstalling bison [############################] 100%
(2/3) reinstalling flex [############################] 100%
(3/3) reinstalling git [############################] 100%

Then:

git clone http://github.com/ndevilla/iniparser.git
cd iniparser
make
sudo cp libiniparser.* /usr/lib/
sudo cp src/iniparser.h /usr/local/include
sudo cp src/dictionary.h /usr/local/include 
cd ..

Output:

→ git clone http://github.com/ndevilla/iniparser.git
cd iniparser
make
sudo cp libiniparser.* /usr/lib/
sudo cp src/iniparser.h /usr/local/include
sudo cp src/dictionary.h /usr/local/include
Cloning into 'iniparser'...
remote: Counting objects: 372, done.
remote: Total 372 (delta 0), reused 0 (delta 0), pack-reused 372
Receiving objects: 100% (372/372), 135.36 KiB | 122.00 KiB/s, done.
Resolving deltas: 100% (180/180), done.
Checking connectivity... done.
CC src/iniparser.o
CC src/dictionary.o
AR libiniparser.a
a - src/iniparser.o
a - src/dictionary.o
RANLIB libiniparser.a
LINK libiniparser.so.1
  1. Install vpcs*

git clone https://github.com/GNS3/vpcs.git
cd vpcs/src
sh mk.sh
cp vpcs /usr/local/bin/
chmod +x /usr/local/bin/vpcs
cd ../..

Output:

Cloning into 'vpcs'...
remote: Counting objects: 962, done.
remote: Total 962 (delta 0), reused 0 (delta 0), pack-reused 962
Receiving objects: 100% (962/962), 589.36 KiB | 190.00 KiB/s, done.
Resolving deltas: 100% (727/727), done.
Checking connectivity... done.
  1. Install ubridge:

git clone https://github.com/GNS3/ubridge.git
cd ubridge
make
sudo make install
cd ..
  1. Create launcher

sudo pacman -S vim
sudo pacman -S nano

Download logo image to use as icon:

cd /usr/share/
wget https://www.gns3.com/assets/images/logo-colour.png

Create gns3.desktop file using nano or vim.

vim /usr/share/applications/gns3.desktop

or:

nano /usr/share/applications/gns3.desktop

Add the following content, save then exit:

[Desktop Entry]
Type=Application 
Version=1.4.4 
Name=GNS3 
GenericName=Graphical Network Simulator
Comment= Network simulator 
Path=/usr/bin/gns3 
TryExec=/usr/bin/gns3
Exec=/usr/bin/gns3 %f
Icon=/usr/share/logo-colour.png 
Terminal=false 
MimeType=application/vnd.tcpdump.pcap;application/x-pcapng;application/x-snoop;application/x-iptrace;application/x-lanalyzer;application/x-nettl;application/x-radcom;application/x-etherpeek;application/x-visualnetworks;application/x-netinstobserver;application/x-5view;
Categories=Application;Network;

That’s all. You can now launch Gns3 by typing “Gns3” on application search boxgns3-4

Conclusion

We’ve seen how easy it is to install latest GNS3 on Arch Linux and Arch based distributions. I also showed you how to configure launcher for GNS3 on Arch Linux. Hope this was helpful.