问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Ubuntu20.04安装NS3的3.36版本(最新版本)

创作时间:
作者:
@小白创作中心

Ubuntu20.04安装NS3的3.36版本(最新版本)

引用
CSDN
1.
https://blog.csdn.net/qq_53273581/article/details/124848777

NS3是一个开源的网络模拟器,广泛应用于网络研究和教育领域。它支持各种网络协议和场景的仿真,是学习和研究计算机网络的重要工具。本文将详细介绍如何在Ubuntu 20.04系统上安装NS3 3.36版本,并配置开发环境。

安装步骤目录

    1. 安装虚拟机
    1. 配置NS3环境
  • 2.1 安装ns3的依赖库
  • 2.1.1 自动化安装
  • 2.1.2 手动安装
  • 2.2 安装ns3_3.36的基础模块
  • 2.3 NetAnim安装与启动
    1. 配置Clion作IDE(Linux)
  • 3.1 Toolchains配置
  • 3.2 CMake配置
    1. 配置CLion远端(Windows)
  • 4.1 安装依赖库和Git
  • 4.2 设置SSH以进行远程开发环境配置
  • 4.3 Git管理项目版本控制

1. 安装虚拟机

2. 配置NS3环境

2.1 安装ns3的依赖库

2.1.1 自动化安装

可以选择将这些依赖库逐个安装,或者直接使用批处理指令文件.sh来自动化地安装依赖库。注意:先通过vim的插入模式将下面的指令复制到新建的Install.sh文件中,而后运行指令之前先更改此Install.sh的权限,最后运行。

vim Install.sh  # 新建
# 将下面的指令复制到新建Install.sh文件中
chmod -x Install.sh  # 更改此Install.sh的权限

Install.sh文件

sudo apt-get install -y g++ python3 python3-dev pkg-config sqlite3 cmake
sudo apt-get install -y mercurial
sudo apt-get install -y qt5-default
sudo apt-get install -y autoconf cvs bzr unrar
sudo apt-get install -y gdb valgrind
sudo apt-get install -y gsl-bin libgsl-dev libgslcblas0
sudo apt-get install -y flex bison libfl-dev
sudo apt-get install -y g++-3.4 gcc-3.4
sudo apt-get install -y tcpdump
sudo apt-get install -y sqlite sqlite3 libsqlite3-dev
sudo apt-get install -y libxml2 libxml2-dev
sudo apt-get install -y libgtk2.0-0 libgtk2.0-dev
sudo apt-get install -y libgtk-3-dev
sudo apt-get install -y vtun lxc uml-utilities
sudo apt-get install -y uncrustify
sudo apt-get install -y doxygen graphviz imagemagick
sudo apt-get install -y texlive texlive-extra-utils texlive-latex-extra texlive-font-utils dvipng latexmk
sudo apt-get install -y python3-sphinx dia
sudo apt-get install -y gir1.2-goocanvas-2.0 python3-gi python3-gi-cairo python3-pygraphviz gir1.2-gtk-3.0 ipython3
sudo apt-get install -y libxml2 libxml2-dev libboost-all-dev
sudo apt-get install -y openmpi-bin openmpi-common openmpi-doc libopenmpi-dev

2.1.2 手动安装

(1)安装Python API 用户的最低要求(3.30 版及更高版本,以及 ns-3-dev):这是从已发布的压缩包中使用 Python 绑定所需的最小包集。C++用户的最低要求(3.36 版和开发):对于 ns-3-dev 和 ns-3.36(及更高版本)版本,还需要 CMake。

sudo apt-get install g++ python3 python3-dev pkg-config sqlite3 cmake

(2)安装NS3代码维护使用的源码版本控制管理系统

sudo apt-get install mercurial

(3)Netanim动画师需要qt5开发工具,对于 Ubuntu 20.10 及更早版本,单个 “qt5-default” 包就足够了。

sudo apt-get install qt5-default

(4)运行python绑定ns-3-dev需要bazaar这个组件。(支持bake构建工具)

sudo apt-get install autoconf cvs bzr unrar

(5)安装调试工具

sudo apt-get install gdb valgrind

(6)支持更多精确WIFI模块的GNU Scientific Library (GSL)

sudo apt-get install gsl-bin libgsl-dev libgslcblas0

(7)仿真必需的词法分析器和语法分析生成器,必装

sudo apt-get install flex bison libfl-dev

(8)一些Network Simulation Cradle (nsc) stacks需要gcc-3.4

sudo apt-get install g++-3.4 gcc-3.4

(9)读取pcap的packet traces,即包嗅探器

sudo apt-get install tcpdump

(10)支持统计特性的数据库软件

sudo apt-get install sqlite sqlite3 libsqlite3-dev

(11)xml的配置存储软件(requires libxml2 >= version 2.7)

sudo apt-get install libxml2 libxml2-dev

(12)基于GTK的配置系统

sudo apt-get install libgtk2.0-0 libgtk2.0-dev
sudo apt-get install libgtk-3-dev

(13)在虚拟机and ns-3上测试

sudo apt-get install vtun lxc uml-utilities

(14)支持utils/check-style.py 代码风格检查程序

sudo apt-get install uncrustify

(15)文档生成器,从源代码中生成说明文档

sudo apt-get install doxygen graphviz imagemagick
sudo apt-get install texlive texlive-extra-utils texlive-latex-extra texlive-font-utils dvipng latexmk

(16)The ns-3 manual and tutorial are written in reStructuredText for Sphinx (doc/tutorial, doc/manual, doc/models), and figures typically in dia:

sudo apt-get install python3-sphinx dia

(17)Gustavo’s ns-3-pyviz的可视化软件

