目录
- 1.安装必要编译工具
- 2.安装tcl8.5
- 3.安装tk8.5
- 4.安装gcc5
- 4.1检查gcc版本
- 4.2安装gcc5
- 4.3更改gcc/g++优先级
- 5.安装ns2
- 6.配置环境变量
- 7.测试ns2
此教程适用于ubuntu系统和国产的统信UOS操作系统,不过在使用UOS时,安装第三方软件需要打开开发者模式
。
1.安装必要编译工具
sudo apt-get install build-essential -y
sudo apt-get install libxmu-dev libxmu-headers -y
2.安装tcl8.5
cd ~
wget https://udomain.dl.sourceforge.net/project/tcl/Tcl/8.5.19/tcl8.5.19-src.tar.gz
tar -zxvf tcl8.5.19-src.tar.gz
cd tcl8.5.19/unix
./configure
make
sudo make install
3.安装tk8.5
cd ~
wget https://udomain.dl.sourceforge.net/project/tcl/Tcl/8.5.19/tk8.5.19-src.tar.gz
tar -zxvf tk8.5.19-src.tar.gz
cd tk8.5.19/unix
./configure
make
sudo make install
4.安装gcc5
4.1检查gcc版本
编译ns2需要gcc版本为gcc5,先查看当前的gcc版本
gcc -v
可以看到当前版本为8.3.0
Thread model: posix
gcc version 8.3.0 (Uos 8.3.0.9-1+eagle)
如果是gcc5版本,可以继续安装,进行第5步,如果不是,继续使用此版本安装ns2会出现如下错误,所以我们先安装gcc5。
4.2安装gcc5
先执行
sudo apt-get install gcc-5 gcc-5-multilib g++-5 g++-5-multilib
如果自带的软件源中没有gcc5,会出现如下错误:
可以临时替换ubuntu 18.04的软件源来安装。
编辑/etc/apt/sources.list
文件
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo nano /etc/apt/sources.list
在文件末尾添加
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
然后按Ctrl + O
保存后按Ctrl + X
退出编辑器。
先更新软件源
sudo apt update
更新时会报错:
InRelease: 由于没有公钥,无法验证下列签名: NO_PUBKEY 3B4FE6ACC0B21F32
安装证书
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 3B4FE6ACC0B21F32
安装完成后执行以下命令完成gcc5的安装
sudo apt update
sudo apt-get install gcc-5 gcc-5-multilib g++-5 g++-5-multilib
安装完成后需要恢复原来胡/etc/apt/sources.list
文件
sudo mv /etc/apt/sources.list.bak /etc/apt/sources.list
4.3更改gcc/g++优先级
安装完成后需要更改优先级
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 40
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 50
接着输入
sudo update-alternatives --config gcc
可以看到
有 2 个候选项可用于替换 gcc (提供 /usr/bin/gcc)。
选择 路径 优先级 状态
------------------------------------------------------------
* 0 /usr/bin/gcc-8 50 自动模式
1 /usr/bin/gcc-5 40 手动模式
2 /usr/bin/gcc-8 50 手动模式
要维持当前值[*]请按<回车键>,或者键入选择的编号:
要想用哪个gcc就输入编号吧,在这里输入gcc-5
的编号1
后回车。
同样也要设置一下g++的
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 40
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-8 50
接着输入
sudo update-alternatives --config g++
可以看到
有 2 个候选项可用于替换 g++ (提供 /usr/bin/g++)。
选择 路径 优先级 状态
------------------------------------------------------------
* 0 /usr/bin/g++-8 50 自动模式
1 /usr/bin/g++-5 40 手动模式
2 /usr/bin/g++-8 50 手动模式
要维持当前值[*]请按<回车键>,或者键入选择的编号:
要想用哪个gcc就输入编号吧,在这里输入g++-5
的编号1
后回车。
5.安装ns2
cd ~
wget https://udomain.dl.sourceforge.net/project/nsnam/allinone/ns-allinone-2.35/ns-allinone-2.35.tar.gz
tar -zxvf ns-allinone-2.35.tar.gz
cd ns-allinone-2.35
sudo ./install
当出现如下错误时
linkstate/ls.h:137:25: note: use ‘this->erase’ instead
make: *** [Makefile:94:linkstate/ls.o] 错误 1
Ns make failed!
需要修改第137行中的内容,执行
sudo sed -i '137c void eraseAll() { this->erase(baseMap::begin(), baseMap::end()); }' ns-2.35/linkstate/ls.h
可快速修改修改。
修改完成后再次执行
sudo ./install
即可完成安装,如下图所示。
6.配置环境变量
编辑/home/.bashrc
文件
sudo nano ~/.bashrc
在文件末尾加入
export PATH=$PATH:$HOME/ns-allinone-2.35/bin:$HOME/ns-allinone-2.35/tcl8.5.10/unix:$HOME/ns-allinone-2.35/tk8.5.10/unix
export LD_LIBRARY_PATH=$HOME/ns-allinone-2.35/otcl-1.14:$HOME/ns-allinone-2.35/lib
export TCL_LIBRARY=$HOME/ns-allinone-2.35/tcl8.5.10/library
后保存退出。
7.测试ns2
按Ctrl + Alt + T
打开一个新终端,输入
cd ~/ns-allinone-2.35/ns-2.35/tcl/ex
ns example.tcl
ns nam-example.tcl
分别可以看到
0 delay=0
1 delay=0.075198896355555836
2 delay=0.14036090311111046
3 delay=0.18700956444444308
4 delay=0.23536785066666494
5 delay=0.28330976711111172
6 delay=0.33064953742222519
7 delay=0.37698112284444979
8 delay=0.42498596977778563
9 delay=0.47332022613335162
10 delay=0.52062097066669533
11 delay=0.56711607751114967
12 delay=0.61545838933338282
13 delay=0.66368562631117112
14 delay=0.71083429546673627
15 delay=0.75707166151118865
16 delay=0.80554185955564217
17 delay=0.85349646222230757
18 delay=0.90085145600008143
19 delay=0.94752994986674266
和
证明ns安装成功,到此安装完成!