• 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
    
    • 1

    安装完成后,会在虚拟机的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
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41

    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  
    
    • 1

    错误如下:
    在这里插入图片描述
    首先,这句话是安装一些列东西,那么先弄明白这句话能成功安装哪些,不能安装哪些。
    上图提示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
    在这里插入图片描述

  • 相关阅读:
    Maya vs Blender:制作3D动画首选哪一个?
    桌面画图工具:Pointofix(fertig)
    《Java并发编程之美》读书笔记——第一部分(并发编程基础知识)
    C++广搜例题+代码+讲解(2)
    【爬虫】7.4. 字体反爬案例分析与爬取实战
    kafka常用命令
    安装Python
    基于JavaWeb技术的在线考试系统设计与实现
    《J2EE开发技术》教学上机实验报告
    switchhosts怎么配置host?
  • 原文地址:https://blog.csdn.net/qq_45926015/article/details/126640812