计算化学公社

标题: Ubuntu下使用ifort编译config不识别的解决方案 [打印本页]

作者
Author:
snljty2    时间: 2022-12-6 15:53
标题: Ubuntu下使用ifort编译config不识别的解决方案
Ubuntu 20.04
2021-R2,已加载Intel OneAPI compiler和Intel OneAPI MKL。之前在./config步提示输入编译器的时候,输入ifort总提示不识别,然后怎么改config等脚本都不行。

今天终于发现问题在于Ubuntu默认不带csh,而GAMESS-US安装需要csh。于是很多人都顺手
  1. sudo apt install csh
复制代码
了。刚才
  1. file `which csh`
复制代码
追下去看了一下,发现原来是Ubuntu下apt install csh装的c-shell是BSD的,而CentOS等都是GNU的,有大量BSD不支持的GNU extensions,估计是GAMESS的编译用脚本里面哪里用了这些拓展。解决方案是
  1. sudo apt remove csh
  2. sudo apt install tcsh
复制代码
用tcsh代替BSD的csh,重新编译就没有问题了。

作者
Author:
zjxitcc    时间: 2025-1-5 16:24
本帖最后由 zjxitcc 于 2025-1-5 16:26 编辑

这两天碰到一个集群上的所有子节点系统是Ubuntu,没有csh和tcsh,由于是集群上的子节点,个人运行sudo apt install tcsh不方便,于是我开始折腾自己编译tcsh。。。辛酸。简单记载过程如下,以便后人碰到类似问题可以查到

到如下两个网站上下载ncurses-6.1.tar.gz和tcsh-6.24.00.tar.gz压缩包
https://astron.com/pub/tcsh
https://ftp.gnu.org/gnu/ncurses
版本可以用更新的,但不建议更旧。

编译ncurses
  1. tar -zxf ncurses-6.1.tar.gz
  2. cd ncurses-6.1/
  3. ./configure --prefix=$HOME/software/ncurses6 --with-shared
  4. make -j64
  5. make install
复制代码
在个人~/.bashrc中写ncurses环境变量
  1. export PATH=$HOME/software/ncurses6/bin:$PATH
  2. export LD_LIBRARY_PATH=$HOME/software/ncurses6/lib:$LD_LIBRARY_PATH
  3. export CPATH=$HOME/software/ncurses6/include:$CPATH
复制代码
退出重登,使环境变量生效。接着编译tcsh
  1. tar -zxf tcsh-6.24.00.tar.gz
  2. cd tcsh-6.24.00/
  3. mkdir build
  4. cd build/

  5. export LDFLAGS="-L$HOME/software/ncurses6/lib"
  6. ../configure --prefix=$HOME/software/tcsh6
  7. make -j64
  8. make install

  9. ln -s $HOME/software/tcsh6/bin/tcsh $HOME/software/tcsh6/bin/csh
复制代码
注意中间有一行export LDFLAGS不要漏了。在个人~/.bashrc中写tcsh环境变量
  1. export PATH=$HOME/software/tcsh6/bin:$PATH
复制代码
退出重登,使环境变量生效。运行
  1. which csh
复制代码
发现已经有csh,并且在自己编译的路径下。打开gamess/rungms文件,将第一行
  1. #!/bin/csh -f
复制代码
修改为
  1. #!/public/home/jxzou/software/tcsh6/bin/csh -f
复制代码
注意,jxzou是我的用户名,具体路径请根据自己的用户名和安装路径修改。完成,可以在这系列子节点上使用GAMESS。







欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3