做毕业设计需要用到NS3仿真,所以昨天终于从复试后的懒散中抽了时间配了一下环境,过程中遇到一些困难,记录在这里。
我的环境: vmware16+Ubuntu16.04
步骤:
配置Ubuntu16.04,据说使用NS3用这一版本的Ubuntu最好,于是配置了这个系统。详细的配置过程在网上都能搜到。
进入Ubuntu系统,打开终端,接下来的步骤参考自
Ubuntu上安装NS3(最详细的图文介绍)
大致步骤就是参考这位博主的,以下着重记录下在这个过程中我遇到的一些问题:
第一部分:
在终端键入如下代码:
sudo apt-get install gcc-g++ python python-dev
ps:第一次安装这个依赖包的时候我是在图书馆进行的,并且是按照朋友给我的一个教程来,然后输命令怎么输都安不上,有各种问题。当时用的命令是这样的:
yum -y install gcc-c++ python
后来突然发现,他给的那个教程是在centos下装的NS3,搜搜才知道···Ubuntu下好像用不了yum相关的命令···打扰了!
发现需要用 ‘apt-get’ 命令安装依赖包后,我转用了上面提到的那个命令,然后报了以下错误:
这是因为apt-get命令无法使用,好像被另一个进程锁定了,我用了强制解锁的方法,在终端键入:
sudo rm /var/cache/apt/archives/lock //强制解锁
sudo rm /var/lib/dpkg/lock
sudo systemctl --force --force reboot //重启系统
第二部分:
终端键入以下命令:
sudo apt-get install mercurial
sudo apt-get install bzr
sudo apt-get install gdb valgrind
sudo apt-get install gsl-bin libgsl0-dev libgsl0ldbl
这里最后一行代码会报错,提示:
1.选中的“libgsl-dev”而非“libgsl0-dev”;
2.libgsl0ldbl这个软件包不存在,但有其他包可以替换(下面会有提示可以替换的包)
所以需要把命令中的libgsl0-dev换成libgsl-dev,并且把libgsl0ldbl换成它所提示的可替换的包。
这之后,继续键入如下命令,等待安装即可:
sudo apt-get install flex bison libfl-dev
sudo apt-get install tcpdump
sudo apt-get install sqlite sqlite3 libsqlite3-dev
sudo apt-get install libxml2 libxml2-dev
sudo apt-get install libgtk2.0-0 libgtk2.0-dev
sudo apt-get install vtun lxc
sudo apt-get install uncrustify
sudo apt-get install doxygen graphviz imagemagick
sudo apt-get install texlive texlive-latex-extra texlive-generic-extra texlive-generic-recommended
sudo apt-get install texinfo dia texlive texlive-latex-extra texlive-extra-utils texlive-generic-recommended texi2html
sudo apt-get install python-sphinx dia
sudo apt-get install python-pygraphviz python-kiwi
sudo apt-get install qt4-qmake
sudo apt-get install qt4-dev-tools
sudo apt-get install libboost-signals-dev libboost-filesystem-dev
sudo apt-get install openmpi-bin openmpi-doc libopenmpi-dev
在这个过程中我电脑卡死,不知道是因为电脑配置不行,内存不够,带不动虚拟机还是什么,反正我的电脑先黑屏,然后普蓝屏,然后就···卡死了···
在网上找到了一个方法,试了试之后确实变快了很多,这里贴出链接:
Linux虚拟机出现卡死且无法结束进程的解决办法
这些步骤结束后,恭喜!依赖包就下完啦!!!
第三部分:
这一部分需要从网上下载NS的安装包,进行安装:
终端输入以下命令:
cd //是为了进入根目录
mkdir tarballs //创建一个名为tarballs的文件夹
cd tarbslls //进入tarballs文件夹
wget http://www.nsnam.org/release/ns-allinone-3.27.tar.bz2 //从网上获取安装包
//下载······
tar -xjvf ns-allinone-3.27.tar.bz2 //下载完成后解压
//解压······
cd ns-allinone-3.27 //进入此文件目录下
sudo ./build.py //键入命令进行安装
在最后一步编译时,我又遇到了问题:
代码修正:
cd ns-3.27
sudo ./waf clean
sudo ./waf -d debug --enable-example --enable-tests configure
sudo ./waf
再一次编译,又出现了以下错误:
g++:internal compiler error:Killed(program cc1 plus)
查过出现这个问题的原因,发现是内存不够的问题,创建临时分区即可解决:
sudo dd if=/dev/zero of=/swapfile bs=64M count=16
sudo mkswap /swapfile
sudo chmod 0600 /swapfile
sudo swapon /swapfile
重新编译一下,再输入:
sudo ./waf --run hello-simulator
出现了“Hello Simulator”,成功!!!(* ^ ▽ ^ *)