GAMIT/GLOBK 安装攻略(Cygwin 下成功,Slackware 下失败)(欢迎转载,解救被 GAMIT/GLOBK 郁闷的造业的人)
2008-05-06 19:07
316 查看
GAMIT/GLOBK 果然是相当的不好装,不过今天貌似搞定了。网上的资料不多,谈及奇怪问题的情况的文章更少,因此想起写这篇文章。
1. 操作系统
其实我一直就不明白,一个科学计算的程序干嘛用那么多平台相关的代码(Doris 也是这副德行,很让人不爽)。本来就捉襟见肘的硬盘空间还要分杯羹给*nix系统,真的很麻烦(别看我网名linuxmao,这个是有历史因素的)。我先用的是 Slackware,一个以开发著称的 Linux 发行版(当然还用过 FreeBSD 和 Ubuntu,很可惜,这二者装 g77 不方便)。在 Cygwin 的情况下务必请大家断网,关 Kaspersky,关360安全卫士,关360保险箱,否则 Cygwin 的 dlls 会中途出错,无法继续。
2. X11
Slackware 在默认的情况下,貌似 X11LIBPATH 和 X11INCPATH 是空的。这个问题开始你不会发现,只有在 make_gamit 这步中才会出问题。因为 make_gamit 会检查这两个变量对应的路径,如果为空,会失败(我把安装脚本给改了,让 make_gamit 不去检查 X11 是否存在。这么做会不会有后遗症我不知道,因为在那之前就失败了)。在 Cygwin 下面,你如果在安装时选择了 X11 的相关头文件和库文件,X11INCPATH 会被自动找到(/usr/X11R6/include),但是 X11LIBPATH 不会被找到。为什么呢?这个查找过程实际上是自动搜索 Xlib.h 和 libX11.a 两个文件的路径。但是 Cygwin 下没有 libX11.a,相应的是一个叫做 libX11.dll.a 的文件。用 ln -s libX11.dll.a libX11.a 命令做一符号链接就好了。
3. g77
Slackware 的 g77 是有瑕疵——没有 idate() 函数(反正我没找到,网上也语焉不详)。国外的新闻组上有篇文章给了一个方案,将 date_and_time() 函数转化为 idate()。由于对 Fortran 不熟,所以只得作罢。我推测是 Slackware 的 g77 是4.x版的,Cygwin 是3.4.4,反正 GCC 每次大升级都不怎么保证向下兼容。
另外,不知道为什么,Cygwin 下运行 install_soft 没有传递编译器类型,这点真的很无语,只得再次改了安装脚本。
4. uname -a
这个大家应该知道是什么,就是看系统的版本了。Cygwin 得出来的是“CYGWIN_NT-5.1 <username> 1.5.18(0.132/4/2) <date> <time> i686 unknown unknown Cygwin”。unimake 会 name mangle 一下,把它变成 OS_ID <system> <version> 的形式,比如 SunOS 4.1.10 就是 OS_ID SunOS 4110。这个会和 makefile.config 中的块对应,比如 OS_ID SunOS 4110 4131,也就是说任何 SunOS,版本在4.1.10和4.1.31之间的都可以使用下面的命令。对于 Linux,采用的是 OS_ID Linux 0000 3000,由于 Linux 目前只有2.6.26版,所以都是可以执行的。问题在于没有一个叫做 OS_ID CYGWIN_NT-5.1 的条目,自然 Cygwin 下安装会报错。不过 Cygwin 号称是和 Linux 兼容的(因为 Linux 正式称谓是 GNU/Linux,也就是说 GNU 的软件系统 + Linux 内核,而 Cygwin 就是推出 GNU 在 Windows 下的兼容,自然二者是兼容),因此要么把配置文件中原本的 CYGWIN_NT-5.1 改为 Linux,抑或对着 Linux 条目的样式假造一个 OS_ID CYGWIN_NT-5.1 0000 3000 就好了。
大部分的内容我想已经覆盖到了,以后再想到什么欢迎交流。
2008.5 于 汉口
1. 操作系统
其实我一直就不明白,一个科学计算的程序干嘛用那么多平台相关的代码(Doris 也是这副德行,很让人不爽)。本来就捉襟见肘的硬盘空间还要分杯羹给*nix系统,真的很麻烦(别看我网名linuxmao,这个是有历史因素的)。我先用的是 Slackware,一个以开发著称的 Linux 发行版(当然还用过 FreeBSD 和 Ubuntu,很可惜,这二者装 g77 不方便)。在 Cygwin 的情况下务必请大家断网,关 Kaspersky,关360安全卫士,关360保险箱,否则 Cygwin 的 dlls 会中途出错,无法继续。
2. X11
Slackware 在默认的情况下,貌似 X11LIBPATH 和 X11INCPATH 是空的。这个问题开始你不会发现,只有在 make_gamit 这步中才会出问题。因为 make_gamit 会检查这两个变量对应的路径,如果为空,会失败(我把安装脚本给改了,让 make_gamit 不去检查 X11 是否存在。这么做会不会有后遗症我不知道,因为在那之前就失败了)。在 Cygwin 下面,你如果在安装时选择了 X11 的相关头文件和库文件,X11INCPATH 会被自动找到(/usr/X11R6/include),但是 X11LIBPATH 不会被找到。为什么呢?这个查找过程实际上是自动搜索 Xlib.h 和 libX11.a 两个文件的路径。但是 Cygwin 下没有 libX11.a,相应的是一个叫做 libX11.dll.a 的文件。用 ln -s libX11.dll.a libX11.a 命令做一符号链接就好了。
3. g77
Slackware 的 g77 是有瑕疵——没有 idate() 函数(反正我没找到,网上也语焉不详)。国外的新闻组上有篇文章给了一个方案,将 date_and_time() 函数转化为 idate()。由于对 Fortran 不熟,所以只得作罢。我推测是 Slackware 的 g77 是4.x版的,Cygwin 是3.4.4,反正 GCC 每次大升级都不怎么保证向下兼容。
另外,不知道为什么,Cygwin 下运行 install_soft 没有传递编译器类型,这点真的很无语,只得再次改了安装脚本。
4. uname -a
这个大家应该知道是什么,就是看系统的版本了。Cygwin 得出来的是“CYGWIN_NT-5.1 <username> 1.5.18(0.132/4/2) <date> <time> i686 unknown unknown Cygwin”。unimake 会 name mangle 一下,把它变成 OS_ID <system> <version> 的形式,比如 SunOS 4.1.10 就是 OS_ID SunOS 4110。这个会和 makefile.config 中的块对应,比如 OS_ID SunOS 4110 4131,也就是说任何 SunOS,版本在4.1.10和4.1.31之间的都可以使用下面的命令。对于 Linux,采用的是 OS_ID Linux 0000 3000,由于 Linux 目前只有2.6.26版,所以都是可以执行的。问题在于没有一个叫做 OS_ID CYGWIN_NT-5.1 的条目,自然 Cygwin 下安装会报错。不过 Cygwin 号称是和 Linux 兼容的(因为 Linux 正式称谓是 GNU/Linux,也就是说 GNU 的软件系统 + Linux 内核,而 Cygwin 就是推出 GNU 在 Windows 下的兼容,自然二者是兼容),因此要么把配置文件中原本的 CYGWIN_NT-5.1 改为 Linux,抑或对着 Linux 条目的样式假造一个 OS_ID CYGWIN_NT-5.1 0000 3000 就好了。
大部分的内容我想已经覆盖到了,以后再想到什么欢迎交流。
2008.5 于 汉口
相关文章推荐
- 彻底抛弃光驱,U盘启动PE安装Windows Xp 101% 成功经验(转载)
- 漏洞补丁下载成功安装失败的解决方法
- windown XP 下ubuntu 12.04 使用wubi 硬盘安装失败与成功实例1
- cygwin下安装应用 cyg-apt Package nano not found or ambiguous name, exiting 更新不成功
- eclipse pydev 安装不成功 安装失败 异常
- sshd由于登录失败而无法启动--cygwin安装过程
- IIS安装及配置全攻略(转载)
- Linux下Eclipse配置安装 PyDev(Pydev插件一直不能成功,安装这个插件失败的问题)
- 【转载】Cygwin安装
- 在安装composer成功创建larvel项目失败,解决方法 研究了一天终于OK了
- 【转载】jdk-6-doc安装失败的解决办法
- ACE 安装 绝对成功 转载
- Cygwin hadoop安装部署实战(失败了!!!)
- 程序提示安装失败,或者安装未成功处理
- winxp下用cygwin安装gamit10.4
- 关于部分手机app安装失败或安装未成功的原因
- 转载:用oralce连接.net客户端出现问题:“数据连接不成功,请检查该数据库是否已启动尝试加载oracle客户端时引发BadImageFormatException.如果在安装32位Oracle客户端组件的情况下以64位模式运行,”的解
- 如何在Ubuntu 11.10下成功安装Java [转载]
- 《转载》在ubuntu10.04下成功安装 ns-allinone-2.34
- Linux下的ACE安装全攻略(转载)