NS-3安装总结 (Ubuntu18.04LTS / NS-3.30.1)

装了一天的NS-3的个人总结
安装脚本那部分的代码具有时效性(官网可能会更新对某些依赖的支持)和片面性(适用于Ubuntu18.04与NS-3的3.30.1版本,其他组合可能会不一样)
如果和我的配置很不一样,或者隔了很久,还是建议看官网文档:https://www.nsnam.org/wiki/Installation#Installation

先决条件

环境

NS-3不支持Windows环境,支持Linux、MacOS
在这里插入图片描述
双系统、虚拟机、再来一台电脑,总之需要一个非windows环境
这个教程的环境是VMware虚拟机+Ubuntu18.04LTS

更新源

Linux安装软件,是从源列表中查询安装的,源列表是一些网址,网址指向了可以安装的软件,这些软件是绝对安全且可用的
apt-get 是Linux发行版的‘包管理器’
在终端执行以下两条命令

sudo apt-get update
sudo apt-get dist-upgrade

第一条:update 更新系统的源列表
第二条:upgrade 对比本机的软件和源列表指向的软件库中的软件版本,更新旧的软件,不会升级所有具有依赖性问题的软件或包。(而dist-upgrade会尝试卸载有依赖问题的软件或包,更彻底,也有一定风险)
update
upgrade

安装依赖

如果你只安装最基本的那些依赖,就不需要写脚本,最基本的只有三条,直接执行命令就行。那么后面一大部分都可以跳过。
如果装全的话有20条,稍微有点多,所以教怎么写脚本。
先装一个vim、geany之类的文本编辑器,用来写批量安装脚本,如果不想写,可以把脚本内容一条一条执行

之后分别用vim和geany举栗子
vim是全终端操作
geany有图形界面
各有所长

下面是脚本内容,根据2020/6/24的官方文档对ubuntu18.04的依赖要求整理的,如果时间隔的久了或者配置不一样,去官方文档自己整理一下
在这里插入图片描述
简单版本的,只有必要的依赖

#!/bin/sh
sudo apt-get install g++ python3
sudo apt-get install g++ python3 python3-dev pkg-config sqlite3
sudo apt-get install python3-setuptools git

完整的,啥都有

#!/bin/sh
sudo apt-get install g++ python3
sudo apt-get install g++ python3 python3-dev pkg-config sqlite3
sudo apt-get install python3-setuptools git
sudo apt-get install qt5-default mercurial
sudo 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 
sudo apt-get install openmpi-bin openmpi-common openmpi-doc libopenmpi-dev
sudo apt-get install autoconf cvs bzr unrar
sudo apt-get install gdb valgrind 
sudo apt-get install uncrustify
sudo apt-get install doxygen graphviz imagemagick
sudo apt-get install texlive texlive-extra-utils texlive-latex-extra texlive-font-utils dvipng latexmk
sudo apt-get install python3-sphinx dia
sudo apt-get install gsl-bin libgsl-dev libgsl23 libgslcblas0
sudo apt-get install tcpdump
sudo apt-get install sqlite sqlite3 libsqlite3-dev
sudo apt-get install libxml2 libxml2-dev
sudo apt-get install cmake libc6-dev libc6-dev-i386 libclang-6.0-dev llvm-6.0-dev automake pip
python3 -m pip install --user cxxfilt
sudo apt-get install libgtk-3-dev
sudo apt-get install libboost-signals-dev libboost-filesystem-dev

注意:特别是用脚本批量安装的时候,一定要看每个包是否安装成功了,有无出现包被废弃无法定位软件包等情况,根据提示加以处理,提示让换哪个名字就把哪个名字换了,一般都能解决。这类提示不会加红,如果批量安装很容易忽略。一般如果使用的是隔了一段时间的脚本,因为官方更新,会出现这种情况,如果要避免,可以去官方文档整理一个新的脚本。
在这里插入图片描述

vim

安装

sudo apt-get install vim

安装

创建脚本文件

输入

vi mysetup

进入vim创建的mysetup文件中
在这里插入图片描述

键盘按一下’“i”,进入输入模式
在这里插入图片描述

