Ubuntu安装 NS3 (可用脚本)和Pyviz 显示
请确认你的 Ubuntu 系统是 16.04 、 18.04或是Ubuntu 20.04 。其次是,如果你之前换过源文件,那么请确保版本对应,但是最好是去看官网安装指南。
可不看本博文直接去看官网的安装建议<很重要> 光官方安装教程 https://www.nsnam.org/wiki/Installation#Ubuntu.2FDebian.2FMint
一、 环境配置
1.1 Ubuntu 18.04
这是可选择,有的可以不装,已有的是下面脚本文件 environment.sh 中的;也可以不用脚本运行,一行行去复制。
#!/bin/bash
apt-get install gcc g++ python
apt-get install gcc g++ python python-dev
apt-get install mercurial python-setuptools git
apt-get install qt5-default
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
apt-get install openmpi-bin openmpi-common openmpi-doc libopenmpi-dev
apt-get install autoconf cvs bzr unrar
apt-get install gdb valgrind
apt-get install uncrustify
apt-get install doxygen graphviz imagemagick
apt-get install texlive texlive-extra-utils texlive-latex-extra texlive-font-utils texlive-lang-portuguese dvipng latexmk
apt-get install python-sphinx dia
apt-get install gsl-bin libgsl2 libgsl-dev
apt-get install flex bison libfl-dev
apt-get install tcpdump
apt-get install sqlite sqlite3 libsqlite3-dev
apt-get install libxml2 libxml2-dev
apt-get install cmake libc6-dev libc6-dev-i386 libclang-dev llvm-dev automake
apt-get install libgtk2.0-0 libgtk2.0-dev
apt-get install vtun lxc
apt-get install libboost-signals-dev libboost-filesystem-dev
apt install g++ python3 python3-dev pkg-config sqlite3
apt install cmake libc6-dev libc6-dev-i386 libclang-6.0-dev llvm-6.0-dev automake python3-pip
apt-get install python-dev python-pygraphviz python-kiwi python-pygoocanvas python-gnome2 python-gnomedesktop python-rsvg
#python3 -m pip install --user cxxfilt
附: 更换了Ubuntu源的,可能出现部分包找不到,换回18.04 的初始源即可。
1.2 脚本运行
- 保存脚本environment.sh,赋予其可执行权限(右键,属性)
- 打开终端输入:
sudo –s
输入你的密码: - 运行脚本: yes|sh ./environment.sh
1.3 Ubuntu 16.04
- 方法一:你可以换成 18.04 的源:
- 方法二:把配置环境中把 environment.sh 中:
(18.04 配置)
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
改成(16.04 配置)
apt-get install python-pygraphviz python-kiwi python-pygoocanvas libgoocanvas-dev ipython
1.4 Ubuntu 20.04或者未来版本
可以先安装1.1,1.3中的包安装时会自动帮你选择,或者直接看官网上的依赖库https://www.nsnam.org/wiki/Installation#Ubuntu.2FDebian.2FMint
apt install gir1.2-goocanvas-2.0 python3-gi python3-gi-cairo python3-pygraphviz gir1.2-gtk-3.0 ipython3
二、 安装NS3 和 Pyviz 工具绑定
官网下载 ns-allinone-3.29.tar.bz2,链接: 最新已到ns3.34,不同版本会有更新带来的问题.解压,转到含./build.py 路径下。由于部分步骤运行时间较长,建议新建一个shell脚本(如 install.sh )安装,也可以直接命令运行。命令如下。
#!/bin/bash
./build.py # 注意路径下的隐藏文件 .config 包含了 python路径绑定
cd ns3-29
./waf configure # 根据需要是否开启 example和test的编译 --enable-examples --enable-test
./waf
./test.py -c core
这个版本是 ns-3.29 ,修改成你自己的版本。
For example:
./waf configure --enable-examples --enable-test
然后赋予运行权限,运行脚本 ./install.sh
参考链接
命令执行完,可以直接运行
./waf --run third --vis
pyviz 示例执行显示
补充
ns3.29 会遇到的问题AttributeError: ‘gi.repository.GooCanvas’ object has no attribute 'LineDash’
参考链接
将src/visualizer/visualizer/core.py中第528行的
line_dash=GooCanvas.LineDash([10.0, 10.0 ])
更改为
line_dash=GooCanvas.CanvasLineDash.newv([10.0, 10.0 ])