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.
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 https://github.com/GNS3/iouyap.git
cd iouyap
bison --yacc -dv netmap_parse.y
flex netmap_scan.l
gcc -Wall -g *.c -o iouyap -liniparser -lpthread
make
sudo make install
chmod +x iouyap
sudo cp iouyap /usr/local/bin
sudo setcap cap_net_admin,cap_net_raw=ep /usr/local/bin/iouyap
cd ..

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
chmod +x ubridge
cp ubridge /usr/local/bin
setcap cap_net_admin,cap_net_raw=ep /usr/local/bin/ubridge
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.

SHARE
Previous articleOpenstack Liberty Lab Part Eight: Add VM images
Next articleHow to Install Arch Linux complete steps
I'm a fan of Linux and open source enthusiast with bachelor's degree in Electrical and Communications Engineering.The Swiss Army Knife syndrome makes me an expert in the fields of Virtualization, Cloud Computing,VoIP,Linux Containers and Server Hardening. Currently i have the following certifications: 1. LPI 2. SUSE Certified Linux Administrator ( CLA) 3. SUSE Certified Linux Professional ( CLP) 4. CCNA And working on RHCSA, RHCE, RHCVA, and Openstack Cloud Certification. I have a strong desire to learn, develop, and share knowledge with others.
  • Congratulations!

    *In step 9, is missing ‘make’ command?

    When i run GNS3 in terminal, shows:
    “Please install the PyQt5.QtSvg module”, then i installed with:
    ‘pip3 install pyqt5’

    This way, all its okay!
    Thank you.

    Tested on:
    Kernel 4.6.1-2-ARCH x86_64
    Mate GUI

    • Thank you for the comment. I’ve added pip3 install pyqt5 on pip installation section so that any other person does’t have to go through the same problem.