|
Gamit作为GPS精密数据处理软件可以运行于所有UNIX及其衍生的的系统之上,linux操作系统下GAMIT/GLOBK的安装就是一次源代码的编译,linux版本众多,各个版本所带的编译器也不尽相同,而不同的编译器下,软件的安装与配置也不相同,并且,随着操作系统和软件版本的不断更新,兼容性也成为了一个棘手的问题,所有这些,都使得gamit/globk的安装显得十分复杂。下面,将自己成功安装的整个过程与过程中遇到的问题及解决方法整理成笔记,仅供参考。
一.系统的安装与配置
1.在官方网站下载ubuntu14.10的镜像文件,利用UltraISO软件制作U盘启动盘,完成ubuntu系统的安装。
2.安装相关的运行环境。首先,打开终端,输入命令gcc –v查看gcc版本号,发现ubuntu14.10自带的gcc是4.9版本的,这个版本的编译器在编译gamit时是有问题的,所以这里我们需要安装一个低版本的gcc,在终端输入命令:
Sudoapt-get install gcc-4.4,系统自动安装gcc-4.4.
现在系统中有两个不同版本的gcc编译器,但系统默认使用的还是最初的gcc-4.9.这时,需要我们输入命令:
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.440;
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.960
然后输入命令:sudo update-alternatives --config gcc,然后根据提示选出对应的编号,将系统默认的编译器换成gcc-4.4.
在终端输入gcc –v,查看得知gcc编译器已改为gcc-4.4.
(1) 安装gfortran编译器。Sudo apt-get install gfortran-4.4
(2) 安装csh和tcsh。sudo apt-get install csh;sudo apt-get install tcsh
(3) 安装libx11库,这个是为gamit软件提供图形支持的包。Sudo apt-get install libx11-dev
(4) 配置shell。在终端输入命令:echo $SHELL查看当前是什么类型的shell,一般情况下,ubuntu系统默认的都是bash,gamit是用csh写的,最好是在csh中安装。这就要求我们改变当前的shell。在终端输入:chsh,按提示输入密码,然后输入shell的路径,路径为:/bin/csh,这样就将系统shell改为csh了。
二.GAMIT软件的安装
1. 将gamit10.35的源码复制到根目录下/opt目录下,cd/opt/gamit10.35,进入到gamit10.35,在终端输入ls,查看都有哪些文件,利用命令tar –xzvf分别解压这些文件包
2. 进入到gamit10.35文件夹,然后 cd libraries,这时需要对libraries文件夹中的Makefile.config文件进行编译前的修改,在终端输入命令:sudo gedit Makefile.config,这时系统自动弹出该文件的文本编辑框,我们需要修改的地方有三处:
(1) 修改X11的路径。修改如下:
(2) 修改gamit的内部参数。分别是MAXSIT(最大测站数)、MAXSAT(最大卫星颗数)、MAXATM(最大天顶延迟)、MAXEPC(最大历元数)。将原先默认参数修改为如下:
(3) 修改操作系统版本号。打开终端,输入uname –a,查看系统版本号,只需记住前四位即可。找到如下位置:
将3001改为自己的系统版本号的前四位。
全部修改完毕后记得保存一下,关闭窗口。
3. 下面开始正式的安装。cd /opt/gamit10.35,然后ls查看,找到一个install_software的安装文件,首先要获取安装权限:chmod +x install_software,然后安装就可以了:./install_software.
因为在此之前我们已经完成了对Makefile.config文件的修改,所以执行安装后一路回复y就可以了。经过相当长的一段编译时间,最后显示globk installed,最后问你是否创建gg的链接文件,也就是快捷方式,回复y确定就可以。至此,安装就成功了。
4. 配置gamit的命令路径。软件虽然已成功安装,但是还不能正常使用,还需要做些工作。在主文件夹下新建一个.cshrc文件,将如下内容复制进来
#
# This file is applicable to all C-shell users.
# set prompt
set prompt = "[`echo $cwd`]% "
set history = 50
set gamitpath = /opt/gamit10.35
set path = (. /bin /sbin /ect /usr/bin /usr/sbin /usr/ucb /usr/bin/X11 /usr/X11R6/bin $path)
set path = (. /usr/local/gmt/bin /usr/local/bin /usr/local/sbin /usr/local/lib /usr/lib $path)
#set path = (. /usr/local/gmt/bin /usr/local/bin /usr/local/lib /usr/ucb/ nfs r0 soft0 0 $path)
set path = (. $gamitpath/gamit/bin $gamitpath/kf/bin $gamitpath/com $path)
set path = (. /opt/gamit10.35/com $path)
set path = (. /opt/gamit10.35/gamit/bin $path)
set path = (. /opt/gamit10.35/kf/bin $path)
setenv HELP_DIR $gamitpath/help/
setenv PATH "/usr/sbin:/sbin:${PATH}"
setenv MANPATH /usr/local/gmt/man:/usr/local/man:/usr/X11R6/man
setenv LIBPATH /usr/local/gmt/lib:/usr/lib:/usr/local/lib:/usr/i386?glibc21?linux/lib
#set gcclib direction
setenv LD_LIBRARY_PATH /usr/local/gcc?3.4.1/lib/
# set alias
alias cd 'cd \!*; set prompt = "[`echo $cwd`]% "'
alias pwd 'echo $cwd'
alias ls 'ls ??classify'
alias ll 'ls ?l'
alias la 'ls ?a'
alias rm 'rm ?i'
alias mv 'mv ?i'
最后还是记得保存一下,然后关闭文件窗口。回到终端输入:source .cshrc,对该文件进行加载,那么路径就生效了。验证一下GAMIT是否能够正常使用,打开终端,输入命令doy,若显示一大堆关于day of year 的帮助信息,则说明成功了!
三.安装中遇到的问题
1. ubuntu14.10作为一个比较新的linux系统版本,其自带的gcc编译器是版本号较新的4.9,如果直接通过apt-get install gfortran安装gfortran编译器,那么系统也会默认下载安装最新版本的gfortran4.9. 这样,在编译gamit10.35时总是会出现一些编译错误,所以一定要安装一个比较低一些版本的gcc和gfortran,这样就可以正常编译源码了。
2. 一些命令,如sh_get_nav,sh_get_orbits,sh_get_rinex无法使用,需要修改。进入gg文件夹下面的com里面,然后将第一行的tcsh修改为csh就可以搞定。
3. 在编译安装时出现错误,错误提示信息如下:
rnx2crx.c:87:13:warning: built-in function ‘y0’ declared as non-function [enabled by default]
rnx2crx.c:87:34: warning: built-in function ‘y1’ declaredas non-function [enabled by default]
rnx2crx.c:108:6: error: conflicting types for ‘getline’
/usr/include/stdio.h:671:20: note: previous declaration of‘getline’ was here
rnx2crx.c:559:6: error: conflicting types for ‘getline’
/usr/include/stdio.h:671:20: note: previous declaration of‘getline’ was here
rnx2crx.c: In function ‘putdiff’:
rnx2crx.c:671:9: warning: '0' flag ignored with precisionand ‘%d’ gnu_printf format [-Wformat]
rnx2crx.c: In function ‘put_clock’:
rnx2crx.c:689:9: warning: '0' flag ignored with precisionand ‘%d’ gnu_printf format [-Wformat]
make: *** [rnx2crx] Error 1
Failure in make_gamit -- install_software terminated
其实是getline这个函数发生冲突,解决办法:在/opt/gamit10.35/gamit/utils/rnx2crx.c,修改rnx2crx.c中所有getline为mygetline,使用命令sudo gedit就可以编辑修改了。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-3-28 18:53
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社