Ubuntu20.04安装NS3的3.36版本(最新版本)

1 配置虚拟机及Anaconda3

1.1 VMware安装包&Ubuntu的光盘映像文件:

下载链接: 下载Ubuntu光盘映像文件&VMware安装包的网盘链接.

1.2 VMware安装

安装链接: VMware安装的CSDN链接.

1.3 Ubuntu安装

安装链接: Ubuntu 安装的CSDN链接.

1.4 Anaconda3安装

安装链接: Anaconda3安装的CSDN链接

下载Anaconda的安装包(点击链接直接下载):Anaconda3.5.1

2 配置NS3环境

2.1 安装ns3的依赖库

(1)创建并激活虚拟环境ns3_1

conda create -n ns3_1 python=3.8.10  # 创建虚拟环境并指定python版本,其中ns3_1为虚拟环境名称。
conda activate ns3_1  # 激活并进入名为ns3_1的虚拟环境

(2)安装Python API 用户的最低要求(3.30 版及更高版本,以及 ns-3-dev):这是从已发布的压缩包中使用 Python 绑定所需的最小包集。C++用户的最低要求(3.36 版和开发):对于 ns-3-dev 和 ns-3.36(及更高版本)版本,还需要 CMake。

sudo apt-get install g++ python3 python3-dev pkg-config sqlite3 cmake

在这里插入图片描述

(3)安装NS3代码维护使用的源码版本控制管理系统

sudo apt-get install mercurial

在这里插入图片描述

(4)Netanim动画师需要qt5开发工具,对于 Ubuntu 20.10 及更早版本,单个 “qt5-default” 包就足够了。

sudo apt-get install qt5-default

在这里插入图片描述

(5)运行python绑定ns-3-dev需要bazaar这个组件。(支持bake构建工具)

sudo apt-get install autoconf cvs bzr unrar

在这里插入图片描述

(6)安装调试工具

sudo apt-get install gdb valgrind

在这里插入图片描述

(7)支持更多精确WIFI模块的GNU Scientific Library (GSL)

sudo apt-get install gsl-bin libgsl-dev libgslcblas0

在这里插入图片描述

(8)仿真必需的词法分析器和语法分析生成器,必装

sudo apt-get install flex bison libfl-dev

在这里插入图片描述

(9)一些Network Simulation Cradle (nsc) stacks需要gcc-3.4

sudo apt-get install g++-3.4 gcc-3.4

在这里插入图片描述

(10)读取pcap的packet traces,即包嗅探器

sudo apt-get install tcpdump

在这里插入图片描述

(11)支持统计特性的数据库软件

sudo apt-get install sqlite sqlite3 libsqlite3-dev

在这里插入图片描述

(12)xml的配置存储软件(requires libxml2 >= version 2.7)

sudo apt-get install libxml2 libxml2-dev

在这里插入图片描述

(13)基于GTK的配置系统

sudo apt-get install libgtk2.0-0 libgtk2.0-dev
sudo apt-get install libgtk-3-dev

在这里插入图片描述

在这里插入图片描述

(14)在虚拟机and ns-3上测试

sudo apt-get install vtun lxc uml-utilities

在这里插入图片描述

(15)支持utils/check-style.py 代码风格检查程序

sudo apt-get install uncrustify

在这里插入图片描述

(16)文档生成器,从源代码中生成说明文档

sudo apt-get install doxygen graphviz imagemagick
sudo apt-get install texlive texlive-extra-utils texlive-latex-extra texlive-font-utils dvipng latexmk

在这里插入图片描述

在这里插入图片描述

(17)The ns-3 manual and tutorial are written in reStructuredText for Sphinx (doc/tutorial, doc/manual, doc/models), and figures typically in dia:

sudo apt-get install python3-sphinx dia 

在这里插入图片描述

(18)Gustavo’s ns-3-pyviz的可视化软件

sudo apt-get install gir1.2-goocanvas-2.0 python3-gi python3-gi-cairo python3-pygraphviz gir1.2-gtk-3.0 ipython3

在这里插入图片描述

