GEE Build Instructions[译]以及实践中遇到的问题

Google Earth Enterprise是谷歌地球的企业版,谷歌将其于2017年3月开源在Github。本文介绍GEE的安装步骤,译自github上的英文文档。
原文地址:Build Instructions
GEE包含三个核心组件:

  • Fusion:导入图像、图像和地形资源数据并进行“融合”,生成可操作的3D地球模型或者2D地图
  • Server:Apache 或是基于 Tornado 的服务器,以存储 Fusion 创建的私有地球模型。
  • Client:用于查看 3D 地球模型和 2D 地图的 Google 地球企业客户端(EC)和 Google Maps Javascript API V3。

这次开源的产品包括了GEE Fusion、GEE Server 和 GEE Portable Server,GEE Client 和 GE API并不开源;
但是,由于GEE Fusion和GEE Server开源了,所以图像和地形四叉树的实现开始支持第三方开发人员建立视图,用于访问GEE Server数据库。


目录

  • 在Ubuntu 14.04 LTS 和 RHEL 7上搭建Fusion和Server组件
  • Ubuntu 14.04.5 LTS搭建步骤
  • RHEL 7搭建步骤
  • 如果你有5.1.3安装程序
  • 在Linux和Windows上构建 Portable Server
  • Portable on Linux
  • Portable on Windows

在Ubuntu 14.04 LTS 和 RHEL 7上搭建Fusion和Server组件

在Ubuntu或RHEL/CentOS都要运行这些命令

  1. 根据下面的指令为您的Linux操作系统安装git
  2. 根据https://git-lfs.github.com指定的指令安装git-lfs
  3. 用git克隆gee-os的repo
    方法一:一步克隆并下载LFS文件(可能较慢并易错)
    git clone git@github.com:<username>/earthenterprise.git
    方法二:两步克隆并下载LFS文件
    GIT_LFS_SKIP_SMUDGE=1 git clone git@github.com:<username>/earthenterprise.git cd earthenterprise git lfs pull
  4. 在下面的搭建说明中,搭建GEE/Fusion的scons指令中有下列选项:
  • internal=1 - 用无优化的代码搭建,最适合开发和调试
  • optimize=1 - 用优化过的代码搭建,但会包含一些调试信息
  • release=1 - 有优化过的代码搭建一个没有调试信息的版本
  • -j# - 指定并发数,用一个整数代替#,它应该大致匹配处理器的核数
  • --debug=stacktrace - 如果在scons脚本中有一个错误,这个选项将给你关于如何调试它的更详细的信息
  • --config=force - 如果你不小心删除了.sconf_temp目录或者改动了你的系统库,用这个选项让配置重跑一遍,否则scons可能会报缺库
  1. 根据你要使用的平台,进行下面的步骤
  2. 运行单元测试
    cd NATIVE-OPT-x86_64/bin/tests ./RunAllTests.pl
    或者运行一个个人测试

