Skip to main content

How to Install ns-3.46 on Ubuntu 24.04 LTS

Step-by-Step Guide: How to Install ns-3.46 on Ubuntu 24.04 LTS

Welcome to Engineering Clinic!

As Ubuntu continues to evolve with its 24.04 LTS release, network simulation tools must also keep pace. Today, we will walk through the complete installation process of ns-3.46 on the new Ubuntu 24.04 environment.

Whether you are a student, researcher, or developer, setting up the environment correctly is the most critical step. This guide covers everything from installing dependencies to setting up the specific Python virtual environment required for this version.

Check the video for complete instructions:

https://youtu.be/Rd8pXpOkDgQ

Let’s get started.


Step 1: Update and Install Dependencies

Before we touch the network simulator, we need to prepare the Linux environment. Ubuntu 24.04 requires a specific set of libraries for C++, Python, and visualizer tools.

First, update your repositories:

$ sudo apt update

Next, install the required dependencies. This is a comprehensive list ensuring that key features (like NetAnim, Python bindings, and MPI) work correctly.

Copy and paste the following command:

$ sudo apt install g++ python3 cmake ninja-build git gir1.2-goocanvas-2.0 python3-gi 
python3-gi-cairo python3-pygraphviz gir1.2-gtk-3.0 ipython3 tcpdump wireshark sqlite3 
libsqlite3-dev qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools openmpi-bin 
openmpi-common openmpi-doc libopenmpi-dev doxygen graphviz imagemagick python3-sphinx 
dia imagemagick texlive dvipng latexmk texlive-extra-utils texlive-latex-extra 
texlive-font-utils libeigen3-dev gsl-bin libgsl-dev libgslcblas0 libxml2 libxml2-dev 
libgtk-3-dev lxc-utils lxc-templates vtun uml-utilities ebtables bridge-utils libxml2 
libxml2-dev libboost-all-dev ccache python3-full python3-pip

Note: Depending on your internet speed, this download may take some time. Grab a coffee while it finishes!


Step 2: Download and Extract ns-3.46

Once the dependencies are ready, we need to get the source code.

  1. Download the tarball from the official release page: https://www.nsnam.org/releases/ns-3.46.tar.bz2

  2. Move the downloaded file to your home folder (e.g., /home/username).

  3. Open your terminal in that directory and unzip the file:

$ tar jxvf ns-3.46.tar.bz2

Step 3: Configure and Build (C++)

Now, navigate into the directory and begin the build process. We will enable examples and tests to ensure everything is working.

$ cd ns-3.46
$ ./ns3 configure --enable-examples --enable-tests

Once the configuration is successful, build the project:

Bash
$ ./ns3 build

Performance Tip: This step compiles a massive amount of C++ code. The time it takes will depend heavily on your computer's CPU speed.


Step 4: Testing the Installation (C++)

Before we move to Python, let’s verify the installation by running a standard C++ script.

In ns-3, all your custom scripts (.cc or .py files) should be placed in the scratch/ folder.

To run a file located in scratch:

Bash
./ns3 run scratch/filename

(You do not need to type the file extension, though ./ns3 run scratch/file.cc works as well).


Step 5: Setting up Python Bindings (Crucial Step)

If you attempt to run Python scripts immediately, you may encounter errors. In Ubuntu 24.04, Python environments are managed more strictly. We need to create a Virtual Environment (venv) and install cppyy to allow Python to talk to the C++ core of ns-3.

Follow these steps carefully:

1. Install cppyy and create the environment:

Bash
pip install cppyy
python3 -m venv ./myenv

2. Activate the environment:

Bash
source ./myenv/bin/activate

(You will see (myenv) appear at the start of your command prompt)

3. Re-configure and Re-build with Python bindings enabled:

Bash
cd ns-3.46
./ns3 configure --enable-python-bindings
./ns3 build

Step 6: Running a Python Example

Let’s test the Python capability. Copy the standard first.py example into your scratch folder and run it.

Bash
cp examples/tutorial/first.py scratch/first.py
./ns3 run scratch/first.py

