Gamit_GLOBK学习笔记1之GAMIT安装

1.1 硬软件准备

- linux发行版,以ubuntu14.04以例
- Gamit10.5源码包 [下载地址](http://www-gpsg.mit.edu/~simon/gtgk/index.htm)
- 数据准备,参见后面章节:数据准备
- 略懂linux命令,知道如何在终端下cd,mv,cp,ln,编辑和保存文本

1.2 依赖项安装

由于使用源码安装,则必须需要源码包所需要的编译依赖项,从而确保编译能够正常完成。gamit10.5源码编译所需要的依赖项为:

gcc         gcc编译器
gfortran    gfortran编译器
csh         gamit10.5必需的shell解释器
libX11-dev  必须的X11-dev安装包

不同的的发行版由于分包的方式不同,这些软件包的名称不太相同,可能需要手动查找一下对应的包名称,不过由于依赖项较为常见,所以一般情况下源里均可直接找到。对于ubuntu14.04来说,可以直接使用下面的命令即可:

$ sudo apt-get insatall gcc gfortran tcsh csh libx11-dev

必须注意的是,gcc编译器的版本最好是4.2~4.8,而目前较新的gcc7.1虽然能够编译通过,但是实际运行的时候会出现错误。

1.3 修改配置

解压gamit安装包之后,会看到里面有若干个压缩包,如:

com.10.50.tar.gz         help                    maps.10.1.tar.gz
cron.sp3u                help.10.50.tar.gz       relnote.10.4
etopo5.grd.10.0.tar.gz   incremental_updates     relnote.10.5
example.10.50.tar.gz     install_software        tables.10.50.tar.gz
example_ftpfiles.tar.gz  install_updates         trackRT_pbo.cmd
gamit                    kf.10.50.tar.gz
gamit.10.50.tar.gz       libraries.10.50.tar.gz

将其中的libraries.10.50.tar.gz解压,并将该包删除(如果不删除的话在安装过程中会再次解压,从而造成配置重置),然后修改其中的Makefile.config文件

$ tar -zxvf libraries.10.50.tar.gz
$ rm libraries.10.50.tar.gz
$ cd libraries
$ ls
comlib  includes  Makefile.config  Makefile.config.bak  matrix

有几个地方需要修改,首先是X11的lib和include的位置。

# X11 library location - uncomment the appropriate one for your system
# Generic (will work on any system if links in place)
X11LIBPATH /usr/lib/X11
X11INCPATH /usr/include/X11

这个要根据系统的X11和include位置进行修改,有两种方法,比较保险的做法是直接查包内的文件的分布位置,如ubuntu就可以这样(libX11.so和xlib.h为X11包两个重要文件)

# 从libX11-dev包内查询libX11.so的位置
$ sudo dpkg -L libX11-dev | grep -i libX11.so
/usr/lib/x86_64-linux-gnu/libX11.so
# 从libX11-dev包内查询xlib.h的位置
$ sudo dpkg -L libX11-dev | grep -i xlib.h
/usr/include/X11/Xlib.h

这样就很容易知道X11的lib和include的位置分别为:/usr/lib/x86_64-linux-gnu//usr/include/X11.另外一种更为通用的方法是直接在/usr/lib/usr/include下寻找:

$ find /usr/lib  | grep -i libX11.so
$ find /usr/include | grep -i xlib.h

根据上面的位置,我们就可以很容易的将位置修改为:

# X11 library location - uncomment the appropriate one for your system
# Generic (will work on any system if links in place)
X11LIBPATH /usr/lib/x86_64-linux-gnu
X11INCPATH /usr/include/X11

如果不想修改X11的参数也是可以的,gamit10.5的安装脚本可以自动找到该参数,但是需要在安装过程中需要注意一下

第二个需要修改的地方就是编译参数了,这个要根据实际情况进行调整,具体的含义如下(均指的是一天的数据):

MAXSIT 最大测站数(default:60)
MAXSAT 最大卫星数(default:32)
MAXATM 最大天顶延迟参数(default:13)
MAXEPC 最大历元数(default:2880)

如果不太明白就先开始使用默认的参数即可。

第三个需要个修改的地方就是编译的内核了。由于gamit的编译安装对于内核有要求,10.5默认只支持到linux 3.0的内核,所以对于3.0以上的内核都需要进行修改。查看内核版本的号方法为:

$ uname -a
Linux 3.16.0-77-generic #99~14.04.1-Ubuntu SMP Tue Jun 28 19:17:10 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

很明显可以看出,Ubuntu14.04的Linux的内核版本号为3.16.0-77-generic,所以需要修改gamit关于内核版本号的选项。在gamit的配置文件中使用四位数字代表linux的内核号,上面即为:3160.

# ----- for Linux from 0.0.1 to 3.0.0  -- #
284 OS_ID Linux 0001 3000

修改为

# ----- for Linux from 0.0.1 to 3.0.0  -- #
284 OS_ID Linux 0001 3160

表示现在Linux内核号可以支持从0.0.1到3.16.0。

编辑修改完成之后,保存退出,可以开始编译了。

1.4 开始编译

正如众多linux源码编译安装包一样,gamit提供了一个自动化编译安装脚本,基本实现了自动化的编译和安装,这个文件即为install_software。使用很简单,只需要为其加上可执行权限,然后执行即可。

chmod +x ./install_software
./install_software

安装过程会出现多次确认情况,一般情况下会出现没有直接使用”y”确认即可。不过对于X11没有配置好的情况下,编译无法进行,会出现X11的lib没有找到的情况,这个时候需要返回上一步重新配置X11的路径并重新编译安装。

其中有一个选项是这样的:

Create the gg link in your home directory to the version of
gamit/globk you just installed ? (y/n)

对于首次安装的同学可以选译y,会在$HOME目录创建一个直接指定gamit安装目录的gg链接,也是gamit一般情况下的默认位置,所以在一些批量脚本中这个位置有相当有用了,建议选择。

2017/06/14 补充:~/gg/tables最好创建,虽然gamit本身并不使用~/gg/tables中的内容(虽然sh开头的脚本中有所使用),但是GLOBK却将这个位置写到源码中,如果不链接该位置,那么平差过程就会出现无法固定的错误!另外,~/gg/tables里面的内容尽量保持最新,因为一些文件GLOBK会用上

1.5 路径配置

经过几分钟的编译完成之后(根据机器的性能),一般情况下会出现下面一段文字:

Don't forget to set your : path to include /opt/gamit10.5/gamit/bin and /opt/gamit10.5/kf/bin
                         : HELP_DIR environment variable in you shell profile
                           (in .cshrc/.tcshrc add: setenv HELP_DIR /opt/gamit10.5/help/)
                         : INSTITUTE evnironment variable in your shell profile
                            (in your .cshrc/.tcshrc add: setenv INSTITUTE where_i_work)
                            where_i_work is a 3 character identifier for your solutions

上面提示的含义是要你将/opt/gamit10.5/gamit/bin/opt/gamit10.5/kf/bin两个目录加到环境变量中去。如果没有这一步的话,那么就不能够在任意的目录下使用gamit命令。对于不同的shell,设置环境变量的方法有所不同,由于Gamit的脚本基于csh,所以给出的是基于csh的环境变量的配置方法,然而目前大多数终端是bash,所以其环境变量设置方法即为在$HOME/.bashrc中添加下面环境变量,然后source生效即可。

# 在~/.bashrc后面添加
export PATH=$PATH:/opt/gamit10.5/gamit/bin:/opt/gamit10.5/kf/bin:/opt/gamit10.5/com
export HELP_DIR=/opt/gamit10.5/help
export INSTITUTE=ABC
# 保存退出后
source ~/.bashrc

相对于脚本的提示的,在添加环境变量的时候多添加了一个/opt/gamit10.5/com的位置,这个位置主要是放置了gamit的批处理脚本,也是需要将其加入环境变量中。另外环境 变量还添加了HELEP_DIR的位置,主要是方便gamit的脚本调用帮助文档。至于INSTITUTE环境变量则可有可无,表明处理的机构的标识符而已。

之后想验证一下gamit的安装方式是否成功,只需要在任一下目录下试着运行add_vec(gamit/bin目录下),apr_to_vel(kf/bin目录下)和sh_gamit(com目录下),只要不提示command not found即可说明环境变量生效了。

如果发现没有生效,请务必核实PATH的位置和gamit的这些可执行文件的目录位置是否相符,若出现不符的问题,重新修改~/.bashrc,然后source生效。

1.6 重新编译安装

如果修改gamit的源码,或者修改了gamit的相关参数,或者换台机器运行(Linux内核并不相同),那么这个时候就要重新编译源代码。Gamit的重新编译安装方法与上面的安装过程几乎完全相同,只是不需要再去解压library.tar.gz这个压缩包了,毕竟这个压缩包已经不存在了。

此条目发表在GAMIT, GNSS, LINUX分类目录,贴了标签。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。