Ubuntu 18.04 安装 ndnSIM 2.7 教程【从装系统开始,可复制性成功】_身价五毛的博客-程序员资料

技术标签: 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科研工作者,长期研究,欢迎讨论交流与合作! 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Ximerr/article/details/114368493

智能推荐

鸿蒙开发起步系列 | 环境搭建、HarmonyOS应用开发及智能硬件开发_HarmonyOS技术社区的博客-程序员资料

本文从鸿蒙环境搭建开始说起,并汇总了HarmonyOS智能硬件开发和应用开发的一手资料,全场景剖析HarmonyOS系统究竟是什么、如何助力开发者更便捷高效地开发应用。1.我的鸿蒙起步——开发环境搭建2.HarmonyOS智能硬件开发学习指南3.应用开发HarmonyOS应用开发学习指南...

[Unity插件]A* Pathfinding Project:简易教程(一)_haneya的博客-程序员资料

原文链接: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_fendouderen的博客-程序员资料

spark2.32 源码编译cdh5.15.0功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入使用的软件有apach...

autojs关闭应用的方法,通过正则表达式的方式能关闭大部分手机_autojs关闭app_feiyunjs的博客-程序员资料

/***脚本作用:关闭当前应用**代码编写:魚離ヤ吥開氺**时间:2019.03.26**代码建议者:依和乐**测试系统:安卓8.1**Auto.js版本: 4.1.1**自适配目前主流安卓手机,如有其他请自行加入修改即可使用方法:调用 关闭应用() 封装函数即可;*///测试关闭QQ应用launchApp("QQ");sleep(1500);关闭应用();//此代...

MultipartFile转为File_讓丄帝愛伱的博客-程序员资料

File file = new File(mFile.getOriginalFilename());FileUtils.copyInputStreamToFile(mFile.getInputStream(), file);// 会在本地产生临时文件,用完后需要删除if (file.exists()) { file.delete();}

opencv 矩阵行列求和_opencv 矩阵求和_落日银辉的博客-程序员资料

一、矩阵的求和函数函数: 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

随便推点

Cartographer_ros安装_windistance的博客-程序员资料

https://www.cnblogs.com/hitcm/p/5939507.htmlhttps://google-cartographer-ros.readthedocs.io/en/latest/index.html

Android ViewPager实现无限循环滑动_viewpager2 无限滑动_Turisla的博客-程序员资料

最近做项目需要实现一个类似于淘宝、京东首页那种滑动效果的广告。于是想到使用ViewPager,但是ViewPager本身是不支持无限左右滑动的,所以需要自己实现。目前实现无限滑动的思路大体有两个:1、将viewpager上限设置成一个很大的数,第一个页面设置到中间。然后滑动的时候,用当前的序号与viewpager页面数取余得到目标页面的序号,然后显示出来。理论上一个人不会无聊到一直左滑

ubuntu中安装tftp和nfs的步骤方法,以及问题nfs-server: unrecognized service和/mnt failed: Permission denied的解决方法_酸菜鱼的鱼的博客-程序员资料

在使用海思的片子的时候,文档有介绍demo板使用tftp更新固件以及使用nfs开发。现将操作做一个总结,以备后面查询。参考:https://blog.csdn.net/zhaoyun_zzz/article/details/82659337https://blog.csdn.net/zengxiaohua123/article/details/80614950tftp的增强版本:t...

setLayoutParams 开发问题及解决 java.lang.ClassCastException:android.widget.LinearLayout$LayoutParams_mengzhengjie的博客-程序员资料

Caused by: java.lang.ClassCastException:android.widget.LinearLayout$LayoutParams     最近,在android中用代码动态改变某种布局(组件)的高度时,会遇到如题所示的类转换异常。上网查了一下,如下所示:These supply parameters to the parent o

Python字符串格式化---一杯苦咖啡_didang4120的博客-程序员资料

字符串的格式化在python中也有类似于c中的printf()的格式输出标记。在python中格式化输出字符串使用的是%运算符,通用的形式为格式标记字符串 % 要输出的值组其中,左边部分的”格式标记字符串“可以完全和c中的一致。右边的'值组'如果有两个及以上的值则需要用小括号括起来,中间用短号隔开。重点来看左边的部分。左边部分的最简单形式为:%c...

微型计算机系统构成的核心部分是,计算机系统组成及工作原理题目_weixin_39537298的博客-程序员资料

计算机系统组成及工作原理1.计算机系统一般有硬件和软件两大系统组成。2.微型计算机系统结构由运算器、控制器、存储器、输入设备、输出设备五大部分组成。3.微型计算机的运算器由算术逻辑运算部件(ALU)、累加器和通用寄存器组成。4.微型计算机中,运算器和控制器合称为中曲处理单元(CPU)。5.冯●诺依曼计算机工作原理的设计思想就是把程序输入到计算机存储起来,然后依次执行,简称为程序存储。6.在衡量计算...

推荐文章

热门文章

相关标签