If successful, you will see the simulation output in your terminal.

Important Workflow Reminder: Every time you open a new terminal to work on ns-3 with Python, you must reactivate your environment first:

Bash
source ./myenv/bin/activate

Conclusion

Congratulations! You have successfully installed ns-3.46 on Ubuntu 24.04 LTS. You are now ready to start building your network topologies and running simulations.

If you found this guide helpful, please verify the installation by running the examples above. Happy coding!

Comments

Popular posts from this blog

Installing ns3 in Ubuntu 22.04 | Complete Instructions

In this post, we are going to see how to install ns-3.36.1 in Ubuntu 22.04. You can follow the video for complete details Tools used in this simulation: NS3 version ns-3.36.1  OS Used: Ubuntu 22.04 LTS Installation of NS3 (ns-3.36.1) There are some changes in the ns3 installation procedure and the dependencies. So open a terminal and issue the following commands Step 1:  Prerequisites $ sudo apt update In the following packages, all the required dependencies are taken care and you can install all these packages for the complete use of ns3. $ sudo apt install g++ python3 python3-dev pkg-config sqlite3 cmake python3-setuptools git qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools gir1.2-goocanvas-2.0 python3-gi python3-gi-cairo python3-pygraphviz gir1.2-gtk-3.0 ipython3 openmpi-bin openmpi-common openmpi-doc libopenmpi-dev autoconf cvs bzr unrar gsl-bin libgsl-dev libgslcblas0 wireshark tcpdump sqlite sqlite3 libsqlite3-dev  libxml2 libxml2-dev libc6-dev libc6-dev-i386 libc...

Installation of NS2 in Ubuntu 22.04 | NS2 Tutorial 2

NS-2.35 installation in Ubuntu 22.04 This post shows how to install ns-2.35 in Ubuntu 22.04 Operating System Since ns-2.35 is too old, it needs the following packages gcc-4.8 g++-4.8 gawk and some more libraries Follow the video for more instructions So, here are the steps to install this software: To download and extract the ns2 software Download the software from the following link http://sourceforge.net/projects/nsnam/files/allinone/ns-allinone-2.35/ns-allinone-2.35.tar.gz/download Extract it to home folder and in my case its /home/pradeepkumar (I recommend to install it under your home folder) $ tar zxvf ns-allinone-2.35.tar.gz or Right click over the file and click extract here and select the home folder. $ sudo apt update $ sudo apt install build-essential autoconf automake libxmu-dev gawk To install gcc-4.8 and g++-4.8 $ sudo gedit /etc/apt/sources.list make an entry in the above file deb http://in.archive.ubuntu.com/ubuntu/ bionic main universe $ sudo apt update Since, it...

Installation of NS2 (ns-2.35) in Ubuntu 20.04

Installation of NS2 (ns-2.35) in Ubuntu 20.04 LTS Step 1: Install the basic libraries like      $] sudo apt install build-essential autoconf automake libxmu-dev Step 2: install gcc-4.8 and g++-4.8 open the file using sudo mode $] sudo nano /etc/apt/sources.list Include the following line deb http://in.archive.ubuntu.com/ubuntu bionic main universe $] sudo apt update $] sudo apt install gcc-4.8 g++-4.8 Step 3:  Unzip the ns2 packages to home folder $] tar zxvf ns-allinone-2.35.tar.gz $] cd ns-allinone-2.35/ns-2.35 Modify the following make files. ~ns-2.35/Makefile.in Change @CC@ to gcc-4.8 change @CXX@ to g++-4.8 ~nam-1.15/Makefile.in ~xgraph-12.2/Makefile.in ~otcl-1.14/Makefile.in Change in all places  @CC@ to gcc-4.8 @CPP@ or @CXX@ to g++-4.8 open the file: ~ns-2.35/linkstate/ls.h Change at the Line no 137  void eraseAll() { erase(baseMap::begin(), baseMap::end()); } to This void eraseAll() { this->erase(baseMap::begin(), baseMap::end()); } All changes ...