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

獲取安裝包

進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提供幫助
我一開始沒有成功運行第一條創建空文件,之後不管,執行了第二條和第三條,裏面有個提示,這個分區文件是掛載狀態
在這裏插入圖片描述

於是果斷刪除這個默認分區,然後三步走建一個新的

這是當時的整套流程
在這裏插入圖片描述

最後,用完了交換分區,記得把他刪了,它佔着磁盤空間,平常也用不到

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章