Installing ns-2.29 in Ubuntu 12.04

 
 

Off late, we try to use(install) a old software in a new Operating System for want of backward compatibility or to survey.  This following post shows you how to install ns-2.29 in Ubuntu 12.04.

Unlike other ns2 installations, this installation has so many errors, warnings and patchings. Once everything is overcome, ns installs successfully

Step 1: Download and untar ns-2.29 from this link (http://sourceforge.net/projects/nsnam/files/allinone/ns-allinone-2.29/ns-allinone-2.29.3.tar.gz/download)

Step 2: install the necessary dependancy packages using the command "sudo apt-get install build-essential libxmu-dev autoconf automake" (without quotes). This will install the necessary developmental packages

Step 3: Since ns-2.29 is older software, some of the pointer conversion have to be changed inside ns-2.29

Step 4: go to terminal, point to the location of ns-allinone-2.29 using the command "cd ~/ns-allinone-2.29/" and type "./install"

Step 5: there may be the following errors during the installation, please correct one by one

1. OTcl-1.11 error make failed.

for this error, open the file under the folder otcl-1.11/configure.in and go to line number

Change the following block to

Linux*)

SHLIB_CFLAGS="-fpic"

SHLIB_LD="ld -shared"

SHLIB_SUFFIX=".so"

DL_LIBS="-ldl"

SHLD_FLAGS=""

;;

Linux*)
        SHLIB_CFLAGS="-fpic"
        SHLIB_LD="gcc -shared"
        SHLIB_SUFFIX=".so"
        DL_LIBS="-ldl"
        SHLD_FLAGS=""
        ;;
 
2. tclcl-1.17 error, in line number 566 of Tcl.cc file (~tclcl-1.17/Tcl.cc) (See the upper case Tcl.cc)
change the following to 
char *p = strchr(localName, '(');
this following line
char *p =const_cast<char*>( strchr(localName, '('));
 
3. there will be so many errors in the queue/ folder (~ns-allinone-2.29/ns-2.29/queue/), there may be some pointer conversion errors
Error 1:
------
queue/red.cc:877:41: error: invalid conversion from ‘const char*’ to ‘char*’
make: *** [queue/red.o] Error 1
In queue/red.cc at 874 line
Change the following to
 
