0
点赞
收藏
分享

微信扫一扫

Ubuntu下安装NS3

微言记 2022-01-28 阅读 47

Ubuntu下使用bake安装NS3

ns3让我不得不爱,初次接触ns3,望与同学能够一同学习探讨!

【注】以下操作参考于NS官网:
https://www.nsnam.org/wiki/Installation#Installation

1)平台选择

在此选择Ubuntu进行操作:

依赖包下载,由于软件包较多,将其安装命令写入shell脚本,并加入自动确认-y,然后执行脚本。
【注】若嫌速度较慢,可先进行换源。

 #! /usr/bin
 apt-get install -y g++ python3 cmake		#ns3的内核是使用C++开发的
 apt-get install -y g++ python3 python3-dev pkg-config sqlite3 cmake
 apt-get install -y python3-setuptools git
 apt-get install -y qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools		#Netanim animator: Netanim animator需要qt5开发工具
 
 #支持 ns-3-pyviz 可视化工具
 #对于 Ubuntu 18.04 及更高版本,不再提供 python-pygoocanvas。ns-3.29 及更高版本将支持升级到 GTK+ 版本 3,并需要以下软件包:
 apt-get install -y gir1.2-goocanvas-2.0 python3-gi python3-gi-cairo python3-pygraphviz gir1.2-gtk-3.0 ipython3  
 
  #支持基于 MPI 的分布式仿真
  apt-get install -y openmpi-bin openmpi-common openmpi-doc libopenmpi-dev
  
  #支持基于bake 构建的
  apt-get install -y autoconf cvs bzr unrar
  
  apt-get install -y gdb valgrind 
  apt-get install -y doxygen graphviz imagemagick
  apt-get install -y texlive texlive-extra-utils texlive-latex-extra texlive-font-utils dvipng latexmk
  
  #ns-3 手册和教程
  apt-get install -y python3-sphinx dia 
  
  #GNU 科学库 (GSL) 支持更准确的 802.11b WiFi 错误模型(OFDM 不需要):
  apt-get install -y gsl-bin libgsl-dev libgslcblas0
  
  apt-get install -y tcpdump		#读取 pcap 数据包跟踪
  apt-get install -y sqlite sqlite3 libsqlite3-dev		#统计框架的数据库支持
  apt-get install -y libxml2 libxml2-dev		#基于 XML 的配置存储版本(需要 libxml2 >= 2.7 版)
  
  #支持生成修改后的 python 绑定
  apt-get install -y cmake libc6-dev libc6-dev-i386 libclang-dev llvm-dev automake python3-pip 
 python3 -m pip install --user cxxfilt
 
 apt-get install -y libgtk-3-dev		#基于 GTK 的配置系统
 apt-get install -y vtun lxc uml-utilities		#试验虚拟机和 ns-3
 apt-get install -y  libxml2 libxml2-dev libboost-all-dev	#支持 openflow 模块
 
 apt-get install -y mercurial		#Mercurial 需要与 ns-3 开发存储库一起使用。
 apt-get install -y python-dev		#

2) 安装

使用 Bake 安装: Bake 是一个新工具,用于在自己的环境中安装、构建和查找 ns-3 缺失的要求。

此方法就一个字 : 慢
但是,方便不用自己再有啥过多的操作。

首先下载git

 git clone https://gitlab.com/nsnam/bake.git

添加相关路径

 export BAKE_HOME=`pwd`/bake 
 export PATH=$PATH:$BAKE_HOME
 export PYTHONPATH=$PYTHONPATH:$BAKE_HOME

然后进行检测

bake.py check

配置 bake 以告知它您要添加到 ns-3 的模块

bake.py configure -e ns-3.29

【注】在此可能会出现些许问题:

Problems writing the file, error: [Errno 13] Permission denied: '/ns3/bake/bakefile.xml'

在这里插入图片描述

(1) 若所在目录下没有该文件,利用touch进行创建即可。
(2) 遇到Permission denied:这种情况,是因为请求的文件或者文件夹没有权限导致服务器拒绝了请求。简单直接的方法就是su root 切换到root下进行操作。


然后要查看它添加的模块,以及此配置的具体系统要求,可以调用 bake show:

bake.py show	

#并且可以在此选项中看到此具体系统要求,下载相关模块

若此时仍然有依赖包需要安装,按照提示下载即可。
在这里插入图片描述


下载模块、构建和安装,调用 bake deploy:

 bake.py deploy

但此时的ns-3.29下载失败(我认为是网络问题)

 >> Downloading ns-3.29 - Problem
 > Error:  Critical dependency, module "ns-3.29" failed 
   For more information call Bake with --debug and/or -v, -vvv, for full verbose mode (bake --help)

在这里插入图片描述
那么选择另一种方法进行ns的下载(Using Git)
https://www.nsnam.org/wiki/Installation#Installation_with_Bake

git clone https://gitlab.com/nsnam/ns-3-allinone.git

然后下载相应的版本

 ./download.py -n ns-3.29

下载成功后就要进行 build

 ./build.py

bake正常流程:下载选定的模块及其所有依赖项,并使用所有这些独立模块构建 ns-3

  bake.py download
  bake.py build

3)测试

【注】以下操作均在下载好的ns3里面去进行!

(1)使用test.py测试

./test.py -c core

可以看到,如下图所示:
在这里插入图片描述

(2)运行脚本测试

./waf --run scratch-simulator

若输出如下图内容,即说明安装成功!
在这里插入图片描述
若此步出现问题,即只有 ‘ build finished ’ , 而没有输出东西,那么就要重新配置编译 ns3

./waf -d debug --enable-examples --enable-tests configure
./waf

然后重新执行程序看是否输出结果。

举报

相关推荐

0 条评论