How to Install NS-2.35 in Ubuntu-12.04 (in 4 easy steps)

In this DIY we will learn how to install Network Simulator (NS)-2.35 in Ubuntu 12.04. If you found yourself here then I assume you already know about the NS, so I will skip the introduction part. And if you don't then you may want to follow this link.

Step 1: Setting up the Prerequisites

1. First of all, download Network Simulator (NS- 2.35) from here.I assume you have downloaded it into your '/home/user_name/Documents' directory.

2. Now we have to update the Ubuntu with its latest components. Open up a terminal and run these commands:

1 sudo apt-get update
2 sudo apt-get dist-upgrade
3 sudo apt-get update

Make sure that your Ubuntu is fully updated ( i.e. there should be no pending updates in your Ubuntu Software Center and in Software Updater).

3. Before installing the NS we have to install some essential packages required by the NS. So run the following commands:

1 sudo apt-get install build-essential autoconf automake
2 sudo apt-get install tcl8.5-dev tk8.5-dev
3 sudo apt-get install perl xgraph libxt-dev libx11-dev libxmu-dev

Step 2: Extract and Install NS

1. Extract the downloaded NS package either using the right click context menu "Extract here" or using the following command from a terminal:

1 cd /home/user_name/Documents
2 tar -xvzf ns-allinone-2.35.tar.gz

2. Now its time to finally install the NS. Open up a terminal and move to the directory where you have extracted the package, in our case its ‘/home/user_name/Documents’ and install NS using the following command (image 1):

1 cd /home/user_name/Documents/ns-allinone-2.35
2 ./install

It will take around 15 minutes so have patience.

Image 1. Installation in Progress.

Step 3: Set the Environment Variables

1. Assuming everything went well in the previous step and you have successfully installed your NS. Now that NS is installed, there are some environment variables that need to be added to your profile. This can be done by editing the ".bashrc" file. Open a new terminal and open the file using:

1 sudo gedit .bashrc

NOTE: You may want to create a backup of the .bashrc before editing, the easiest way is to copy the file to a different location. Later you can replace the edited .bashrc with the copied one in case something goes sideways or if you want to remove the NS.

2. Add the following lines AT THE END of the file. Be sure to change "/path_to" to the path of where you have extracted the NS (e.g. '/home/user_name/Documents').




Save the file and restart the system, alternatively you can just reload the .bashrc as:

1 source ~/.bashrc

Step 4: Validate the Installation

You need to validate NS to check if everything is OK but keep in mind that it will take a lot of time (about 1:30 hrs). Open up a terminal and move to the directory '/home/user_name/Documents/ns-allinone-2.35/ns-2.35/' and run:

1 ./validate

And That's it ! You can now run ns from a terminal window by executing: ns
If you received the "%" sign, it means that NS is running (image 2). Congratulations !!

Image 2. Installation Successful.

* Uninstalling the NS

If you want to remove the NS from your system then follow these steps:

1 Delete the directory 'ns-allinone-2.35'.
2 Delete the ns related files from '/user/local/bin'.
3 Edit the '.bashrc file' and remove the paths that you have added during the installation.
4 Restart the system and run following commands one by one:
5 sudo apt-get autoremove
6 sudo apt-get clean


Many people are getting the following error when they run the ns after the installation:

Image 3. Error: 'ns' is currently not installed.

If you get this error then kindly ensure that you have set the path (as in step 3) correctly and try restarting the system. If the error persists then try running the ns from '/ns-allinone-2.35/ns-2.35/bin/'.

You can start working on NS now, the standard Marc Greis' tutorial on NS can be found here. Another tutorial is 'NS by example' by Jae Chung and Marc Claypool, and is available here.

Have Fun !!
— * — * — * — * —


  1. am getting segmentation fault (core dumbed ) problem when am running NAM file .
    any solution for my problem plz sort out my queries sir.

    1. Kindly run the validation step as explained in step 4 to check whether you have installed the ns correctly. Also check your tcl for any non-terminated variable. If the problem still persists then copy the 'nam' file from your '/home/[username]/ns-allinone-2.35/nam-1.15' folder and paste it into '/usr/local/bin' folder. Goodluck :)

  2. thank you sir , i got solution of my project .
    i got quick reply from your website once again thank you sir

  3. I'm beginner in ubuntu. when I install n2 I get this:
    g++ -o tcl2c++ tcl2c++.o
    make: g++: Command not found
    make: *** [tcl2c++] Error 127
    tclcl-1.20 make failed! Exiting ...

    can you help me to find a solution please !!

  4. Sir I have installed Ns2. It's working fine but when I trying to used from root by entering command sudo su and then going to the file which I want to run but terminal says Ns2 is not installed but normally it's working without rooting means without sudo su command. Please help me to resolve this query.

  5. I have installed ns-2 on my ubuntu system but when i'm validating ns some of the test results difer from reference output.
    validate overall report: some tests failed:
    ./test-all-tcp ./test-all-testReno ./test-all-newreno ./test-all-sack ./test-all-tcpOptions ./test-all-tcpReset ./test-all-testReno-full ./test-all-testReno-bayfull ./test-all-sack-full ./test-all-tcp-init-win ./test-all-tcpVariants ./test-all-LimTransmit ./test-all-aimd ./test-all-rfc793edu ./test-all-rfc2581 ./test-all-rbp ./test-all-frto ./test-all-ecn ./test-all-ecn-ack ./test-all-ecn-full ./test-all-quickstart ./test-all-manual-routing ./test-all-red ./test-all-adaptive-red ./test-all-red-pd ./test-all-rio ./test-all-vq ./test-all-rem ./test-all-gk ./test-all-pi ./test-all-cbq ./test-all-schedule ./test-all-links ./test-all-oddBehaviors
    to re-run a specific test, cd tcl/test; ./test-all-TEST-NAME

  6. i am getting "ns make failed" error after ./install step :(