NS3下载与安装

NS3下载与安装

简介

系统环境配置

这里我使用的是ubuntu22.04 将要下载目前最新版本的ns3.40

如果想要下载安装的依赖与linux版本 ns3版本对应 请务必去官网获取最新的依赖配置,根据时间的推移,不同依赖下载安装的命令不同,采用各种博客上的解决办法是行不通的,很大概率出现各种各样的依赖不匹配情况,为了根绝这种不匹配,请一定要按照官网指示下载(如果官网指令不够新再去博客找新的解决办法)

下面是我根据官方文档做出的shell脚本,如果版本和我的一致可以直接拿来使用(注意使用时windows Linux换行符不一致问题)

#!/bin/bash
sudo apt update
sudo apt upgrade
sudo apt install g++ python3 cmake ninja-build git
sudo apt install ccache
sudo apt install g++ python3
python3 -m pip install --user cppyy
sudo apt install gir1.2-goocanvas-2.0 python3-gi python3-gi-cairo python3-pygraphviz gir1.2-gtk-3.0 ipython3
sudo apt install g++ python3 python3-dev pkg-config sqlite3 cmake
sudo apt install python3-setuptools git
sudo apt install qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools
sudo apt install gir1.2-goocanvas-2.0 python3-gi python3-gi-cairo python3-pygraphviz gir1.2-gtk-3.0 ipython3
sudo apt install openmpi-bin openmpi-common openmpi-doc libopenmpi-dev
sudo apt install mercurial unzip
sudo apt install gdb valgrind
sudo apt install clang-format
sudo apt install doxygen graphviz imagemagick
sudo apt install texlive texlive-extra-utils texlive-latex-extra texlive-font-utils dvipng latexmk
sudo apt install python3-sphinx dia
sudo apt install gsl-bin libgsl-dev libgslcblas0
sudo apt install tcpdump
sudo apt install sqlite sqlite3 libsqlite3-dev
sudo apt install libxml2 libxml2-dev
sudo apt install cmake libc6-dev libc6-dev-i386 libclang-dev llvm-dev automake python3-pip
python3 -m pip install --user cxxfilt
sudo apt install libgtk-3-dev
sudo apt install vtun lxc uml-utilities
sudo apt install libxml2 libxml2-dev libboost-all-dev

在下载时注意

python3 -m pip install --user cppyy
python3 -m pip install --user cxxfilt

这两段命令不可以使用sudo管理权限,另外、安装cppyy时需要添加``/home/ashsmoke/.local/bin`到系统变量,具体的shell脚本如下

echo 'export PATH=/home/ashsmoke/bin:$PATH' >>~/.bashrc
source ~/.bashrc

ashsmoke替换为你的用户名,在错误信息里面会给出

NS3下载

  • 通过git方式下载

    cd
    mkdir repos
    cd repos
    git clone https://gitlab.com/nsnam/ns-3-allinone.git
    
  • 启动download.py下载你所需要的ns3版本

    ./download.py -n ns-3.40
    
  • 截至目前ns3已经成功下载

编译和运行

  • 通过build.py编译(只用初次运行可以使用)

    ./build.py --enable-examples --enable-tests
    
  • 执行test.py脚本执行相关测试用例

    ./test.py --no-build
    
  • 使用CMake编译(常用)

    ./ns3 clean
    ./ns3 configure --build-profile=debug --enable-examples --enable-tests
    ./ns3 build
    
  • 执行hello-simulator测试编译是否成功(需要将ns3给出的examples编译进去,默认不编译)

    ./ns3 run hello-simulator
    

Visualizer/PyViz环境配置

如果上述依赖都无错误执行 则Visualizer所需依赖已经配置完成,如果缺少依赖可以安装对应依赖

 python3 -m pip install --user cppyy
 sudo apt install gir1.2-goocanvas-2.0 python3-gi python3-gi-cairo python3-pygraphviz gir1.2-gtk-3.0 ipython3

如果整句无法安装则拆开独立安装,缺少更多的依赖请逐个安装(一般情况不会缺的很多,出现不停地缺少依赖情况需要考虑版本匹配问题,建议选择正确的匹配的Ubuntu以及相应的命令)

  • 首先需要解决python-bindings问题,可使用``–help`命令来获取如何打开python-bindings,效果如下图

    ./ns3 configure --help
    

  • 找到对应的解决办法对configure进行配置,效果如下图所示

    ./ns3 configure --build-profile=debug --enable-examples --enable-tests --enable-python-bindings
    

  • 运行examples中的first.cc样例,效果如下图所示

    ./ns3 run first --vis
    

NetAinm

  • 首先需要安装依赖,在上述文档中我已给出NetAinm依赖(源自Installation官方文档)

    apt install qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools
    
  • ubuntu 20.04 之后的版本,可以使用如下命令来安装qt5(非必须)

    sudo apt-get install build-essential
    sudo apt-get install qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools
    sudo apt-get install qtcreator
    sudo apt-get install qt5*
    
  • NetAnim官方文档中指出所需依赖

    apt-get install mercurial
    apt-get install qt5-default
    
  • 安装NetAnim.pro

    cd netanim
    make clean
    qmake NetAnim.pro
    make
    
  • 制作示例中的xml文件

     ./ns3 run "dumbbell-animation --nLeftLeaf=5 --nRightLeaf=5 --animFile=dumbbell.xml"
     ./ns3 run "grid-animation --xSize=5 --ySize=5 --animFile=grid.xml"
    
  • 启动

    ./NetAnim
    
  • 执行命令出现下述页面

  • 打开刚刚制作的xml文件(在ns-3.40文件夹下)

总结

对于ns3这种使用者基数比较小且一直在更新的软件,最直接有效的办法就是看官方文档,各种博客中的解决办法很可能不适合自己。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值