sudo apt-get install gir1.2-goocanvas-2.0 python3-gi python3-gi-cairo python3-pygraphviz gir1.2-gtk-3.0 ipython3

(18)支持openflow 模块(requires some boost libraries)

sudo apt-get install libxml2 libxml2-dev libboost-all-dev

(19)支持基于 MPI的分布式仿真

sudo apt-get install openmpi-bin openmpi-common openmpi-doc libopenmpi-dev

2.2 安装ns3_3.36的基础模块

首先,ns3 在3.36版本取消了waf.py编译器,使用了ns3.py来替代,因此ns3-3.36版本的安装步骤中的一些命令,较之前版本有较大的差异。从官网下载选择ns3-3.36版本进行下载:官方下载地址

mkdir tarballs  # 在目录下创建新的文件夹tarballs
cd tarballs  # 进入tarballs
# 我们将下载的ns3压缩文件放到tarballs文件夹中,并解压缩
cd ns-allinone-3.36/ns-3.36  # 3.36版本
./ns3 configure --enable-examples --enable-tests  # 配置文件
./ns3 build  # 编译ns3
./test.py  # 测试

现在就说明安装都成功了,并且所有的单元都是完整的!

./ns3 run first  # 运行第一个脚本
./ns3 run 'first --PrintHelp'
# 进入超级用户之后无法运行脚本(Refuse to run as root)

2.3 NetAnim安装与启动

返回目录ns-allinone-3.36,进入目录netanim-3.108,执行下列命令编译安装

sudo make clean
sudo qmake NetAnim.pro  # NetAnim的编译安装
sudo make
cd ..
cd ./netanim-3.108
sudo ./NetAnim  # 启动NetAnim

打开如下仿真界面:

如果拥有jetbrains账号,可以使用Clion(类似于Pycharm)作IDE。如选择使用Clion作为编辑器编写ns3的代码,则直接跳过配置Eclipse作IDE

3. 配置Clion作IDE(Linux)

在官网下载安装好Clion之后,在左上角打开project,找到目录/home/wqf/tarballs/ns-allinone-3.36下的ns-3.36并打开。按照界面上所示配置如下:

3.1 Toolchains配置


3.2 CMake配置

其中,“CMake options” 栏的配置如下方所示。

-DNS3_EXAMPLES=ON
# 启用ns-3的示例程序。这意味着在编译过程中,ns-3的示例脚本和程序也会被编译,使得用户可以直接运行这些示例来学习和测试ns-3的功能;
-DNS3_TESTS=ON
#  启用ns-3的测试套件。这允许在编译过程中包含并编译ns-3的测试代码,以便在开发或部署前验证ns-3的功能和性能;
-DNS3_WARNINGS_AS_ERRORS=ON
#  将编译器警告视为错误。这有助于确保代码质量,因为任何可能导致警告的代码都会被视为潜在的错误,并阻止编译过程;
-DNS3_NATIVE_OPTIMIZATIONS=OFF
#  禁用针对特定硬件或平台的优化。这通常用于确保代码的可移植性和兼容性,尽管它可能会牺牲一些性能;
-DNS3_PYTHON_BINDINGS=ON
#  启用Python绑定。这允许ns-3的脚本和模块可以通过Python接口进行访问和控制,从而扩展了ns-3的用途和灵活性;
-DNS3_ASSERT=ON
#  启用断言。断言是编程中用于在代码执行期间检查某个条件是否为真的语句。如果条件为假,则程序会抛出一个错误。这有助于在开发过程中捕获潜在的错误和逻辑问题;
-DNS3_LOG=ON
#  启用日志记录。这允许ns-3在运行时生成详细的日志信息,有助于调试和监控ns-3的行为;

与此同时,我们需要设置一下环境变量,否则我们的CMake找不到pybindgen,就会出现问题。我们配置如下:

其中,NameValue分别如下:

PYTHONPATH
/home/wqf/tarballs/ns-allinone-3.36:/home/wqf/tarballs/ns-allinone-3.36/pybindgen-0.22.1

4. 配置CLion远端(Windows)

在官网下载并安装Clion到Windows系统中。

4.1 安装依赖库和Git

在Linux终端输入以下指令以安装依赖库和Git。

sudo apt install vim  # 安装vim环境
sudo apt install openssh-server  # 用于远程连接虚拟机
sudo apt install net-tools  # 用于查看IP地址
sudo apt install tree  # 树形查看文件夹内容
sudo apt install git  # 安装git
git --version  # 验证Git是否成功安装,并查看其版本号

4.2 设置SSH以进行远程开发环境配置

  1. 首先查询虚拟机的IP地址,通过ifconfig指令;
  2. 在Clion(Windows)上设置SSH连接;

最终就可以打开Linux系统下的Project,但是SSH连接时需要保持虚拟机是运行中的状态;


4.3 Git管理项目版本控制

通过Git管理项目版本控制,确保对远端仓库的即时同步与更新;

  1. 首先在对应的Linux项目的目录下,依次执行:
git init  # 初始化仓库
  1. 配置远端
  2. 设置上游

在Linux命令行中输入:

git fetch --all
# 从所有远程仓库(通常指你在git remote命令下看到的所有远程仓库)抓取最新的版本信息到本地的远程跟踪分支
git branch -r
# 列出所有远程跟踪分支:wqf/dev-tracer-enhance
git branch --set-upstream-to=wqf/dev-tracer-enhance
# 将本地的master分支设置为跟踪远程仓库wqf下的dev-tracer-enhance分支
  1. 拉取更新
git checkout master
# 如果未处于master分支时,通过checkout来切换到master分支
git pull
# 默认从你设置的上游分支(即wqf/dev-tracer-enhance)拉取最新的更改,并将它们合并到你的本地master分支中
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号