下载链接: 下载Ubuntu光盘映像文件&VMware安装包的网盘链接.
安装链接: VMware安装的CSDN链接.
安装链接: Ubuntu 安装的CSDN链接.
安装链接: Anaconda3安装的CSDN链接
下载Anaconda的安装包(点击链接直接下载):Anaconda3.5.1
(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
首先,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)
返回目录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部分。
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是否安装成功
下载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界面:
参考书上是使用在默认位置,勾选 “ 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)。
在 Project Explorer 中选中ns3上单击右键,选择properties,得到的界面如下,按照界面上所示配置如下:
# 所用到的命令
# 如果是3.36版本,则输入如下
${workspace_loc:/ns3_3.36/ns3}
${workspace_loc:/ns3_3.36/build}
以3.36为例如图:
配置完毕点击点击Apply and Close,则开始编译。
# 3.36版本所用到的命令(方便复制)
${workspace_loc:/ns3_3.36/ns3}
${workspace_loc:/ns3_3.36}
run "${string_prompt}"
先选择Run—>External Tools—>ns3-waf,即我们刚刚设置的eclipse外部工具。
然后就会出现一个 “ Variable Input ” 的输入框。
本节(1)和(2)是并行的。
在3.36版本中,无需再将所要运行的程序放到scratch文件夹中,直接可以搜索到要运行的文件名称所在位置的文件。
因此我们在**“ Variable Input ”** 的输入框中输入first(省略后缀.cc)选择" OK ",则完成仿真。
至此,我们成功配置了在eclipse中编译ns-3,于是可以告别Linux里不太熟悉的开发环境,享有eclipse一切方便工具!
在官网下载安装好Clion之后,在左上角打开project,找到目录 /home/wqf/tarballs/ns-allinone-3.36 下的ns-3.36并打开。
按照界面上所示配置如下:
至此,Clion配置完毕。
在上述都安装完成之后,我们如果写了一个新的模块。
(1)首先复制粘贴在 ./ns3_3.36/src 目录下。
(2)通过命令 ./ns3 configure --enable-examples --enable-tests 再次配置一下,待完成后,即可再次运行 ./ns3_3.36/src/modulename/examples 下的程序。
(3)可以直接在上方工具栏选择我们的外部工具进行运行,位置如图。(Eclipse)