(19)支持openflow 模块(requires some boost libraries)

sudo apt-get install libxml2 libxml2-dev libboost-all-dev

在这里插入图片描述

(20)支持基于 MPI的分布式仿真

sudo apt-get install openmpi-bin openmpi-common openmpi-doc libopenmpi-dev

在这里插入图片描述

2.2 安装ns3的基础模块(Ns3_3.36的安装)

首先,ns3 在3.36版本取消了 waf.py 编译器,使用了 ns3.py 来替代,因此我们讲述不同版本的安装步骤。而且比3.33更早的版本也可以类比3.33版本的安装命令。

从官网下载选择ns3版本进行下载(可以选择3.33或3.36):官方下载地址

mkdir tarballs  # 在目录下创建新的文件夹tarballs
cd tarballs  # 进入tarballs
# 我们将下载的ns3压缩文件放到tarballs文件夹中,并解压缩
cd ns-allinone-3.36/ns-3.36  # 3.36版本
./ns3 configure --enable-examples --enable-tests  # 配置文件

在这里插入图片描述

./ns3 build  # 编译ns3

在这里插入图片描述

./test.py  # 测试

在这里插入图片描述

现在就说明安装都成功了,并且所有的单元都是完整的!

./ns3 run first  # 运行第一个脚本
./ns3 run 'first --PrintHelp'
# 进入超级用户之后无法运行脚本(Refuse to run as root)

在这里插入图片描述

2.3 NetAnim安装与启动

返回目录ns-allinone-3.33(或ns-allinone-3.36),进入目录netanim-3.108,执行下列命令编译安装

sudo make clean
sudo qmake NetAnim.pro  # NetAnim的编译安装
sudo make

在这里插入图片描述

cd ..
cd ./netanim-3.108
sudo ./NetAnim  # 启动NetAnim

打开如下仿真界面:

在这里插入图片描述

如果拥有jetbrains账号,可以使用 Clion(类似于Pycharm) 替代Eclipse。

如选择使用Clion作为编译器编译ns3,则直接跳看第5部分

3 配置Eclipse

3.1 安装JDK

JDK的tar包下载传送门

下载之后,在当前目录解压(以jdk1.8.0_333为例)。

sudo mkdir /usr/lib/jvm  # 在/usr/lib/jvm目录下新建目录
sudo mv jdk1.8.0_333 /usr/lib/jvm  # 将解压的文件移动到我们的新建目录下
sudo gedit /etc/profile  # 打开profile文件,并执行如下操作

在profile文件的结尾加上最后四行(第28行的 export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_333 是依据自己的目录下的JDk版本):
在这里插入图片描述

source ~/.bashrc  # 让环境生效
echo $JAVA_HOME  # 判断JDK是否生效
java -version  # 查看java是否安装成功

在这里插入图片描述

3.2 安装eclipse

下载eclipse安装包: Eclipse下载链接

版本选择:Eclipse IDE for C/C++ Developers,Linux x86_64(基于自身需求,C/C++适合这个)。下载不要直接点download,先选择换一个镜像(>> Select Another Mirror),选择中国内陆的任意一个地址去下载会快一些。

mkdir /opt  # 新建目录,并把我们下载的tar包解压出的eclipse文件夹放到新建目录
sudo gedit /usr/share/applications/eclipse.desktop  # 打开eclipse.desktop文件添加以下内容

打开eclipse.desktop文件添加以下内容:

[Desktop Entry]
Encoding=UTF-8
Name=Eclipse
Comment=Eclipse
Exec=/opt/eclipse/eclipse
Icon=/opt/eclipse/icon.xpm
Terminal=false
StartupNotify=true
Type=Application
Categories=Application;Development;

root权限下输入以下指令赋予图标可执行权限:

sudo chmod u+x /usr/share/applications/eclipse.desktop

(1)在显示应用程序那里可以找到eclipse的图标,并可以打开:

在这里插入图片描述

(2)双击图标可以打开Eclipse界面:

在这里插入图片描述

4 在Eclipse中编译ns3(3.36版本)

4.1 创建ns3工程

