Information: NetAnim ==> works PyViz virtualization ==> works Python Bindings ==> works Environment: Ubuntu 16.04 could be installed on primary PC or VM Pre-Install: $ sudo apt update $ sudo apt upgrade Install dependency packages for NS-3.29: $ sudo apt install gcc g++ python python-dev $ sudo apt install mercurial python-setuptools git $ sudo apt install qt5-default $ sudo apt install gir1.2-goocanvas-2.0 python-gi python-gi-cairo $ python-pygraphviz python3-gi python3-gi-cairo python3-pygraphviz gir1.2-gtk-3.0 ipython ipython3 $ sudo apt install openmpi-bin openmpi-common openmpi-doc libopenmpi-dev $ sudo apt install autoconf cvs bzr unrar $ sudo apt install gdb valgrind $ sudo apt install uncrustify $ sudo apt install doxygen graphviz imagemagick $ sudo apt install texlive texlive-extra-utils texlive-latex-extra texlive-font-utils texlive-lang-portuguese dvipng $ sudo apt install python-sphinx dia $ sudo apt install gsl-bin libgsl2 libgsl-dev $ sudo apt install flex bison libfl-dev $ sudo apt install tcpdump $ sudo apt install sqlite sqlite3 libsqlite3-dev $ sudo apt install libxml2 libxml2-dev $ sudo apt install cmake libc6-dev libc6-dev-i386 libclang-6.0-dev llvm-6.0-dev automake $ pip install cxxfilt $ sudo apt install libgtk2.0-0 libgtk2.0-dev $ sudo apt install vtun lxc $ sudo apt install libboost-signals-dev libboost-filesystem-dev Clone the NS-3 packages: $ mkdir workspace $ cd workspace $ hg clone http://code.nsnam.org/bake Check whether the packages completely cloned: $ cd bake $ ls It shows file/directory(s): bake bakeconf.xml doc generate-binary.py test TODO bake.py examples Next steps: Export BAKE_HOME='Pwd' Export PATH=$PATH:$BAKE_HOME:$BAKE_HOME/Build/Bin Export PYTHONPATH=$PYTHONPATH:$BAKE_HOME:$BAKE_HOME/Build/Lib Download ns3 using bake: $ ./bake.py configure -e ns-3.29 $ ./bake.py check $ ./bake.py download Check downloaded file/directory(s): $ ls source BRITE netanim-3.108 openflow-ns-3.25 pygccxml-1.9.1 castxml ns-3.29 pybindgen v1.9.1.tar.gz click-ns-3.25 nsc-0.5.3 pygccxml Run the test code to check if it works properly: $ cd ns-allinone-3.29 $ ./test.py Finally, run the ns3 sample script: $ ./waf --run hello-simulator If "Hello Simulator" is displayed, the installation of ns-3.29 is complete. It's time for coffee.