复制上面的脚本内容,ctrl+shift+INS粘到文件中(或者你也可以选择自己打)
在这里插入图片描述

按"Esc"键,输入":",在底行输入"wq"并回车,就保存退出了
在这里插入图片描述

编译并运行脚本文件
在终端输入

chmod +x mysetup
./mysetup

在这里插入图片描述
盯着看有没有未安装成功的,或者等它安装完翻一遍信息,处理一下

geany

安装

sudo apt-get install geany
在这里插入图片描述

按"Windows"键
搜索geany,点一下
在这里插入图片描述

创建脚本文件

新建文档
在这里插入图片描述

另存为
在这里插入图片描述

另保存为mysetup
在这里插入图片描述

把上面的脚本内容粘进去,保存
在这里插入图片描述

之后的操作一样,开一个终端,编译运行
在这里插入图片描述

安装NS-3

获取安装包

(有发现进不去官网还无法宋宿主机复制的情况,提供一个3.31.1版本下载地址https://chanceying.lanzous.com/iU3bneb64xi
官网下的是bz2后缀的,因为蓝奏云不支持bz2后缀,加了个rar后缀,但是不影响,也可以直接提取)

进NS-3官网:http://www.nsnam.org/releases/
下载一个NS-3的安装包,
在这里插入图片描述

解压
在这里插入图片描述
在这里插入图片描述

安装

进第一层文件夹
在这里插入图片描述

开始安装NS-3
输入

sudo ./build.py

如果幸运的话,最后你能看到
在这里插入图片描述
可喜可贺!可喜可贺!

遇到的问题

内存不足(g++: internal compiler error: 已杀死(program cclplus))

虽然我折腾了一天,但其实问题的根本都是内存不足,导致g++停止编译,被系统杀死了,但是这条信息不是红的,它会显示在红色报错的上方不远处,在这之前终端的消息会停滞很久
在这里插入图片描述
而红色醒目的报错什么都有,二且每次都不同,“ns3-wifi”,“ns3-internet”, "ns3-network"之类的,总之遇到好多红色报错,每次都不一样,因为这个换了三个版本,从3.30.1到3.28到3.26 ,于是折腾了好久都没解决
这一天的时间,都是因为我没有重视白色信息orz

方案一:增加内存

给你的虚拟机增加内存,然后再安装试试,如果调到电脑极限还是不够。或者不是虚拟机,使用方法二

方案二:交换分区

交换分区就是暂时存放内存中暂时用不到的东西的地方,用这个方法给内存减负,由于反复读取磁盘,速率会变慢,但是咱们安都安不上了,还在乎速率吗!

分配空间
bs的值为每块的大小,count的值是一共多少块,下面这条示例的意思是:创建一个大小为64M*160=10G的空文件
具体大小可以酌情自己调

sudo dd if=/dev/zero of=/swapfile bs=64M count=160

256M大小的
10G
分区越大,创建的时间越长,也可以看到,其读写速度也会变慢,但是咱们不在乎

创建交换分区

sudo mkswap /swapfile

在这里插入图片描述

激活交换分区
查看是否激活成功

swapon /swapfile
swapon -s

在这里插入图片描述

激活成功了,再去安一次NS-3
如果还是不够

把原来的分区删了,建一个更大的
删除,并查看是否删除成功

sudo swapoff /swapfile
swapon -s

在这里插入图片描述

交换分区的问题:文本文件正忙

创建空文件的时候显示:打开失败文本文件正忙
在这里插入图片描述
然后用swapon -s查了一下
发现系统里已经有了一个叫swapfile的交换分区
在这里插入图片描述
这个swapfile应该是默认的交换分区,但是很明显这个分区并没有给编译NS-3提供帮助
我一开始没有成功运行第一条创建空文件,之后不管,执行了第二条和第三条,里面有个提示,这个分区文件是挂载状态
在这里插入图片描述

于是果断删除这个默认分区,然后三步走建一个新的

这是当时的整套流程
在这里插入图片描述

最后,用完了交换分区,记得把他删了,它占着磁盘空间,平常也用不到

  • 11
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值