4.1.1 新建ns3空工程

File —> new —> C/C++ project
在这里插入图片描述

4.1.2 选择C++ Managed Build

在这里插入图片描述

4.1.3 按照如下图创建empty工程“ns3_3.36”(名称按自己版本而定)

参考书上是使用在默认位置,勾选 “ Use default location ” ,创建的C++工程,然后移动我们安装好的NS3,会出现 CMake Error 问题(尽量不要移动或改变配置好的NS3的目录)。

所以:我们取消 “ Use default location ” 的勾选,选择如图 /home/wqf/tarballs/ns-allinone-3.36 目录下的ns-3.36作为 project 创建位置,此时 project name 根据喜好设置(如图是:ns3_3.36)。

在这里插入图片描述

4.2 设置eclipse中ns-3编译器

在 Project Explorer 中选中ns3上单击右键,选择properties,得到的界面如下,按照界面上所示配置如下:

4.2.1 Build Setting选项卡

# 所用到的命令
# 如果是3.36版本,则输入如下
${
    
    workspace_loc:/ns3_3.36/ns3}
${
    
    workspace_loc:/ns3_3.36/build}

以3.36为例如图:

在这里插入图片描述

4.2.2 Behaviour选项卡

在这里插入图片描述

配置完毕点击点击Apply and Close,则开始编译。

4.3 设置eclipse执行程序使用外部工具

4.3.1 选择Run—>External Tools—>External tools Configurations

在这里插入图片描述

4.3.2 之后在Program中右键选择New,按下图配置信息,并单机 " Run "

在这里插入图片描述

# 3.36版本所用到的命令(方便复制)
${
    
    workspace_loc:/ns3_3.36/ns3}
${
    
    workspace_loc:/ns3_3.36}
run "${string_prompt}"

在这里插入图片描述

4.4 程序运行

先选择Run—>External Tools—>ns3-waf,即我们刚刚设置的eclipse外部工具。

在这里插入图片描述

然后就会出现一个 “ Variable Input ” 的输入框。

4.4.1 ns3_3.36运行程序 first.cc

本节(1)和(2)是并行的。

在3.36版本中,无需再将所要运行的程序放到scratch文件夹中,直接可以搜索到要运行的文件名称所在位置的文件。

因此我们在**“ Variable Input ”** 的输入框中输入first(省略后缀.cc)选择" OK ",则完成仿真。

在这里插入图片描述
在这里插入图片描述

至此,我们成功配置了在eclipse中编译ns-3,于是可以告别Linux里不太熟悉的开发环境,享有eclipse一切方便工具!

5 配置Clion编译ns3

在官网下载安装好Clion之后,在左上角打开project,找到目录 /home/wqf/tarballs/ns-allinone-3.36 下的ns-3.36并打开。

按照界面上所示配置如下:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
其中,“CMake options” 栏的配置如下方所示。

-DNS3_EXAMPLES=ON
-DNS3_TESTS=ON
-DNS3_WARNINGS_AS_ERRORS=ON
-DNS3_NATIVE_OPTIMIZATIONS=OFF
-DNS3_PYTHON_BINDINGS=ON
-DNS3_ASSERT=ON
-DNS3_LOG=ON

在这里插入图片描述
与此同时,我们需要设置一下环境变量,否则我们的CMake找不到pybindgen,就会出现问题。

我们配置如下:

在这里插入图片描述
其中,NameValue分别如下:

PYTHONPATH
/home/wqf/tarballs/ns-allinone-3.36:/home/wqf/tarballs/ns-allinone-3.36/pybindgen-0.22.1

6 补充:NS3添加模块

在上述都安装完成之后,我们如果写了一个新的模块。

(1)首先复制粘贴在 ./ns3_3.36/src 目录下。

(2)通过命令 ./ns3 configure --enable-examples --enable-tests 再次配置一下,待完成后,即可再次运行 ./ns3_3.36/src/modulename/examples 下的程序。

(3)可以直接在上方工具栏选择我们的外部工具进行运行,位置如图。(Eclipse

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_53273581/article/details/124848777