ubuntu20.04安装ns3环境笔记

随着ns3的进步,bake编译给ns3编译带来了很大的方便!!!
下面总结了两种ns3的依赖安装方法:bake、手动安装依赖。强推bake,试了bake再也不想手动安装了。

零、bake安装ns3依赖

之前自己安装一步步依赖,现在回看过来实在是有点麻烦,ns3出了新的安装工具:bake,非常简单的安装步骤,帮助安装ns3不同版本的依赖,参考链接:ns3官方安装教程
使用bake安装ns3的过程就在这个官方安装教程的Installation中,官方描述的步骤已经非常清晰了。位置如下图:
在这里插入图片描述
在这里插入图片描述

本人使用bake安装的过程十分丝滑,没有什么要注意的,如果过程中出现报错,考虑是否是文件目录错误,读取不了上层文件。

另外,就是在bake.py configure -e ns-3.29时,注意一下这里官方文档以3.29为例,你想安装3.35就把3.29替换成3.35就行了。改成:

bake.py configure -e ns-3.35

安装完成后,会在虚拟机的bake同级目录下创建一个source文件夹,用于存储不同的ns3不同版本的源码。
在这里插入图片描述
例如,使用bake安装ns3.35的所有依赖后,需要运行ns3.35版本之上写的源码,那只需要将该源码放在source中,就可以运行了。

如果出现ns3.35build successfully,而基于ns3.35版本之上写的源码build failed,那么十有八九就是该源码还需要安装其他依赖,看一下这个源码上的github说明。

一、手动安装——ns3前置环境安装

写在前面:如果不想进行bake安装,可以参考下面的安装过程,比较繁琐。这里几乎总结了ns3几次安装过程中遇到的所有依赖问题,如果都是一遍还是报错,build failed,那还是用一下bake安装吧,毕竟试错的过程足够安装好多个bake了。

本机安装ns3处于ubuntu20.04环境下,该环境能够实现屏幕全屏,和window共用复制粘贴键等功能,因此在20.04环境下安装ns3。

sudo apt-get install gcc g++ python python3

sudo apt-get install gcc g++ python python3 python3-dev

sudo apt-get install python3-setuptools git mercurial

sudo apt-get install qt5-default mercurial

//问题一:
sudo 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  

sudo apt-get install openmpi-bin openmpi-common openmpi-doc libopenmpi-dev

sudo apt-get install autoconf cvs bzr unrar

sudo apt-get install gdb valgrind 

sudo apt-get install uncrustify

sudo apt-get install doxygen graphviz imagemagick

sudo apt-get install texlive texlive-extra-utils texlive-latex-extra texlive-font-utils dvipng latexmk

sudo apt-get install python3-sphinx dia 

sudo apt-get install gsl-bin libgsl-dev libgsl23 libgslcblas0

sudo apt-get install tcpdump

sudo apt-get install sqlite sqlite3 libsqlite3-dev

sudo apt-get install libxml2 libxml2-dev

sudo apt-get install cmake libc6-dev libc6-dev-i386 libclang-6.0-dev llvm-6.0-dev automake 

sudo apt-get install libgtk2.0-0 libgtk2.0-dev

sudo apt-get install vtun lxc uml-utilities

//问题二
sudo apt-get install libboost-signals-dev libboost-filesystem-dev

1、问题一

以下语句报错

sudo 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  

错误如下:
在这里插入图片描述
首先,这句话是安装一些列东西,那么先弄明白这句话能成功安装哪些,不能安装哪些。
上图提示ipython不能安装,就在语句中先去掉ipython。

接下来,提示变化为:在这里插入图片描述
再去掉python-pygraphviz。

发现不再报错。则只有ipython和python-pygraphviz无法安装。接下来分别安装ipython和python-pygraphviz。

(1)ipython安装

按照以下步骤即可安装ipython:
python版本更换:2版本更改为 3
pip3安装:ubuntu20 安装pip3
ipython安装:ubuntu20.04 python3中安装 ipython

(2)python-pygraphviz安装

graphviz是python的画图工具,可以先不安装,安装可以参考这个链接:python安装graphviz

2、问题二

出现以下错误:
在这里插入图片描述
同样按照问题一的解决办法来寻找安装失败的原因,发现去除libboost-signals-dev则安装成功。
接下来再去安装libboost-signals-dev

据官网:ns3各项功能与安装包对应
参考链接二中说该模块可以先不安装——参考链接二

其他解决办法可参考: libssl依赖问题

3、一些gcc、g++版本问题

gcc版本问题是ns3编译过程中常见的报错,不同ns3版本需要对应不同的gcc版本,如果遇到一些cc文件无法编译的语法问题,考虑gcc版本降级。错误示意如下图:

在这里插入图片描述
解决办法参考链接:gcc降级到5.5。ubuntu20.04可参考:Ubuntu高版本如何安装低版本GCC (以Ubuntu 20安装GCC5为例)

另外,总结一些ns3版本和gcc版本的对应关系:

NS-3.26的gccxml仅支持gcc-4.2~gcc-4.8版本,而Ubuntu16.04下版本为gcc-5.4,因此需要多下载一个gcc4.8及g++4.8;参考链接:ns3.26–》gcc-4.2~gcc-4.8

gcc版本切换:Ubuntu高版本如何安装低版本GCC (以Ubuntu 20安装GCC5为例)

收录一些ns3版本安装指南:
ns3.29–》gcc-4.9.2
ns3.26–》gcc-4.2~gcc-4.8
ns3.25–》gcc3.4

4、其他问题

可能会涉及以下问题,以下链接亲测可用:

  1. 工具系列 | Ubuntu18.04安装Openssl-1.1.1
  2. all warning报错问题解决
  3. error: ‘UChar’ has not been declared:ns3.19运行C++11标准
  4. 有时候会出现Permission denied的错误,首先考虑是否文件路径不对?是否文件没有权限的问题?然后如果提示please run waf configure的话,运行./waf configure看看。
  5. 如果以上问题都解决后,还是出现gcc版本问题,或者依赖问题的话,建议重装虚拟机!!!因为有时候ubuntu版本不支持一些依赖。(所以说使用第一种安装方法:bake安装多好,bake会自动给你找ubuntu对应版本的依赖

二、ns3项目运行

sudo ./waf --run scratch/mtu_wan
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值