这是我第100次重装DTN了,再装就自杀。

系统:Ubuntu16.04LTS
ns3版本:3.22
装完系统直接装ns3,为防止版本支持问题,用的老版本系统+软件。

1 更改镜像源

习惯性装完系统先改成清华镜像源已备不测
(1)备份原来的源

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

(2)打开源文件

sudo gedit /etc/apt/sources.list

(3)复制源

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse

(4)保存退出,并更新源

sudo apt-get update
sudo apt-get upgrade

2 下载NS3和DTN源码

NS3源码:https://www.nsnam.org/releases/ns-3-22/
DTN源码:http://www.netlab.tkk.fi/tutkimus/dtn/ns/
下载会比较慢,在等上一步upgrade的时候就可以开始下载了。

3 安装必备依赖项

依赖项全不全决定了编译结束后会缺失哪些模块,其他模块不知道有什么用,但是visualizer模块会用到而且可能会因为装的不全而缺失。
这步可以用管理员权限执行,更方便。

sudo su

以下内容一行一行复制进去,用上面更新的清华源下载,基本不会遇到问题。(也许可能还是会有一两个问题吧,不过问题不大应该)。

apt-get install gcc g++ python
apt-get install gcc g++ python python-dev
apt-get install python-setuptools git mercurial
apt-get install qt5-default mercurial
apt-get install python-pygraphviz python-kiwi python-pygoocanvas libgoocanvas-dev ipython
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 doxygen graphviz imagemagick
apt-get install texlive texlive-extra-utils texlive-latex-extra texlive-font-utils texlive-lang-portuguese dvipng latexmk
apt-get install python-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
pip install cxxfilt
apt-get install libgtk2.0-0 libgtk2.0-dev
apt-get install vtun lxc
apt-get install libboost-signals-dev libboost-filesystem-dev

4 编译NS3

退出sudo su模式。不退不影响安装,但是安装完成后会有权限问题,所有指令都需要sudo才可以运行,且文件夹图标上显示带锁(似乎也可以装完修改权限)。建议退出。
home目录下新建文件夹ns3,解压 ns-allinone-3.22.tar.bz2并将其内容全部提取至ns3文件夹中
在ns3文件夹下打开命令行,输入

./build.py --enable-examples --enable-tests
cd ns-3.22
./waf clean
./waf -d optimized --enable-examples --enable-tests configure
./waf clean
./waf -d debug --enable-examples --enable-tests configure
./waf
./test.py -c core

5 编译DTN

在ns3/ns-3.22/examples目录下新建文件夹DTN_SF_UDP,将下载的ns3dtn.tar.gz解压并全部提取至该文件夹下。
将该文件夹下刚解压出的regular-wifi-mac.h和mac-low.cc文件移动(剪切)到 …/…/src/wifi/model目录中,并替代当前文件。
在ns3/ns3.22目录下打开命令行,开始编译,输入:

./waf

编译结束后,我的模块编译情况如图:

6 测试一下

进入ns3/ns-3.22/examples/DTN_SF_UDP文件夹中,将里面的轨迹文件sf_downtown_nodes116_time3600.tcl移动(剪切)到他的上一级目录中。
打开DTN_SF_UDP文件夹,打开simulate.sh文件,将其中的tracedir和thisdir根据自己的计算机名字改成自己的目录。比如我的:

tracedir='/home/xzh/ns3/ns-3.22/examples'
thisdir='/home/xzh/ns3/ns-3.22/examples/DTN_SF_UDP'

并改一下文件中的参数,把duration(仿真时间)改成100。在该文件夹中打开命令行,输入:

./simulate.sh

即可测试。如果没有报错,且过了几分钟后他才运行完,那就没问题啦!

可能遇到的错误: 如果编译软件时是在sudo中编译的,则后续操作均需加上sudo。
simulate如果完成的太快,命令行没报错,但是打开Run1中的文件,会发现文件中有报错信息。

