• 记一次ns3的安装过程


    官方安装教程:https://www.nsnam.org/wiki/Installation

    推荐使用Ubuntu18.04,Ubuntu20.04有些依赖无法下载。

    准备工作

    # 如果下载速度很慢,可以更换源
    sudo sed -i 's#archive.ubuntu.com#mirrors.aliyun.com#g' /etc/apt/sources.list
    # 下面的一定要执行
    sudo apt update
    sudo apt upgrade
    

    安装 ns3 所需要的依赖环境

    # Ubuntu18.04 下依赖都能安装
    sudo apt-get install g++ python3
    sudo apt-get install g++ python3 python3-dev pkg-config sqlite3
    sudo apt-get install python3-setuptools git
    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 install python3-pip
    sudo pip3 install --upgrade pip
    python3 -m pip install --user cxxfilt
    sudo apt-get install libgtk-3-dev
    sudo apt-get install vtun lxc uml-utilities
    sudo apt-get install libboost-signals-dev libboost-filesystem-dev
    # 建议安装完,copy全部,再执行一遍,看有没有漏掉的。
    

    下载源文件并进行解压安装

    下载地址:https://www.nsnam.org/releases/

    tar xjf ns-allinone-3.31.tar.bz2 # 解压
    chmod -R 777 ns-allinone-3.31 # 修改权限
    ls
    cd ns-allinone-3.31 # 切换到解压目录下
    

    image-20201112195403096

    ./build.py --enable-examples --enable-test
    

    输出如下

    # Build NS-3
    Entering directory `./ns-3.31'
    =>  /usr/bin/python3 waf configure clean --with-pybindgen ../pybindgen-0.21.0
    Setting top to                           : /home/ns-allinone-3.31/ns-3.31
    Setting out to                           : /home/ns-allinone-3.31/ns-3.31/build
    Checking for 'gcc' (C compiler)          : /usr/bin/gcc
    Checking for cc version                  : 7.5.0
    Checking for 'g++' (C++ compiler)        : /usr/bin/g++
    Checking for compilation flag -Wl,--soname=foo support : ok
    Checking for compilation flag -std=c++11 support       : ok
    Checking boost includes                                : 1_65_1
    Checking boost libs                                    : ok
    Checking for boost linkage                             : ok
    Checking for program 'python'                          : /usr/bin/python3
    Checking for python version >= 2.3                     : 3.6.9
    python-config                                          : /usr/bin/python3-config
    Asking python-config for pyembed '--cflags --libs --ldflags --embed' flags : not found
    Asking python-config for pyembed '--cflags --libs --ldflags' flags         : yes
    Testing pyembed configuration                                              : yes
    Asking python-config for pyext '--cflags --libs --ldflags' flags           : yes
    Testing pyext configuration                                                : yes
    Checking for compilation flag -fvisibility=hidden support                  : ok
    Checking for compilation flag -Wno-array-bounds support                    : ok
    Checking for pybindgen location                                            : ../pybindgen-0.21.0 (given)
    Checking for python module 'pybindgen'                                     : 0.21.0
    Checking for pybindgen version                                             : 0.21.0
    Checking for code snippet                                                  : yes
    Checking for types uint64_t and unsigned long equivalence                  : no
    Checking for code snippet                                                  : no
    Checking for types uint64_t and unsigned long long equivalence             : yes
    Checking for the apidefs that can be used for Python bindings              : gcc-LP64
    Checking for internal GCC cxxabi                                           : complete
    Checking for python module 'pygccxml'                                      : not found
    Checking for click location                                                : not found
    Checking for program 'pkg-config'                                          : /usr/bin/pkg-config
    Checking for 'gtk+-3.0'                                                    : yes
    Checking for 'libxml-2.0'                                                  : yes
    checking for uint128_t                                                     : not found
    checking for __uint128_t                                                   : yes
    Checking high precision implementation                                     : 128-bit integer (default)
    Checking for header stdint.h                                               : yes
    Checking for header inttypes.h                                             : yes
    Checking for header sys/inttypes.h                                         : not found
    Checking for header sys/types.h                                            : yes
    Checking for header sys/stat.h                                             : yes
    Checking for header dirent.h                                               : yes
    Checking for header signal.h                                               : yes
    Checking for header pthread.h                                              : yes
    Checking for header stdint.h                                               : yes
    Checking for header inttypes.h                                             : yes
    Checking for header sys/inttypes.h                                         : not found
    Checking for library rt                                                    : yes
    Checking for header sys/ioctl.h                                            : yes
    Checking for header net/if.h                                               : yes
    Checking for header net/ethernet.h                                         : yes
    Checking for header linux/if_tun.h                                         : yes
    Checking for header netpacket/packet.h                                     : yes
    Checking for NSC location                                                  : not found
    Checking for OpenFlow location                                             : not found
    Checking for 'sqlite3'                                                     : yes
    Checking for header semaphore.h                                            : yes
    Checking for header linux/if_tun.h                                         : yes
    Checking for python module 'gi'                                            : 3.26.1
    Checking for python module 'gi.repository.GObject'                         : ok
    Checking for python module 'cairo'                                         : ok
    Checking for python module 'pygraphviz'                                    : 1.4rc1
    Checking for python module 'gi.repository.Gtk'                             : ok
    Checking for python module 'gi.repository.Gdk'                             : ok
    Checking for python module 'gi.repository.Pango'                           : ok
    Checking for python module 'gi.repository.GooCanvas'                       : ok
    Checking for program 'sudo'                                                : /usr/bin/sudo
    Checking for program 'valgrind'                                            : /usr/bin/valgrind
    Checking for 'gsl'                                                         : yes
    libgcrypt-config                                                           : not found
    Checking for compilation flag -fstrict-aliasing support                    : ok
    Checking for compilation flag -fstrict-aliasing support                    : ok
    Checking for compilation flag -Wstrict-aliasing support                    : ok
    Checking for compilation flag -Wstrict-aliasing support                    : ok
    Checking for program 'doxygen'                                             : /usr/bin/doxygen
    ---- Summary of optional NS-3 features:
    Build profile                 : debug
    Build directory               :
    BRITE Integration             : not enabled (BRITE not enabled (see option --with-brite))
    DES Metrics event collection  : not enabled (defaults to disabled)
    Emulation FdNetDevice         : enabled
    Examples                      : not enabled (defaults to disabled)
    File descriptor NetDevice     : enabled
    GNU Scientific Library (GSL)  : enabled
    Gcrypt library                : not enabled (libgcrypt not found: you can use libgcrypt-config to find its location.)
    GtkConfigStore                : enabled
    MPI Support                   : not enabled (option --enable-mpi not selected)
    NS-3 Click Integration        : not enabled (nsclick not enabled (see option --with-nsclick))
    NS-3 OpenFlow Integration     : not enabled (OpenFlow not enabled (see option --with-openflow))
    Network Simulation Cradle     : not enabled (NSC not found (see option --with-nsc))
    PlanetLab FdNetDevice         : not enabled (PlanetLab operating system not detected (see option --force-planetlab))
    `PyViz visualizer              : enabled`
    Python API Scanning Support   : not enabled (Missing 'pygccxml' Python module)
    Python Bindings               : enabled
    Real Time Simulator           : enabled
    SQLite stats support          : enabled
    Tap Bridge                    : enabled
    Tap FdNetDevice               : enabled
    Tests                         : not enabled (defaults to disabled)
    Threading Primitives          : enabled
    Use sudo to set suid bit      : not enabled (option --enable-sudo not selected)
    XmlIo                         : enabled
    'configure' finished successfully (5.788s)
    'clean' finished successfully (0.016s)
    

    image-20201112205602757

    重点关注下列输出,涉及到能否支持Python。

    Python API Scanning Support   : not enabled (Missing 'pygccxml' Python module)
    Python Bindings               : enabled
    
    pip3 install pygccxml
    

    image-20201112210601551

    cd ns-3.31
    ./waf --build-profile=debug --enable-examples --enable-test configure
    

    image-20201112210816597

    pip3 install CastXML #安装好后,重启一下。
    

    image-20201112211522662

    image-20201112211714841

    ./test.py #问题解决了,继续安装
    ./waf --run hello-simulator # 验证是否安装成功
    

    image-20201112232306746

    其它问题

    image-20201108182844801

     pip3 install PyBindGen
    
  • 相关阅读:
    win10安装nodejs,修改全局依赖位置和环境变量配置
    JavaScript判断两个对象内容是否相等
    JS判断是否是数组
    Js判断值是否是NaN
    typeof方法重写(区分数组对象)
    JS实现图片懒加载
    输入url到展示页面过程发生了什么?
    html如何在服务端跑起来
    nuxt怎么打包
    如果scss引用了字体图标文件该怎么打包
  • 原文地址:https://www.cnblogs.com/huang-xiang/p/13967012.html
Copyright © 2020-2023  润新知