Ubuntu 14.04.5 LTS搭建步骤:

  1. 安装git:
    sudo apt-get install git (installs version 1.9.1)
    执行下列步骤以得到git的最新版本(1.9.1版本目的在于和repository进行交互,但是如果你想要下载最新版本的git,操作步骤陈述如下):
    sudo -i add-apt-repository ppa:git-core/ppa apt-get update apt-get install git
    这样安装的版本是2.11 注:在进行之前确认退出“sudo”
  2. 安装下列包(如果没有安装的话)
    sudo apt-get install gcc g++ scons automake autoconf libperl4-corelibs-perl libtool xorg-dev doxygen python-dev alien swig libgtest-dev libstdc++6 libxml2-dev gettext libxinerama-dev libxft-dev libxrandr-dev libxcursor-dev libgdbm-dev libc6 libc6-dev libmng-dev zlib1g-dev libcap-dev libpng12-0 libpng12-dev freeglut3-dev flex libx11-dev bison++ bisonc++ libjpeg-dev libjpeg8-dev python2.7 python2.7-dev libogdi3.2-dev libgif-dev libxerces-c-dev libgeos-dev libgeos++-dev libfreetype6 libfreetype6-dev python-imaging libproj-dev python-setuptools libgif-dev libxerces-c-dev libcap-dev libpq-dev openssl
    3.构建第三方库:比如:GEEDIR=/googleclient/geo/earth_enterprise
    cd $GEEDIR/src scons -j8 optimize=1 third_party
  3. third_party/python/SConscript构建Fusion/Earth Server:用sandbox路径替换-idirafter
    `scons -j8 optimize=1

RHEL 7搭建步骤

  1. 安装git
    推荐:安装最新版本的git:
    i. enable IUS repo More Info.
    cd /tmp wget https://rhel7.iuscommunity.org/ius-release.rpm sudo yum install ius-release.rpm
    ii. 安装git 2.x
    sudo yum install git2u-all
    或者安装系统默认的版本(1.8)
    sudo yum install git
  2. 安装EPEL repo
    sudo yum install epel-release
    注,如果这个命令不能工作,尝试列出的替换方法here
  3. enable optional repo
    sudo subscription-manager repos --enable=rhel-7-server-optional-rpms sudo subscription-manager repos --enable=rhel-7-server-optional-source-rpms
  4. 安装开发工具
    sudo yum --setopt=group_package_types=mandatory,default,optional groupinstall "Development Tools"
  5. 安装扩展包
    sudo yum install scons perl-Perl4-CoreLibs xorg-x11-server-devel python-devel perl-Alien-Packages gtest-devel openssl-devel libxml2-devel libXinerama-devel libXft-devel libXrandr-devel libXcursor-devel gdbm-devel libmng-devel libcap-devel libpng12-devel libXmu-devel freeglut-devel zlib-devel libX11-devel bison-devel openjpeg-devel openjpeg2-devel geos-devel proj-devel ogdi-devel giflib-devel xerces-c xerces-c-devel
  6. 构建第三方库
    GEEDIR=/googleclient/geo/earth_enterprise
    cd $GEEDIR/src scons -j8 optimize=1 third_party
  7. 构建Fusion/Earth Server
    scons -j8 optimize=1

如果你有5.1.3安装程序

如果你有GEE和Fusion 5.1.3安装程序,那么有一个构建部署脚本可以简化构架和安装的过程。将来这个脚本将会更新,以脱离之前的安装程序单独运行。

  1. 安装GEE和Fusion 5.1.3
  2. 如上克隆repo
  3. 构建并部署
    cd $GEEDIR/src ./tmp/build_and_deploy_gee.sh --build

在Linux和Windows上构建 Portable Server

一个用来在Linux和Windows上构建 Portable Server的Python脚本正在被评估。经过批注,合并,Portable Server将按下列段落描述被构建。
软件构建需要:

  • Python
  • Python pexpect installed
  • Swig with support for Python
  • g++

Portable 运行需要:

  • Python
  • Python tornado installed

Portable on Linux

确认你安装了Python, the pexpect Pip package, as well as tornado, g++, and Swig with Python support
例如:
sudo apt-get install g++ python python-pexpect python-tornado swig
运行
earthenterprise/earth_enterprise/src/portableserver/build.py
构建脚本会产生一个名字看起来像thenterprise/earth_enterprise/src/portableserver/build/portableserver-linux-5.1.3-20170412.tar.gz的压缩文档(archive)。文件名的构建日期部分将会根据你构建的日期改变。
为了从这个archive包运行Portable Server:

1. 提取所有的文档内容
2. cd portableserver-linux-5.1.3-20170412/server/ #(substituting your extracted directory)
3. python portable_server.py

在启动服务前,你可以根据你的配置需要编辑portableserver-linux-5.1.3-20170412/server/portable.cfgportableserver-linux-5.1.3-20170412/server/remote.cfg
清除构建文件,运行
earthenterprise/earth_enterprise/src/portableserver/build.py --clean

Portable on Windows

安装g++编译器

你可以用g++编译器安装 MinGW,或者run the build from a Git-BASH or Git-Cmd shell fromGit-Scm, which should come with g++。
确认g++在你的PATH

安装Swig with Python Support

  1. 下载一个Windows版的Swig Zip
  2. 解压Zip到想要的安装目录
  3. 添加你期望的安装目录到你的PATH

安装Python

下载并安装 Python 2.7或更高版本
如果你安装了Python,确认你装了pexpecttornado
cd \Python27\Scripts pip install pexpect tornado
把你的Python安装路径添加到PATH

构建Portable Server

用你PATH里的g++,swig,python打开一个command prompt。
运行
python earthenterprise\earth_enterprise\src\portableserver\build.py
构建脚本会产生一个名字看起来像thenterprise/earth_enterprise/src/portableserver/build/portableserver-linux-5.1.3-20170412.tar.gz的压缩文档(archive)。文件名的构建日期部分将会根据你构建的日期改变。
为了从这个archive包运行Portable Server:

1. 提取所有的文档内容
2. cd portableserver-linux-5.1.3-20170412/server/ #(substituting your extracted directory)
3. python portable_server.py

在启动服务前,你可以根据你的配置需要编辑portableserver-linux-5.1.3-20170412/server/portable.cfg和portableserver-linux-5.1.3-20170412/server/remote.cfg
清除构建文件,运行
earthenterprise/earth_enterprise/src/portableserver/build.py --clean


实践中遇到的问题

在实际操作过程中,我卡在git lfs pull这一步,存在lfs上的东西无法批量下载。
克隆的库只有300多M,完整的应该有七八百M。
手动下载和替换可以解决部分报错,但是数量太大无法全部实现。
这里有一个与我遇到相同报错的Issues:Fatal error: libjs/jsautocfg.h: No such file or directory
开发者给出的答复是“你没有装git lfs,或没有执行git lfs pull”
提问者对此答复的回答是“Thanks. It works now.”
可能是因为他们都是外国用户吧(然而我尝试翻墙仍然下不动)。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,332评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,508评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,812评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,607评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,728评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,919评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,071评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,802评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,256评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,576评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,712评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,389评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,032评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,026评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,473评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,606评论 2 350

推荐阅读更多精彩内容