基于ns-3的DTN code安装教程相关推荐

  1. Visual Studio Code 安装教程2021版

    Visual Studio Code 安装教程2021版 下载Visual Studio Code 1:官网下载 2:网盘下载 开始安装 1:双击下载后的可执行文件,安装 2:勾选同意,然后点击下一步 ...

  2. Visual Studio Code安装教程(超详细)

    网盘自取:https://pan.baidu.com/s/1BQDyf7uqQopJ3UUZnQ0E6g  提取码:2022 点击VSCodeSetup-x64进行安装 弹出安装向导,勾选我同意,点击 ...

  3. Visual Studio Code (VS Code)安装教程

    step1:安装VS Code VS Code的官网: https://code.visualstudio.com/ 在官网下载速度太慢,只有几十 Kb/s,要下载几十分钟. 将下载链接中的" ...

  4. VS Code安装教程

    一.下载 1.官网 下载地址 2.下载 根据自己电脑型号下载,此处以Windows为例. 二.安装 1.下载完成后,直接点击安装包安装,即可. 2.开始安装,然后下一步 3.可以在此处自定义地址,然后 ...

  5. LaTeX:基于Windows10的LaTeX套装详细安装教程(TeXLive2020+TeXstudio+sumatraPDF)

    1. 前言 此文写于小美赛(APMCM)前几天,今天latexstudio发布了APMCM的LaTeX写作模板,模板要求使用TeXLive2020进行编译,这让我想继续使用TeXLive2019继续混 ...

  6. 前端开发神器VS Code安装教程

    ✅作者简介:CSDN一位小博主,正在学习前端

  7. Code Composer Studio 安装教程与入门

    实验一 Code Composer Studio 安装教程与入门 一.实验目的 1.掌握 Code Composer Studio v5 的安装和配置步骤过程. 2.了解 DSP 开发系统和计算机与目 ...

  8. Visual Studio Code安装(软件及插件)教程

    官网下载地址https://code.visualstudio.com/Download 百度网盘下载链接分享 链接:https://pan.baidu.com/s/1fTb4aG91N_Z-3VGk ...

  9. QT Designer + VS Code + PyQt5 安装教程

    QT Designer + VS Code + PyQt5 安装教程 一.安装环境 二.VS Code安装及配置 1.下载安装包 2.安装软件 3.VS Code基本配置 4.VS Code配置PyQ ...

最新文章

  1. JBPM4常见错误汇总
  2. DNS部署(四)之lvs+keepalived+bind架构高可用负载均衡DNS系统
  3. python 怎么判断文件存在哪里_Python判断文件和文件夹是否存在的方法
  4. 卷积神经网络——第一周 卷积神经网络基础——第三部分
  5. pandas错误之: in pandas._libs.hashtable.PyObjectHashTable.get_item
  6. [转载] Python列表拷贝复制函数copy()函数的作用
  7. 比尔盖茨这样审查项目 1
  8. Windows7系统下OpenCV2.4.4+PCL1.6.0+SSBA3.0+VS2010 IDE32环境下编译和安装以实现Sfm和PCL点云数据可视化...
  9. 优惠券玩法解说 JAVA优惠券商城系统开发
  10. python工程师面试题
  11. 获取本地视频url的方法
  12. 眼镜商城开发,让眼镜世界更丰富
  13. dingo php,dingo/api 使用
  14. 概率论学习一——公理化定义及古典概型
  15. 多人连线的枪战游戏-补充
  16. 2018双11万家互联网门店参战:看苏宁的撩人新姿势
  17. Android 11.0 任务栏中清除掉播放器的进程,状态栏仍有音乐播放器状态问题的解决
  18. 工程热力学学习笔记DE-2. Erster Hauptsatz der Thermodynamik
  19. 【资讯】2017年乌镇互联网大会,互联网大佬们齐聚首
  20. c++中字符数组与字符串的转换

热门文章

  1. Python公司年会抽奖
  2. 【Journal of Computer-Aided Design Computer Graphics】基于生成对抗网络的行人重识别方法研究综述
  3. [BZOJ3639][LCT]Qtree7
  4. Detailed analysis for runtime exception vector table and handler in TFA
  5. 八、Atlassian JIRA项目管理工具
  6. 字“姐“跳动,学习心得
  7. Java多个ppt合并脚本_Apache POI PPT - 合并
  8. 想学习软件测试,有没有靠谱的培训机构
  9. html判断是否有滚动条,JS 判断元素是否可以滚动
  10. lorawan在无线远传智能水表中的应用