一、安装依赖库
- 请以官网为准:https://www.nsnam.org/wiki/Installation#Ubuntu.2FDebian.2FMint
- 有几个地方需要自己改一下,我在下面标了
- 建议全程使用root用户进行安装,否则自行添加 sudo
- 安装C++和python3(其实ubuntu 20.04已经内置了)
apt-get install g++ python3
- 如果你要安装的版本是3.30或3.31或ns-3-dev,你还需要安装(推荐安装)
apt-get install python3-dev pkg-config sqlite3
- 对Python(开发)的最低要求:为了使用ns-3-allinone存储库(从Git克隆),需要其他软件包才能获取并成功安装pybindgen和netanim。
apt-get install python3-setuptools git
- qt5
apt-get install qt5-default mercurial
- ns-3-pyviz可视化工具的依赖(安装失败也没事儿,这个以后再说)
- 对于ns-3.28和更早的版本,PyViz基于GTK + 2,GooCanvas和GraphViz:
apt-get install python-pygraphviz python-kiwi python-pygoocanvas libgoocanvas-dev ipython
- 对于Ubuntu 18.04,不再提供python-pygoocanvas。 ns-3.29和更高版本将支持升级到GTK +版本3,并且需要以下软件包:
apt-get install gir1.2-goocanvas-2.0 python-gi python-gi-cairo python-pygraphviz python3-gi python3-gi-cairo python3-pygraphviz gir1.2-gtk-3.0 ipython ipython3
- 基于MPI的分布式仿真的依赖
apt-get install openmpi-bin openmpi-common openmpi-doc libopenmpi-dev
- bake构建工具的依赖:
apt-get install autoconf cvs bzr unrar
- 调试
apt-get install gdb valgrind
- utils / check-style.py代码样式检查程序的依赖
apt-get install uncrustify
- Doxygen和相关的在线文档:
apt-get install doxygen graphviz imagemagick
apt-get install texlive texlive-extra-utils texlive-latex-extra texlive-font-utils dvipng latexmk
- ns-3手册和教程使用Sphinx的reStructuredText(doc / tutorial,doc / manual,doc / models)编写,并且图形通常以dia(还需要上面的texlive软件包)编写:
apt-get install python3-sphinx dia
- GNU科学库(GSL)支持更精确的802.11b WiFi错误模型(OFDM不需要):
apt-get install gsl-bin libgsl-dev libgsl23 libgslcblas0
- 读取pcap数据包跟踪
apt-get install tcpdump
- 数据库对统计框架的支持
apt-get install sqlite sqlite3 libsqlite3-dev
- 配置存储的基于Xml的版本(需要libxml2> =版本2.7)
apt-get install libxml2 libxml2-dev
- 支持生成修改后的python绑定(这步官网是安装的pip,但是现在一般都是python3,ubuntu20.04已经不支持pip,所以这里我换成了python3的pip)
apt-get install cmake libc6-dev libc6-dev-i386 libclang-6.0-dev llvm-6.0-dev automake python3-pip
python3 -m pip install --user cxxfilt
- 基于GTK的配置系统
apt-get install libgtk-3-dev
- 实验虚拟机和ns-3
apt-get install vtun lxc uml-utilities
- 支持openflow模块(需要一些boost库)官网还要安装libboost-signals-dev,但是无论是ubuntu官网还是网上,都没有有关这个的信息,然后网上说openflow这个可以不安,所以对于libboost-signals-dev,有需要的自行解决
apt-get install libboost-filesystem-dev
二、安装 NS3
- 创建Tarballs目录
mkdir tarballs
- 进入目录
cd tarballs
- 下载压缩包
wget http://www.nsnam.org/release/ns-allinone-3.31.tar.bz2
- 解压
tar xjf ns-allinone-3.31.tar.bz2
三、编译 NS3
- 编译文件(设置允许测试)
sudo ./build.py --enable-examples --enable-tests
四、测试
1. 清除 build 目录
cd ns-3.31
./waf distclean
2. 打开 debug 并开启例子及帮助
./waf configure --build-profile=debug --enable-examples --enable-tests
./waf build
3. 可通过运行./test.py -c core来进行测试
./test.py -c core
4. 运行一个经典的脚本
./waf --run hello-simulator
六、ERROR
1. 若看不到输出,则按照如下配置
./waf configure --build-profile=debug --enable-examples --enable-tests
2. 如果出现错误
Build failed
-> task failed (exit status 1):
解决办法:将虚拟机内存调大,即可;
参考:https://youwolf.cn/?p=514