在Ubuntu18安装ndn-SIM2.7

通过对资料的查询获取相对应的版本号与ndnsim之间的关系:

操作系统 Ubuntu 18
ndnSIM ndnSIM-2.7
ns-3-dev ndnSIM-ns-3.29
pybindgen 0.19.0

如果想要安装其他版本,请找到上述条件所对应的版本号即可。

一、安装准备

sudo apt install build-essential libsqlite3-dev libboost-all-dev libssl-dev git python-setuptools castxml
sudo apt install python-dev python-pygraphviz python-kiwi python-gnome2 ipython libcairo2-dev python3-gi libgirepository1.0-dev python-gi python-gi-cairo gir1.2-gtk-3.0 gir1.2-goocanvas-2.0 python-pip
pip install pygraphviz pycairo PyGObject pygccxml
sudo apt-get install graphviz libgraphviz-dev graphviz-dev pkg-config
pip install pygraphviz

可能出现报错无法安装的情况,我把后面的安装好,在安装前面的就成功了;同时这是Ubuntu18所需要的依赖环境,其他版本请参照官网。

二、下载源码

现在任意文件创建个ndnsim文件夹

mkdir ndnSIM2.7

然后进入该文件夹下,进行源码的下载

cd ndnSIM2.7
git clone https://github.com/named-data-ndnSIM/ns-3-dev.git ns-3
git clone https://github.com/named-data-ndnSIM/pybindgen.git pybindgen
git clone https://github.com/named-data-ndnSIM/ndnSIM.git ns-3/src/ndnSIM

记住千万不要在最后一条命令按照官网的说法加上–recursive,这样就会把NFD和ndn-cxx模块直接下载最新版本,这样后面的操作就无效了。

三、修改对应版本号

这里的命令依靠git实现,能到这一步肯定都安装好了,就不多说了。
首先进入到ndnSIM的核心源码地带

cd ns-3/src/ndnSIM

通过git checkout修改版本号

git checkout ndnSIM-2.7

也可以通过git tag查看所有的版本号,然后修改为想要安装的版本
在Ubuntu18安装ndn-SIM2.7_第1张图片
然后安装NFD和ndn-cxx模块

git submodule update --init

接下来进入到ndnSIM2.7/ns-3文件下进行版本的修改

git checkout ndnSIM-ns-3.29

出现如图所示即为成功

接下对pybindgen的版本进行修改

cd ndnSIM2.7/pybindgen
git checkout 0.19.0

然后在此目录下安装安装该python模块

sudo python setup.py install

在Ubuntu18安装ndn-SIM2.7_第2张图片

四、运行编译

cd ndnSIM2.1/ns-3
./waf configure --enable-examples
./waf
./waf --run ndn-simple --vis

正常情况直接编译完成,出现错误的话请看下面的修改提示
在Ubuntu18安装ndn-SIM2.7_第3张图片
进入到可视化模块下将‘file=’删除

cd  ndnSIM2.7/ns-3/src/visualizer/visualizer

在Ubuntu18安装ndn-SIM2.7_第4张图片
进入base.py文件,修改保存即可

在这里插入图片描述
第二种错误可能出现在运行时加上–vis可视化模块时,如下图所示
在Ubuntu18安装ndn-SIM2.7_第5张图片
这种情况下,还是进入刚才的那个文件夹,修改hub.py文件
在Ubuntu18安装ndn-SIM2.7_第6张图片
将from . import注释,修改为import core。再次运行就可以了
在Ubuntu18安装ndn-SIM2.7_第7张图片
经过试验,添加Ubuntu16的对应版本

操作系统 Ubuntu 16
ndnSIM ndnSIM-2.5
ns-3-dev ndnSIM-v2.5
pybindgen 0.18.0

你可能感兴趣的:(ubuntu,ndn,python)