实验室项目的需求,要使用到NS3做仿真,使用实验室的电脑,Ubuntu12.04,版本比较低,建议大家使用16.04,这样安装依赖文件时不会出现版本过低的问题  

  (没管最后也安装成功了)。下面就安装步骤和遇到的问题做一下记录:

  (其中有参考各位老师的博客,我会在相应地方注明来源)

                                                  2018-09-07  

=====================================安装如下===================================

1、首先安装依赖文件,依赖文件比较多,耗时较长,大家可以写成shell脚本,并加入自动确认参数(-y),就可以做其他事情了

  1.1、依赖文件大家可以参考书本《NS3-网络模拟器基础与应用》P14中的依赖文件

  1.2、再一个参考就是官网https://www.nsnam.org/wiki/Installation#Operating_system_and_compiler_support

  1.3、还有其他老师博客中的安装方法

2、下载并安装NS3

  可以先在/home目录下创建一个文件夹     mkdir NS3(文件名大家自己取),之后的操作在这个文件夹及其子文件夹下即可。

  2.1、由于项目需要,我下载的是NS3.25版本       wget https://www.nsnam.org/release/ns-allinone-${NS3_VER}.tar.bz2  ,其他版本可以在NS3官网上找到  https://www.nsnam.org/

  2.2、对刚才下载的ns-allinone-3.25.tar.bz2压缩包进行解压    tar xvjf ns-allinone-3.25.tar.bz2   解压后进入ns-allinone-3.25目录,如下图

          

  2.3、进入ns-3.25目录

          

  2.4、下面进入编译安装阶段,有两种编译方法

  2.4.1、使用 build.py编译

    这种方法的使用前提是之前从来没有编译过NS3,这是第一次,可以使用这种方法,比较简单,推荐首次编译者使用

    只一条指令,时间会长一些,可能要十几或者几十分钟

    在类似于ns-allinone-3.25的目录下,执行指令          ./build.py --enable-examples --enable-tests

    编译成功显示如下,没有编译成功的不要紧,不影响结果,一般用不到,如果后面用到再添加也不迟,好了,看到这里,NS3就算编译成功了,别急,我们后面还得测试一下,看看是否真的安装成功了。

                            

  2.4.2、使用 waf 编译 

    很多的用户之前都编译过,那就得有 waf 进行编译了,别无他法。如果首次编译使用 waf 也是可以的啦。看心情。。。。

    如果想改变原先的NS3的配置环境,比如要添加模块,需要使用交互式的 waf 命令,进行重新配置和编译。

    注意:waf 命令是在ns-3.25目录下,而不是ns-allinone-3.25目录下(不同的下载方式目录可能不同, 但应该类似)

    下面使用 waf 重新配置和编译ns3系统

    1、清楚先前的配置编译        ./waf clean

    2、重新配置 ns3             ./waf -d optimized --enable-examples --enable-tests configure

    3、正式编译 ns3        ./waf

    如果编译成功的话,也会出现  2.4.1 中编译成功的结果,此处不再放图。。。。。。

3、测试

  编译安装完成后,我们可以测试一下NS3是否真的安装成功,NS3提供了测试脚本 test.py 和很多示例程序

  3.1、使用 test.py 测试

  在ns-3.25目录下,键入指令   ./test.py -c core

            

  最后一行显示测试的结果,总共测试和测试通过的测试脚本数目

  3.2、使用NS3提供的测试示例进行测试,在ns-3.25目录下,

  1、 ./waf -d debug --enable-examples --enable-tests configure

  2、 ./waf

  3、 sudo ./waf --run scratch-simulator

  会显示如下结果,最下一行输出scratch simulation,相当于我们写的第一道程序输出结果“ hello world!”  哈哈哈,可算是安装成功了么?还有。。。。。

            

4、安装eclipse,在eclipse中编译NS3

  这个看个人习惯,有些朋友不习惯使用Linux中的 vim等 编辑器,可以借助eclipse这种图形化界面的工具

   安装方法:首先正常安装eclipse,然后安装C/C++语言插件CDT

    1、sudo apt-get install eclipse

    2、sudo apt-get install eclipse-cdt

  相关的配置在《NS3-网络模拟器基础与应用》这本书的23页,不在详述。

    ==============================遇到的问题及解决方法==========================

1、版本问题

  1.1、Unable to locate package <package>

  在安装依赖文件时,gcc-3.4未找到等出现了几次这样的问题,Ubuntu版本问题,所以建议大家用Ubuntu16.04版本,

  我这边sudo apt-get update也不管用,sudo add-apt-repository也不行 不过好在对结果影响不大,最终还是安装成功了

  可以参考 https://askubuntu.com/questions/378558/unable-to-locate-package-while-trying-to-install-packages-with-apt

  1.2、会出现这么一段话(忘截图了)       

  Some packages could not be installed. This may mean that you have requested an impossible situation or if you are using the unstable distribution that some required packages have not yet been created or been moved out of Incoming. The following information may help to resolve the situation

  也是版本太低了

  参考博客:https://blog.csdn.net/DelphiNew/article/details/5871425

2、waf died,not run test问题

  运行测试例 test.py 时,出现waf died,not run test

  解决方法:./waf configure --enable-tests --enable-modules = wimax,applications --enable-examples

       然后是:./waf 和 ./test.py

  参考:https://groups.google.com/forum/#!topic/ns-3-users/8J8ZuP1Ba0g

