我正在尝试安装 I/O API 以使用 CMAQ。我正在关注这些说明。首先,我下载了 gzip 文件 ioapi-3.2.tar.gz,然后解压。但是我在第 4 步卡住了,内容如下:
对于每个所需的配置,
setenv BIN <machinetype>
,其中<machinetype>
匹配其中一个的扩展名ioapi/Makeinclude.*
。然后执行顶层 make dirs 来构建对象目录。生成 BIN 的常用模式是setenv BIN `uname -s``uname -r | cut -d. -fI`
然后通过附加任何编译器细节(例如 F90 或调试编译配置)来修改结果。
Linux 版本 2 和 3 是二进制兼容的,因此
Linux2
两者都使用 (最新版本的 也类似SunOS
)。例如,请注意,对于Linux2_×86*
,GNU 有不同的(且不兼容的)变体海湾合作委员会/、英特尔如果/国际刑事法院、莱希-富士通IF95/GNU 海湾合作委员会和波特兰集团pgf90/PGCC 简介;此外,后者与 Portland Group pf90/GNU cc 不兼容(当后者用于构建 libnetcdf.a 时,就像 RedHat 上供应商提供的库一样(这种不兼容性是近年来安装问题最大的单一诱因!)。
我对 Linux 还很陌生,对构建程序更是一窍不通,不知道这个指令是什么意思。我猜我必须对文件夹中包含的每个我想要安装的 I/O API 版本使用“setenv BIN”。但是我不知道是否应该先使用setenv BIN <machinetype>
然后
setenv BIN `uname -s``uname -r | cut -d. -f1`
或者我是否应该只使用其中之一。如果是这样,我不知道两者中的哪一个。我真的不知道这些命令的用途,这没有帮助。由于我在这里很迷茫,任何能澄清我的问题的信息都会有所帮助。如果相关的话,我将使用 GCC 来构建 CMAQ。谢谢!
答案1
添加echo
以查看扩展的命令:
echo setenv BIN `uname -s``uname -r | cut -d. -f1`
查看嵌入的命令在你的系统上执行的操作:
uname -s
uname -r
uname -r | cut -d. -f1
它们有意义吗?
但请注意,这setenv
是内置的 C-shell ( csh
)。Ubuntu 默认使用 Bash shell,其中等效命令是:
export BIN="`uname -s``uname -r | cut -d. -f1`"
注意 bash 与 C-shell 的其他差异,请在线搜索。阅读man bash csh
。
在 或 中bash
,csh
环境变量(例如
BIN
)只能保存其中存储的最后一个值,因此请查阅文档和 INSTALL 文件。您可能误入歧途。