NS3学习笔记:安装NS3

独自空忆成欢 提交于 2020-01-19 01:12:43

安装NS-3.29
运用平台:ubuntu18.04.1
选择安装的版本是ns-3.29
主要参考链接是:ns-3官方网站指导下载链接
该链接里针对的ubuntu版本是19.04

  1. 准备工作,下载各种依赖包

    ①安装python相关依赖包
    apt-get install gcc g++ python python3
    apt-get install gcc g++ python python3 python3-dev
    apt-get install python3-setuptools git mercurial
    ②. Netanim动画
    apt-get install qt5-default mercurial
    ③. 支持ns-3-pyviz可视化工具 针对3.29版本的
    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
    apt-get install texlive texlive-extra-utils texlive-latex-extra texlive-font-utils texlive-lang-portuguese 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绑定
    apt-get install cmake libc6-dev libc6-dev-i386 libclang-6.0-dev llvm-6.0-dev automake pip 
    python3 -m pip install --user cxxfilt
    (在这一步时:我无法下载pip,下载了python3-pip,暂不清楚是否对后续操作有影响)
    ⑭. 基于GTK的配置系统
    apt-get install libgtk2.0-0 libgtk2.0-dev
    ⑮. 试验虚拟机和ns-3
    apt-get install vtun lxc uml-utilities
    ⑯. 支持openflow模块(需要一些boost库)
    apt-get install libboost-signals-dev libboost-filesystem-dev

这个过程特别耗时,要有耐心,出现错误不慌。
上述命令合集,可以写成一个shell脚本,来简化步骤,但还是建议一步一步操作比较好,防止出现奇奇怪怪的错误:

#!/bin/bash
 apt-get install gcc g++ python python3 
 apt-get install gcc g++ python python3 python3-dev
 apt-get install python3-setuptools git mercurial
 apt-get install qt5-default mercurial
 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
 apt-get install openmpi-bin openmpi-common openmpi-doc libopenmpi-dev
 apt-get install autoconf cvs bzr unrar
 apt-get install gdb valgrind
 apt-get install uncrustify
 apt-get install texlive texlive-extra-utils texlive-latex-extra texlive-font-utils texlive-lang-portuguese dvipng latexmk
 apt-get install python3-sphinx dia
 apt-get install gsl-bin libgsl-dev libgsl23 libgslcblas0
 apt-get install tcpdump
 apt-get install sqlite sqlite3 libsqlite3-dev
 apt-get install libxml2 libxml2-dev
 apt-get install cmake libc6-dev libc6-dev-i386 libclang-6.0-dev llvm-6.0-dev  automake pip 
 python3 -m pip install --user cxxfilt
 apt-get install libgtk2.0-0 libgtk2.0-dev
 apt-get install vtun lxc uml-utilities
 apt-get install libboost-signals-dev libboost-filesystem-dev

在安装ns-3之前,你可以用bake工具来检查一下,是否有环境缺失,但最好不用用bake工具来安装编译ns-3,比较麻烦,容易出错。
使用bake工具检查环境缺失可参考链接:检查ns-3安装的环境

  1. 安装ns-3.29
    完成上述依赖包下载之后,直接下载tar压缩包(推荐使用,最简单直接)
    如果你要下载其他版本,直接改版本号。
mkdir ns-3
cd ns-3
wget https://www.nsnam.org/release/ns-allinone-3.29.tar.bz2
tar -jxvf ns-allinone-3.29.tar.bz2
  1. 编译ns-3
    对于第一次下载ns-3源码的用户,一个比较好的方法是运行ns-allinone目录下的build.py脚本,可以一次性编译ns-3和其他辅助项目,这个过程很久,我花了大概两个小时。
build.py --enable-example

编译完成后的信息显示如下:
'build’finished successfully
Modules built:
antenna aodv applications
bridge buildings config-store
core csma csma-layout
dsdv dsr energy
fd-net-device flow-monitor internet
internet-apps lr-wpan lte
mesh mobility mpi
netanim (no Python) network nix-vector-routing
olsr point-to-point point-to-point-layout
propagation sixlowpan spectrum
stats tap-bridge test (no Python)
topology-read traffic-control uan
virtual-net-device wave wifi
wimax

Modules not built (see ns-3 tutorial for explanation):
brite click openflow
visualizer

未编译部分一般需要第三方库的支持,可以在后序按需添加。如果编译出错, 请返回第一步看是否有依赖包没有安装。

4.运行验证是否安装好了
进入ns-3.29目录下,运行实例代码hello-simulator

./waf --run hello-simulator

运行成功的话,屏幕打印出‘Hello Simulator’
运行到此,基本没什么问题了。

为了让用户能够完全验证ns-3能否正常工作,ns-3项目自带了test.py脚本(位于ns-3.29目录下),运行该脚本可以对ns-3的各个模块进行逐一测试,用时特别久。

其次注意waf命令有个缺陷是只能在ns-3.29中运行。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!