我正在尝试安装 I/O API 以使用 CMAQ。我正在遵循这些说明。首先,我下载了 gzip 压缩文件 ioapi-3.2.tar.gz,并将其解压。但后来我陷入了第四步,上面写着:
对于每个所需的配置,
setenv BIN <machinetype>
,其中<machinetype>
匹配其中一个ioapi/Makeinclude.*
. 然后执行顶级 make dirs 来构建对象目录。生成 BIN iS 的常用模式setenv BIN `uname -s``uname -r | cut -d. -fI`
然后通过附加任何编译器详细信息(例如 F90 或调试编译配置)来修改结果。
Linux 版本 2 和 3 是二进制兼容的,因此
Linux2
用于这两个版本(对于最新版本的 类似SunOS
)。请注意,例如,对于GNU g77/gcc、 Intel if/icc、 Lahey-Fujitsu If95 /GNU gcc和 Portland Group pgf90 / pgccLinux2_×86*
有不同(且不兼容)的变体;此外,后者与 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。谢谢!
前置
echo
查看扩展命令:查看嵌入式命令在您的系统上执行的操作:
它们有道理吗?
但是,请注意这
setenv
是一个 C-shell (csh
) 内置函数。Ubuntu 默认使用 Bash shell,其中等效的命令是:请注意 bash 与 C-shell 的其他差异,请在线搜索。阅读
man bash csh
。在 或
bash
中csh
,环境变量(例如BIN
)只能保存其中存储的最后一个值,因此请参阅文档和 INSTALL 文件。你很可能误入歧途。