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 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.

  • 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.

  • ArchNoobUser

    how remove all. gns3 gns3-gui gns3-server…