if (((p = strstr(v->name(), "ave")) == NULL) &&
    ((p = strstr(v->name(), "prob")) == NULL) &&
    ((p = strstr(v->name(), "curq")) == NULL) &&
    ((p = strstr(v->name(), "cur_max_p"))==NULL) ) {
this 
if (((p = const_cast<char*>(strstr(v->name(), "ave"))) == NULL) &&
       ((p = const_cast<char*>(strstr(v->name(), "prob"))) == NULL) &&
        ((p = const_cast<char*>(strstr(v->name(), "curq"))) == NULL) &&
       ((p = const_cast<char*>(strstr(v->name(), "cur_max_p")))==NULL) ) {
 
 
Error 2:
queue/rio.cc:568:36: error: invalid conversion from ‘const char*’ to ‘char*’
queue/rio.cc:569:39: error: invalid conversion from ‘const char*’ to ‘char*’
queue/rio.cc:570:40: error: invalid conversion from ‘const char*’ to ‘char*’
queue/rio.cc:571:36: error: invalid conversion from ‘const char*’ to ‘char*’
make: *** [queue/rio.o] Error 1
 
in queue/rio.cc and in line number 565 
 find the following lines

if (((p = strstr(v->name(), "ave")) == NULL) &&
    ((p = strstr(v->name(), "in_ave")) == NULL) &&
    ((p = strstr(v->name(), "out_ave")) == NULL) &&
    ((p = strstr(v->name(), "prob")) == NULL) &&
    ((p = strstr(v->name(), "in_prob")) == NULL) &&
    ((p = strstr(v->name(), "out_prob")) == NULL) &&
    ((p = strstr(v->name(), "curq")) == NULL)) {
 
and replace these lines
if (((p = const_cast<char*>(strstr(v->name(), "ave"))) == NULL) &&
       ((p = const_cast<char*>(strstr(v->name(), "in_ave"))) == NULL) &&
        ((p = const_cast<char*>(strstr(v->name(), "out_ave"))) == NULL) &&
       ((p = const_cast<char*>(strstr(v->name(), "prob"))) == NULL) &&
        ((p = const_cast<char*>(strstr(v->name(), "in_prob"))) == NULL) &&
        ((p = const_cast<char*>(strstr(v->name(), "out_prob"))) == NULL) &&
        ((p = const_cast<char*>(strstr(v->name(), "curq"))) == NULL)) {
 
 
Error 3: 
queue/pi.cc:316:36: error: invalid conversion from ‘const char*’ to ‘char*’
queue/pi.cc:317:36: error: invalid conversion from ‘const char*’ to ‘char*’
make: *** [queue/pi.o] Error 1

in queue/pi.cc at line number 316

Find these lines and 
 
if (((p = strstr(v->name(), "prob")) == NULL) &&
    ((p = strstr(v->name(), "curq")) == NULL)) {
 
replace with these lines
 
 if (((p = const_cast<char*>(strstr(v->name(), "prob"))) == NULL) &&
        ((p = const_cast<char*>(strstr(v->name(), "curq"))) == NULL)) {
 
Error 4:

queue/vq.cc: In member function ‘virtual void Vq::trace(TracedVar*)’:
queue/vq.cc:333:35: error: invalid conversion from ‘const char*’ to ‘char*’
make: *** [queue/vq.o] Error 1

Find the following line and

if ((p = strstr(v->name(), "curq")) == NULL) {
replace this line

if ((p = const_cast<char*>(strstr(v->name(), "curq"))) == NULL) {
 
Error 5

queue/rem.cc:337:36: error: invalid conversion from ‘const char*’ to ‘char*’
queue/rem.cc:338:36: error: invalid conversion from ‘const char*’ to ‘char*’
make: *** [queue/rem.o] Error 1
In queue/rem.cc: in line number 336
Find the following lines and

if (((p = strstr(v->name(), "ave")) == NULL) &&
    ((p = strstr(v->name(), "prob")) == NULL) &&
    ((p = strstr(v->name(), "curq")) == NULL)) {
 
replace these lines
if (((p =const_cast<char*>(strstr(v->name(), "ave"))) == NULL) &&
       ((p = const_cast<char*>(strstr(v->name(), "prob"))) == NULL) &&
       ((p = const_cast<char*>(strstr(v->name(), "curq"))) == NULL)) {
 
 
Error 6: 
queue/gk.cc:207:35: error: invalid conversion from ‘const char*’ to ‘char*’
make: *** [queue/gk.o] Error 1

In queue/gk.cc in line number 207

find the following line and 
if ((p = strstr(v->name(), "curq")) == NULL) {
 replace this line
if ((p = const_cast<char*>(strstr(v->name(), "curq"))) == NULL) {
 
Step 6: Once the errors are corrected, go back to ns-allinone-2.29 and press ./install and see whether the installation is successful
Step 7: Set the PATH information in /home/pradeep/.bashrc and  execute "source .bashrc"
Check whether ns and nam are working (for me nam was not working, Since mine is ubuntu I installed NAM separately using "sudo apt-get install nam"
 
Thats all!!!!.

【NS2】Installing ns-2.29 in Ubuntu 12.04的更多相关文章

  1. 【ejabberd】安装XMPP服务器ejabberd(Ubuntu 12.04)

    ejabberd ejabberd is a free and open source instant messaging server written in Erlang/OTP. ejabberd ...

  2. 【转】Windows 7下硬盘安装Ubuntu 14.04图文教程--不错

    原文网址:http://www.linuxidc.com/Linux/2014-04/100369p3.htm Ubuntu 官方已经发布了正式版的 Ubuntu 14.04 LTS,并宣称这是为云计 ...

  3. 【转】Installing OpenCV on Debian Linux

    In this post I will describe the process of installing OpenCV(both versions 2.4.2 and 2.4.3) on Debi ...

  4. 【转】用VMware 8安装Ubuntu 12.04详细过程(图解)

    图解演示环境版本: 本机系统: WIN7 虚拟机:VMware Workstation 8 (英文版) 安装目标:Ubuntu Desktop 12.04 LTS  (请点击这里)先下载好iso镜像文 ...

  5. 【菜鸟学习Linux】-第三章- Linux环境搭建-使用VMware9安装Ubuntu 12.04系统

    上一步,我们安装了VMware9虚拟机,现在我们就是用它来安装Ubuntu12.04系统,至于Ubuntu是什么,我就不废话了,大家google一下,比我讲的清楚,好了,开始干活! Ubuntu官网下 ...

  6. OpenStack Havana 部署在Ubuntu 12.04 Server 【OVS+GRE】(三)——计算节点的安装

    序:OpenStack Havana 部署在Ubuntu 12.04 Server [OVS+GRE] 计算节点: 1.准备结点 安装好ubuntu 12.04 Server 64bits后,进入ro ...

  7. OpenStack Havana 部署在Ubuntu 12.04 Server 【OVS+GRE】(二)——网络节点的安装

    序:OpenStack Havana 部署在Ubuntu 12.04 Server [OVS+GRE] 网络节点: 1.安装前更新系统 安装好ubuntu 12.04 Server 64bits后,进 ...

  8. OpenStack Havana 部署在Ubuntu 12.04 Server 【OVS+GRE】(一)——控制节点的安装

      序:OpenStack Havana 部署在Ubuntu 12.04 Server [OVS+GRE] 控制节点: 1.准备Ubuntu 安装好Ubuntu12.04 server 64bits后 ...

  9. OpenStack Havana 部署在Ubuntu 12.04 Server 【OVS+GRE】——序

    OpenStack Havana 部署在Ubuntu 12.04 Server [OVS+GRE](一)——控制节点的安装 OpenStack Havana 部署在Ubuntu 12.04 Serve ...

随机推荐

  1. 彭亮—Python学习

    1.1 Python简单介绍 1.2 安装Python和配置环境 1.配置Python      1.1 下载Python(直接去官网下载就可以)      1.2 安装Python(点解默认安装即可 ...

  2. AGC035D

    AGC035D Add and Remove 题意 给出\(n\)个数,每次删除一个不在两端的数,然后把它的权值加到相邻的两个数上. 问操作\(n-2\)次后,所剩的两数之和的最小值 \(n\le18 ...

  3. Linux命令CURL用法

    Curl是一个命令行方式下传输数据的开源传输工具,支持多种协议包括:FTP,HTTP,HTTPS,IMAP,POP3,TELNET等.同样支持HTTP POST方法,PUT方法,FTP上传,cooki ...

  4. UVA11389 The Bus Driver Problem

        题意:有司机,下午路线,晚上路线各n个.给每个司机恰好分配一个下午路线和晚上路线.给出行驶每条路线的时间,如果司机开车时间超过d,则要付加班费d*r.问如何分配路线才能使加班费最少.   贪心 ...

  5. Tomcat7 Redis Session共享

    1.环境 服务器 centos7 tomcat 7 redis nginx 2.配置tomcat配置文件context.xml <Valve className="com.orange ...

  6. new 在C++ 中的用法

    我对C++一无所知 看参考手册 来看一下参考手册,总共有三种用法 下面是网站上给出的例子 // operator new example #include <iostream> // st ...

  7. 微信小程序--轮播图,标题,盒子,tab栏的合成例子

    小程序是什么? 微信小程序,是一种不需要下载安装即可使用的应用,用户扫一扫或搜一下即可打开应用,在微信-发现-小程序可打开应用. 一.小程序的样式编写: 目录结构: app.json { " ...

  8. Struts framework

    Struts功能详解——ActionMapping对象 Struts旅程(一)Struts简介和原理 实例讲解DispatchAction和LookupDispatchAction DispatchA ...

  9. Win7下IIS的安装配置与文件发布

    出于兴趣,抽空弄了一下Windows上的IIS,把过程记录下来与大家分享.高手请略过... 一.安装IIS.打开控制面板,单击“程序与功能” 二.点击左侧“打开或关闭Windows功能” 三.找到“I ...

  10. Django创建对象的create和save方法

    Django的模型(Model)的本质是类,并不是一个具体的对象(Object).当你设计好模型后,你就可以对Model进行实例化从而创建一个一个具体的对象.Django对于创建对象提供了2种不同的s ...