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

被折叠的 条评论
为什么被折叠?



