Ubuntu 安装 ns-3最全 教程
1. 环境更新
sudo apt update
sudo apt install git
2. Ns3 最低依赖要求
2.1 安装依赖
安装依赖网址:根据自己安装的版本安装对应依赖。
https://www.nsnam.org/wiki/Installation
Ubuntu/Debian/Mint
以下软件包列表在 Ubuntu 22.10 版本中应该是准确的;其他版本或其他基于 Debian 的系统可能略有不同。Ubuntu 16.04 LTS 版本可能是已知可与最新 ns-3 版本配合使用的最古老的版本。
软件包列表取决于您尝试构建的 ns-3 版本。
版本 3.36 及更高版本的最低要求:
sudo apt install g++ python3 cmake ninja-build git
如果您只下载源存档,则不需要 Git。
Ubuntu 自带 “make” 构建工具,但如果缺少它(其他一些基于 Debian 的发行版上),可能需要安装 make
或 ninja-build
。Ninja 是 make 的替代品。
推荐用于 3.37 及更高版本:
Ccache 是一种编译器缓存优化,加快构建速度,但会额外使用多达 5 GB 的磁盘空间。
sudo apt install ccache
注意:对于 Ubuntu 20.04 及更早版本,apt 提供的 ccache 版本(3.7.7 或更早)可能无法提供性能优势,建议安装版本 4 或更高。对于 Ubuntu 22.04 及更高,可以直接使用 apt 安装。
版本 3.30-3.35 的最低建议要求:
sudo apt install g++ python3
3.29 及更早版本的最低建议要求:
sudo apt install g++ python2
注意:
从 ns-3.30 版本(2019 年 8 月)开始,ns-3 默认使用 Python 3,但早期版本依赖 Python 2 包,建议至少使用 Python 2 解释器。
2022 年 1 月(ns-3.36 及 ns-3-dev),最低 g++ 版本为 g+±8。
Ubuntu 18.04/16.04 默认 g++ 版本较老,可通过 StackOverflow 和 Launchpad 获取更高版本。
3. 可选/推荐组件依赖
3.1 Python 可视化工具和绑定(ns-3.37 及更高)
sudo apt install python3-pip
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
3.2 Python API 用户(3.30 ~ 3.36)
sudo apt install g++ python3 python3-dev pkg-config sqlite3 cmake
3.3 Python(开发)
需要 ns-3-allinone
仓库(Git 克隆),还需:
sudo apt install python3-setuptools git
3.4 Netanim 动画工具
sudo apt install qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools
Ubuntu 20.10 及更早版本:
sudo apt install qt5-default
3.5 支持 ns-3-pyviz 可视化工具(3.36 及更早版本)
sudo apt install gir1.2-goocanvas-2.0 python3-gi python3-gi-cairo python3-pygraphviz gir1.2-gtk-3.0 ipython3
3.28 及更早版本:
sudo apt install python-pygraphviz python-kiwi python-pygoocanvas libgoocanvas-dev ipython
3.6 基于 MPI 的分布式仿真
sudo apt install openmpi-bin openmpi-common openmpi-doc libopenmpi-dev
3.7 支持 bake 构建工具
sudo apt install mercurial unzip
3.8 调试 Debug
sudo apt install gdb valgrind
3.9 代码样式检查(自 ns-3.37 起)
sudo apt install clang-format
注意:需要 clang-format-14 到 clang-format-16 版本。
3.10 Doxygen 和内联文档
sudo apt install doxygen graphviz imagemagick
sudo apt install texlive texlive-extra-utils texlive-latex-extra texlive-font-utils dvipng latexmk
3.11 ns-3 手册和教程 (Sphinx)
sudo apt install python3-sphinx dia
ns-3.15 需要 Sphinx >= 1.12,检查版本用
sphinx-build
3.12 GNU 科学图书馆 (GSL)
sudo apt install gsl-bin libgsl-dev libgslcblas0
3.13 读取 pcap 数据包
sudo apt install tcpdump
3.14 统计框架数据库支持
sudo apt install sqlite sqlite3 libsqlite3-dev
3.15 基于 XML 的配置存储
sudo apt install libxml2 libxml2-dev
3.16 支持生成修改后的 python 绑定(ns-3.36 及更早)
sudo apt install cmake libc6-dev libc6-dev-i386 libclang-dev llvm-dev automake python3-pip
python3 -m pip install --user cxxfilt
需要手动安装 CastXML 和 Pygccxml(建议源代码构建)。
3.17 基于 GTK 的配置系统
sudo apt install libgtk-3-dev
3.18 虚拟机和 ns-3
sudo apt install vtun lxc uml-utilities
3.19 openflow 模块和 Boost 开发库
sudo apt install libxml2 libxml2-dev libboost-all-dev
4. 下载和编译 ns-3
cd ~
mkdir workspace
cd workspace
git clone https://gitlab.com/nsnam/ns-3-allinone.git
cd ns-3-allinone
ls
python3 download.py
下载指定版本**(例如 ns-3.44):
python3 download.py -n ns-3.44
5. 编译和测试
5.1 Debug 编译
./ns3 configure --build-profile=debug --enable-examples --enable-tests
%8B.assets%2Fimage-20250730164830248.png&pos_id=img-KPP7m60g-1753924561480)
5.2 编译
./ns3 build
5.3 测试用例执行
./test.py
5.4 显示编译版本
./ns3 show profile
%E5%AE%89%E8%A3%85%20ns-3%20%E6%95%99%E7%A8%8B.assets%2Fimage-20250730171923064.png&pos_id=img-fkmvXIGM-1753924561481)
5.5 执行程序
./ns3 run first
5.6 编写程序
在 scratch/
文件夹下,只能有一个 .cc
文件。
6. NetAnim3.109 编译
cd ~/workspace/ns-3-allinone/netanim-3.109
qmake
make
编译完成后会出现一个 NetAnim 执行文件,然后:
./NetAnim