3、permission denied 问题

  在终端运行Python脚本出现permission denied 时,表示权限不够,提示那个权限不够就多这个文件修改权限

  1、修改当前目录的权限: sudo chmod 777 文件名

  2、修改当前目录及其子目录的权限: sudo  -R chmod 777 文件名

  参考博客:https://blog.csdn.net/sinat_33363493/article/details/52734746

  

Ubuntu12.04下安装NS3.25的更多相关文章

  1. Ubuntu12.04下安ns-3.29及Ubuntu换源方法

    目录 1.下载ns-3.29 2.安装gcc-4.9.2 3.编译.测试ns-3.29 第一种:更新,文章开头说的 第二种,更新源 主机型号:Ubuntu12.04 仿真环境版本:NS-3.29 安装 ...

  2. 阿里云ubuntu12.04下安装使用mongodb

    阿里云ubuntu12.04下安装mongodb   apt-get install mongodb 阿里云ubuntu12.04下卸载mongodb,同时删除配置文件     apt-get pur ...

  3. Ubuntu12.04下安装sourcenavigator-NG4.5阅读源代码

    大家知道Windows下有一个很好的查看源代码的软件sourceinsight,使用sourceinsight查看Linux内核代码.嵌入式软件开发中的C语言项目源代码.驱动程序代码很是方便.在Lin ...

  4. Linux Ubuntu12.04下安装OpenCv2.4.10

    参考 http://blog.sina.com.cn/s/blog_53b0956801010lfu.html 捣鼓了一个晚上了,OpenCv还没装好,本来以为看个类似的比如Ubuntu安装OpenC ...

  5. UBUNTU12.04下安装配置体验gnome3

    年. ubuntu12.04默认采用unity界面,但是自己更加喜欢gnome3的操作方式. 安装gnome3: sudo apt-get install  gnome-shell 其实安装成功后,注 ...

  6. ubuntu-12.04下安装postgresql

    2013-10-01 20:42:57|    moniter参考资料:Ubuntu 12.04下PostgreSQL-9.1安装与配置详解(在线安装)一.安装postgresqlbamboo@bam ...

  7. Ubuntu12.04下安装Subversion并进行配置

    Ubuntu下安装Subversion还是很简单的,只要输入sudo apt-get install Subversion就可以安装了. 主要的难点在于对权限的配置上. 安装完subversion后, ...

  8. ubuntu12.04 下安装matlab2012

    1.下载matlab2012a(例如:****.iso) 2.创建挂载目录 sudo mkdir /media/matlab 3.将当前目录切换到镜像文件的目录,然后将镜像文件挂载到刚刚创建的目录下 ...

  9. Ubuntu12.04 下安装Qt

    1.下载Qt Creator 链接  http://qt-project.org/downloads 选择 Qt Creator 2.8.0 for Linux/X11 32-bit (61 MB) ...

随机推荐

  1. 【工具】Idea GenerateAllSetter

    使用工具自动生成setter方法调用,不是idea原生态生成getter/setter https://github.com/gejun123456/intellij-generateAllSetMe ...

  2. 在.Net Core WebAPI下给Swagger增加导出离线文档功能

    一丶前言 最近刚接触到Swagger,在github上下载了它的源码和demo学习了一遍,发现这个组件非常好用,不过不足的是它没有导出离线文档的功能,于是乎我就想给它加一个导出功能 Swagger G ...

  3. java时间处理,获取当前时间的小时,天,本周周几,本周周一的日期,本月一号的日期

    1.时间转时间戳 public static long strToTimestamp(String dateTimeStr) throws Exception { Timestamp time = T ...

  4. Goland2019.1破解

    Goland2019.1破解 Goland2019.1:http://www.jetbrains.com/goland/download/ 破解补丁:https://pan.baidu.com/s/1 ...

  5. vue笔记-列表渲染

    用v-for把一个数组对应为一组元素 使用方法:v-for="(item,index) in items"//也可以使用of替代in { items:源数组 item:数组元素迭代 ...

  6. vue与avuex

    现在 使用avuex做出来表格效果,但是看到源码看到需要使用vue,不得不开始学习vue 配置环境:cnpm配置过程:a:首先下载node.js然后根据https://www.cnblogs.com/ ...

  7. 3. Linux系统磁盘分区介绍

    1. 磁盘分区基本知识 1)磁盘在使用前一般要先分区(相当于建房子要分房间一样). 2)磁盘分区一般有主分区.扩展分区和逻辑分区之分.一块磁盘最多可以有4个主分区,其中一个主分区的位置可以用一个扩展分 ...

  8. java 虚拟机学习--未完

    1.学习了解GC垃圾回收 参考:https://www.ibm.com/developerworks/cn/java/l-JavaMemoryLeak2/ 2.类加载机制 http://blog.cs ...

  9. [HEOI/TJOI2016]序列

    Description: 给你一个序列,每个数可能变化为另一个数,每次最多有一个数变化 求最长的子序列,无论如何变化,这个子序列都不下降 Hint: \(n \le 10^5\) Solution: ...

  10. 洛谷P3802:小魔女帕琪

    题目背景 从前有一个聪明的小魔女帕琪,兴趣是狩猎吸血鬼. 帕琪能熟练使用七种属性(金.木.水.火.土.日.月)的魔法,除了能使用这么多种属性魔法外,她还能将两种以上属性组合,从而唱出强力的魔法.比如说 ...