Hypatia安装

由于毕设方向需要安装Hypatia:一个LEO网络仿真框架,可能因为太过小众了,全网没找到几个安装配置教程,断断续续花了好几个星期才整得差不多(或许还有别的漏洞没发现),其间踩了无数的坑,重来了好几次,特此记录一下。

0.相关配置

  • ubuntu:18.4
  • hypatia源码地址:https://github.com/snkas/hypatia

1. 准备工作

有几次安装成功了却无法正常使用cartopy,试遍了cartopy的安装方案,即使成功安装了也无法正常import
最后在cartopy项目里看到作者说最好别用pip安装,推荐使用conda,所以安装之前先在虚拟机上构建conda环境。

#下载anaconda,直接从清华镜像源下载即可
wget https://mirrors.bfsu.edu.cn/anaconda/archive/Anaconda3-5.3.1-Linux-x86_64.sh
#安装anaconda
bash Anaconda3-5.3.1-Linux-x86_64.sh

一路Enter和yes即可,如果不想安装vscode的话记得最后一次选择no。
接下来将conda加入环境变量:

#打开配置文件
sudo /etc/profile

i进入输入模式,在文件最后一行添加:

export PATH=~/anaconda3/bin:$PATH

其中~/anaconda3/bin根据自己的安装路径修改。
然后重启一下虚拟机,用conda -V试试,如果正常输出版本就成功啦。
然后试图用anaconda安装cartopy的时候,发现有个错误:HTTP 000 CONNNECTION FAILED,照着网上说给conda添加源、删除default都没有用,最后发现清华镜像源的首页就写好了解决方案

#打开conda配置文件
sudo vim ~/.condarc

按i切入输入模式,覆盖文件内容为:

channels:
  - defaults
show_channel_urls: true
default_channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
  conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud

如果持续出现HTTP000可将所有的https改为http并执行conda clean -i这个问题很玄学感觉可能要尝试很多种方式。
保存退出即可。
然后安装cartopy

conda install cartopy

2.clone Hypatia

将项目克隆到本地:

git clone https://github.com/snkas/hypatia

3.安装Hypatia依赖

由于我统一执行依赖项安装命令bash hypatia_install_dependencies.sh总是会出现各种各样的错误,干脆拆开来一步步执行(
进入hypatia目录,执行:

sudo apt-get install update
pip install numpy astropy ephem networkx sgp4 geopy matplotlib statsmodels
sudo apt-get install libproj-dev proj-data proj-bin libgeos-dev
sudo apt-get -y install openmpi-bin openmpi-common openmpi-doc libopenmpi-dev lcov gnuplot

然后是安装同作者的exputilnetworkload库:

#从GitHub上clone下来
git clone https://github.com/snkas/exputilpy
git clone https://github.com/snkas/networkload
#安装exputil
cd exputilpy
python -m pip install .

Hypatia安装_第1张图片

cd ..
#安装networkload
cd networkload
bash install_local.sh

Hypatia安装_第2张图片

4.开始编译

bash hypatia_build.sh

可能出现的错误及解决方案有:

  1. cannot find dependency ‘basic-sim’ of module ‘statelite-network’
    如果是这样的错误,cd到hypatia/ns3-sat-sim/simulator/contrib/basic-sim目录下,ls一下看看是不是空的,如果是,那么:
    #回到contrib目录
    cd ..
    #删除空目录basic-sim
    rmdir basic-sim
    #从作者的GitHub重新clone一下basic-sim
    git clone https://github.com/snkas/basic-sim
    #不知道是什么命令,但是要执行 不然编译阶段会报错
    git submodule update --init --recursive
    
  2. cannot find ns3/tcp-optimizer.h in the model of satellite-network
    #在hypatia/ns3-sat-sim/simulator/contrib/basic-sim执行以下语句
    git submodule update --init --recursive
    
  3. gcc: internal compiler error
    这是内存不足的问题:参考解决方案

编译成功以后:
Hypatia安装_第3张图片

5.测试

回到hypatia目录,执行:

bash hypatia_run_tests.sh

如果跑的差不多(指错误不那么多)大概就是装好了,其他的留着慢慢解决吧(

你可能感兴趣的:(卫星网络,ubuntu,python,linux)