技术标签: python ubuntu ndnSIM linux 命名数据网络(NDN) ndn
鉴于https://blog.csdn.net/Ximerr/article/details/114367671的原因,避免大坑,因此使用Vmware从安装系统开始,完全按照本教程操作,可以一次性成功。文章完成于2021-03-04,安装的是历史版本,因此有效期持久有效。
1.官网下载镜像文件:https://ubuntu.com/download/desktop
2.由于目前Ubuntu已经更新到20版本,因此需要访问其他下载页
3.找到 Ubuntu 18.04.5 Desktop (64-bit) ,点击下载
4.将镜像下载到本地:https://releases.ubuntu.com/18.04/ubuntu-18.04.5-desktop-amd64.iso.torrent
使用的Vmware版本为:15.5.2 build-15785246
创建新的虚拟机,选择好镜像文件。
需要注意内存最好分配的多一点,不然后面ndnSIM编译时可能需要配置交换分区(https://blog.csdn.net/Ximerr/article/details/114368939)。
推荐配置:
安装并进入系统后,需要进行:
①换源:打开 Software & Updates (不在设置里面,如果找不到就点击左下角九个点打开面板搜索),更换服务器,推荐选择华为或阿里,高校可以用edu。
②将所有软件重新更新一遍。
sudo apt-get update
sudo apt-get upgrade
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
如果安装不成功就反复安装几次,后三句可能会报错,报错后暂不处理,继续执行下一句。等执行一轮后,使用 sudo apt-get update 和 sudo apt-get upgrade 更新一下,再执行一遍上述代码,即可成功。(如有问题,评论区见)
(千万不要再管ndnSIM官网的教程了,安装好这些就相当于配置好了所有依赖,不要多此一举!)直接按照本教程依次操作即可,不可同时参考官网教程,后面内容同理。
mkdir ndnSIM
cd ndnSIM
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
下载代码后,需要使用 git checkout 命令切换到对应版本:
cd ns-3/src/ndnSIM
git checkout ndnSIM-2.7
git submodule update --init
上面最后一步是安装NFD和ndn-cxx模块,注意之前的git和官网不完全一致。
cd ../..
git checkout ndnSIM-ns-3.29
cd ../pybindgen
git checkout 0.19.0
出现以下类似的提示说明 checkout 成功:
HEAD is now at fbbe13d Prepare release 2.7
Switched to a new branch 'ndnSIM-ns-3.29'
HEAD is now at ef30ba2 Merge branch 'tomhenderson-castxml'
在 pybindgen 还需进行一步安装:
sudo python setup.py install
出现如下内容说明安装成功。
提示:上述语句执行报错的解决方法,感谢罗张挥弦的贡献,大家有什么问题可以在评论区交流!
[email protected]:~/Desktop/lzhx/ndnSIM/pybindgen$ sudo python setup.py install
...
File "/tmp/easy_install-NQxrNC/setuptools_scm-6.0.1/setup.py", line 52, in <module>
File "/tmp/easy_install-NQxrNC/setuptools_scm-6.0.1/setup.py", line 29, in scm_config
)
File "/tmp/easy_install-NQxrNC/setuptools_scm-6.0.1/src/setuptools_scm/__init__.py", line 8, in <module>
File "/tmp/easy_install-NQxrNC/setuptools_scm-6.0.1/src/setuptools_scm/config.py", line 6, in <module>
File "/tmp/easy_install-NQxrNC/setuptools_scm-6.0.1/src/setuptools_scm/utils.py", line 41
print(*k)
^
SyntaxError: invalid syntax
如果报错信息如上所示,提示 print(*k)
SyntaxError: invalid syntax ,可以执行如下语句,然后重新执行本部分的 setup.py 的安装!
pip install setuptools-scm
1.编译
cd ndnSIM/ns-3
./waf configure --enable-examples
./waf
此时,会出现错误:
print(“Could not load plugin %r:%s” (filename,str(ex)),file=sys.stderr)
SyntaxError:invalid syntax
请按照我的这篇教程进行解决:https://blog.csdn.net/Ximerr/article/details/114365469
2.编译成功后即可运行仿真了
./waf --run ndn-simple --vis
./waf --run=ndn-grid --vis
运行过程中,会出现错误:
No visualization support (cannot import name core).
请按照我的这篇教程进行解决:https://blog.csdn.net/Ximerr/article/details/114365722
处理之后重新运行,即可出现结果。
ndnSIM 安装困难重重,如果你按照教程操作就一定能走到最后一步,给自己点个赞吧,心累~
NDN科研工作者,长期研究,欢迎讨论交流与合作!
本文从鸿蒙环境搭建开始说起,并汇总了HarmonyOS智能硬件开发和应用开发的一手资料,全场景剖析HarmonyOS系统究竟是什么、如何助力开发者更便捷高效地开发应用。1.我的鸿蒙起步——开发环境搭建2.HarmonyOS智能硬件开发学习指南3.应用开发HarmonyOS应用开发学习指南...
原文链接:http://arongranberg.com/astar/docs/getstarted.php插件下载地址:http://pan.baidu.com/s/1eROqaB4题外话:最近想学习一下A*插件,由于在网上没有发现什么比较详细的教程,所以就只能上官网了。这是第一次看这么长的英语文章,翻译得不好,请见谅!概述:A*插件的核心脚本就是”astarpath.cs”,所以如果你想使用A*插件进行寻路,那么场景中一定要有一个”astarpath.cs”(并且一个场景仅有一个).
spark2.32 源码编译cdh5.15.0功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入使用的软件有apach...
/***脚本作用:关闭当前应用**代码编写:魚離ヤ吥開氺**时间:2019.03.26**代码建议者:依和乐**测试系统:安卓8.1**Auto.js版本: 4.1.1**自适配目前主流安卓手机,如有其他请自行加入修改即可使用方法:调用 关闭应用() 封装函数即可;*///测试关闭QQ应用launchApp("QQ");sleep(1500);关闭应用();//此代...
File file = new File(mFile.getOriginalFilename());FileUtils.copyInputStreamToFile(mFile.getInputStream(), file);// 会在本地产生临时文件,用完后需要删除if (file.exists()) { file.delete();}
一、矩阵的求和函数函数: reduce();官方文档:Reduces a matrix to a vector.C++: void reduce(InputArray src, OutputArray dst, int dim, int rtype, int dtype=-1 )¶Python: cv2.reduce(src, dim, rtyp
https://www.cnblogs.com/hitcm/p/5939507.htmlhttps://google-cartographer-ros.readthedocs.io/en/latest/index.html
最近做项目需要实现一个类似于淘宝、京东首页那种滑动效果的广告。于是想到使用ViewPager,但是ViewPager本身是不支持无限左右滑动的,所以需要自己实现。目前实现无限滑动的思路大体有两个:1、将viewpager上限设置成一个很大的数,第一个页面设置到中间。然后滑动的时候,用当前的序号与viewpager页面数取余得到目标页面的序号,然后显示出来。理论上一个人不会无聊到一直左滑
在使用海思的片子的时候,文档有介绍demo板使用tftp更新固件以及使用nfs开发。现将操作做一个总结,以备后面查询。参考:https://blog.csdn.net/zhaoyun_zzz/article/details/82659337https://blog.csdn.net/zengxiaohua123/article/details/80614950tftp的增强版本:t...
Caused by: java.lang.ClassCastException:android.widget.LinearLayout$LayoutParams 最近,在android中用代码动态改变某种布局(组件)的高度时,会遇到如题所示的类转换异常。上网查了一下,如下所示:These supply parameters to the parent o
字符串的格式化在python中也有类似于c中的printf()的格式输出标记。在python中格式化输出字符串使用的是%运算符,通用的形式为格式标记字符串 % 要输出的值组其中,左边部分的”格式标记字符串“可以完全和c中的一致。右边的'值组'如果有两个及以上的值则需要用小括号括起来,中间用短号隔开。重点来看左边的部分。左边部分的最简单形式为:%c...
计算机系统组成及工作原理1.计算机系统一般有硬件和软件两大系统组成。2.微型计算机系统结构由运算器、控制器、存储器、输入设备、输出设备五大部分组成。3.微型计算机的运算器由算术逻辑运算部件(ALU)、累加器和通用寄存器组成。4.微型计算机中,运算器和控制器合称为中曲处理单元(CPU)。5.冯●诺依曼计算机工作原理的设计思想就是把程序输入到计算机存储起来,然后依次执行,简称为程序存储。6.在衡量计算...