计算化学公社

标题: (已解决)rocky linux中通过bashrc修改source配置Gaussian16运行环境问题 [打印本页]

作者
Author:
Excaliburyo    时间: 2023-4-10 23:26
标题: (已解决)rocky linux中通过bashrc修改source配置Gaussian16运行环境问题
本帖最后由 Excaliburyo 于 2023-4-11 19:24 编辑

如图,不知如何描述才好,首先就是在这个账户下需要调用Gaussian16得将‘#source’前面的‘#’去掉,通过‘source .bashrc’后可以正常运行;问题:在这个情况下我重启或者登出,就无法再进入该账户了(确定密码无误),然后我只有通过root账号向该账号下的.bashrc里,即图中‘source’前加上‘#’才能成功登入(试了逐个把其它软件都给‘#’才试出来是Gaussian16环境配置的问题,图中gv也被我‘#’了但是gv可有可无,所以可以不管它);看了一篇名为《linux环境变量导致无法登录,Linux 配置环境变量后无法登录的解决方案》文章,由于其提到的是关于PATH设定的问题,所以在下作为计算机菜鸟属实是不会弄也不知如何寻找解决之道,各位大佬有没有什么解决方案或者建议?请不吝赐教


作者
Author:
wzkchem5    时间: 2023-4-10 23:42
把g16.profile这个文件的内容贴出来
作者
Author:
Excaliburyo    时间: 2023-4-11 00:05
wzkchem5 发表于 2023-4-10 23:42
把g16.profile这个文件的内容贴出来

感谢老师!文件已贴
作者
Author:
Excaliburyo    时间: 2023-4-11 00:07
wzkchem5 发表于 2023-4-10 23:42
把g16.profile这个文件的内容贴出来

为方便您看还是给出如下具体内容

#
# These commands set up for use of Gaussian 16.  They should be source'd
# into each Gaussian 16 user's .login file, after setting the following
# environment variable:
#
# g16root -- Directory which contains the g16 main directory.  Defaults
#            to users's home directory if not defined before entry.
#
# Top directories for the program:
#
gr=$HOME
if [ "$g16root" ]
  then gr=$g16root
  fi
export GAUSS_EXEDIR="$gr/g16/bsd:$gr/g16"
export GAUSS_LEXEDIR="$gr/g16/linda-exe"
export GAUSS_ARCHDIR="$gr/g16/arch"
export GAUSS_BSDDIR="$gr/g16/bsd"
export GV_DIR="$gr/gv"
if [ -e "$GV_DIR/gview.app" ]; then
  alias gv='open $GV_DIR/gview.app'
elif [ -e "$GV_DIR/gview.csh" ]; then
  alias gv="$GV_DIR/gview.csh"
else
  alias gv="$GV_DIR/gview.sh"
  fi
if [ "$PATH" ]; then
  export PATH="$PATH:$gr/gauopen:$GAUSS_EXEDIR"
else
  export PATH="$gr/gauopen:$GAUSS_EXEDIR"
  fi
if [ "$PERLLIB" ]; then
  export PERLLIB="$PERLLIB:$gr/gauopen:$GAUSS_EXEDIR"
else
  export PERLLIB="$gr/gauopen:$GAUSS_EXEDIR"
  fi
if [ "$PYTHONPATH" ]; then
  export PYTHONPATH="$PYTHONPATH:$gr/gauopen:$GAUSS_EXEDIR"
else
  export PYTHONPATH="$gr/gauopen:$GAUSS_EXEDIR"
  fi
export _DSM_BARRIER="SHM"
if [ "$LD_LIBRARY64_PATH" ]; then
  export LD_LIBRARY64_PATH="$GAUSS_EXEDIR:$GV_DIR/lib:$LD_LIBRARY64_PATH"
else
  if [ "$LD_LIBRARY_PATH" ]; then
#   gv lib has to be at end for IA64 otherwise IA32 .so files there confuse things
    export LD_LIBRARY_PATH="$GAUSS_EXEDIR:$LD_LIBRARY_PATH:$GV_DIR/lib"
  else
    export LD_LIBRARY_PATH="$GAUSS_EXEDIR:$GV_DIR/lib"
    fi
  fi
export G16BASIS="$gr/g16/basis"
alias sl="$gr/g16/tests/searchlog.csh"
mach="$(gau-machine)"
if [ "$mach" = "necsx" ] || [ "$mach" = "necsxace" ]; then
  export F_ERROPT1="0,999,1,1,1,1,2,2"
  export F_ERROPT2="270,271,2,1,2,2,2,2"
  export F_ERROPT3="250,253,2,1,2,2,2,2"
  export OMP_NUM_THREADS="1"
  export F_SYSLEN="1024"
  fi
if [ "$mach" = "ia64" ]; then
# The following is to avoid weirdness with Intel's MKL library on IA64:
  export KMP_STACKSIZE="20971520"
  export KMP_AFFINITY="disabled"
  place="`which dplace`"
  if [ "$?" == 0 ] ; then
    export GAUSS_DPLACE="1"
    fi
  fi
if [ "$mach" = "ibm_rs6k_aix" ]; then
  export XLFRTEOPTS=buffering=disable_preconn
  fi
if [ "$mach" = "ibm_rs6k_linux" ]; then
  export XLFRTEOPTS=buffering=disable_preconn
# fix LD_LIBRARY_PATH so that the Linda workers can start
# export LD_LIBRARY_PATH="/opt/ibmcmp/lib64:$LD_LIBRARY_PATH"
  fi
#if [ "$mach" = "amd64" ]; then
# export OMP_THREAD_LIMIT='256'
# fi
export PGI_TERM='trace,abort'
ulimit -c 0
ulimit -d hard
ulimit -f hard
ulimit -l hard
ulimit -m hard
ulimit -n hard
ulimit -s hard
ulimit -t hard
ulimit -u hard
作者
Author:
sobereva    时间: 2023-4-11 09:08
一般学术问题别发到灌水与杂谈版块,这次给你移动了,下次直接删帖
作者
Author:
Excaliburyo    时间: 2023-4-11 09:25
sobereva 发表于 2023-4-11 09:08
一般学术问题别发到灌水与杂谈版块,这次给你移动了,下次直接删帖

抱歉也感谢sob老师,我下次一定注意
作者
Author:
guoguoping199    时间: 2023-4-11 10:17
同问,在CentOS7.9上边安装的gaussian,本来使用的好好地,但是在某次重启的时候一不小心点到了好像是系统更新,然后就也遇到这个问题了,我之前用的解决方法是通过Xshell远程连接并进入root账户,然后删除.bashrc中的gaussian安装代码,然后重启就好了,然后再重新安装gaussian,虽说只要不重启,不断电就不影响使用,但是每次重启就得来这么一遭确实也有点麻烦
作者
Author:
万里云    时间: 2023-4-11 11:25
你的~/.bashrc除了图里贴出来的内容还有其它的吗?是不是把原有的内容删掉或者注释掉了?

  1. if [ "$PATH" ]; then
  2.         export PATH="$PATH:$gr/gauopen:$GAUSS_EXEDIR"
  3. else
  4.        export PATH="$gr/gauopen:$GAUSS_EXEDIR"
  5.   fi

  6. if [ "$LD_LIBRARY64_PATH" ]; then
  7.        export LD_LIBRARY64_PATH="$GAUSS_EXEDIR:$GV_DIR/lib:$LD_LIBRARY64_PATH"
  8. else
  9.         if [ "$LD_LIBRARY_PATH" ]; then
  10.               #   gv lib has to be at end for IA64 otherwise IA32 .so files there confuse things
复制代码
问题大概率出在这两个重要的逻辑判断上。~/.bash_profile, ~/.bashrc这几个文件会通过一连串眼花缭乱的操作调用/etc下面的profile和bashrc,用来初始化PATH、LD_LIBRARY_PATH等重要的环境变量。如果初始化失败,在高斯的初始化脚本中就走了第二个逻辑分支,导致环境变量里缺失了/usr/bin, /lib64等重要目录,自然就进不去系统了。

作者
Author:
Excaliburyo    时间: 2023-4-11 11:42
万里云 发表于 2023-4-11 11:25
你的~/.bashrc除了图里贴出来的内容还有其它的吗?是不是把原有的内容删掉或者注释掉了?

问题大概率出 ...

感谢老师的回复,我能保证是在末尾行加上这些内容的,并且我也试过在/root目录下进行这个环境的配置,图片是/home普通用户的设定,这两个账户无一例外都出现这个问题。关于您给出的判断与解释,稍微能理解一些。所以我的一个想法是:有没有一种指令可以降低Gaussian16环境变量‘source’的优先级,从而让系统登录的调用命令先启动呢?
作者
Author:
乐平    时间: 2023-4-11 12:31
建议不要在 ~/.bashrc 里添加太多运行程序的环境变量,新手一不小心容易造成冲突,甚至像你提到的进不去系统了。运行程序的环境变量最好在作业调度脚本里添加。

所谓作业调度脚本就是 pbs 或者 slurm 这些脚本。

例如下面帖子里 20 楼的例子
http://bbs.keinsci.com/forum.php ... hlight=slurm&page=2


作者
Author:
Excaliburyo    时间: 2023-4-11 13:15
本帖最后由 Excaliburyo 于 2023-4-11 13:16 编辑
乐平 发表于 2023-4-11 12:31
建议不要在 ~/.bashrc 里添加太多运行程序的环境变量,新手一不小心容易造成冲突,甚至像你提到的进不去系 ...

感谢老师的建议与指点,正如您所说,我确实是在.bashrc里加了很多诸如MOPAC、xtb、packmol、orca、openmpi以及Gaussian、Gaussview的环境变量设置。最近在学着sob老师的博文进行Remdesivir的构象搜索,碰到这种系统配置问题就挺手足无措的,想着如果能解决就像本帖7楼兄台说的那样省些麻烦。当然我一定去学习脚本,未来也肯定用得上。
作者
Author:
万里云    时间: 2023-4-11 14:52
Excaliburyo 发表于 2023-4-11 11:42
感谢老师的回复,我能保证是在末尾行加上这些内容的,并且我也试过在/root目录下进行这个环境的配置,图 ...

可以用Environment Modules系统,需要的时候再加载设置。

也可以试下这个:https://gitee.com/yhli/misc/tree/master/bmod
作者
Author:
乐平    时间: 2023-4-11 15:15
本帖最后由 乐平 于 2023-4-11 15:17 编辑
Excaliburyo 发表于 2023-4-11 13:15
感谢老师的建议与指点,正如您所说,我确实是在.bashrc里加了很多诸如MOPAC、xtb、packmol、or ...

其实不是“学脚本”,而是提交计算任务的时候要用的 .pbs 或者 .slurm 任务管理脚本。

按你最开始的帖子描述的
首先就是在这个账户下需要调用
我重启或者登出,就无法再进入该账户了(确定密码无误)

不太好判断你是自己的小工作站? 超算集群?

如果是超算集群的话,.pbs 或者 .slurm 计算任务脚本应该是必需的。
你直接在里面添加相应的程序环境变量就行了。

另外,管理较好的超算集群会用到 12 楼提到的 Environment Modules 来调用各种环境。这更方便也更安全。


作者
Author:
Excaliburyo    时间: 2023-4-11 17:39
万里云 发表于 2023-4-11 14:52
可以用Environment Modules系统,需要的时候再加载设置。

也可以试下这个:https://gitee.com/yhli/mi ...

好的,感谢老师。我回头试试看
作者
Author:
Excaliburyo    时间: 2023-4-11 17:51
乐平 发表于 2023-4-11 15:15
其实不是“学脚本”,而是提交计算任务的时候要用的 .pbs 或者 .slurm 任务管理脚本。

按你最开始的帖 ...

老师,这个是我自己的一台小工作站,平常用于一些DFT计算,装了一个带GUI的rocky linux。怪我太菜鸟了,不懂脚本相关的知识,让您见笑了。我是否可以将.pbs或者.slurm理解为类似于shell脚本的文件,然后用shell脚本也能完成这些工作。我唯一接触过用来提高效率的shell脚本是出自于sob老师的《使用Gaussian时的几个实用脚本和命令》
作者
Author:
qlyfe    时间: 2023-4-11 18:15
以前CentOS7里有一种情况下GaussView会导致账户进不去,详见CentOS 虚拟机中 GaussView 花屏的解决方法,可以看看是不是也因为这个原因
作者
Author:
乐平    时间: 2023-4-11 18:36
Excaliburyo 发表于 2023-4-11 17:51
老师,这个是我自己的一台小工作站,平常用于一些DFT计算,装了一个带GUI的rocky linux。怪我太菜鸟了, ...

没有取笑你的意思,我们都是从不懂到懂这样走过来的。

.pbs 或者 .slurm 虽然类似于 shell 脚本,但不能直接用 shell 操作,需要各自的作业调度系统。

你是自己的小工作站,就算了,免得折腾了。

如果愿意了解一下,可以看论坛里的帖子

安装 pbs 作业调度系统
http://bbs.keinsci.com/thread-20943-1-1.html


安装 Slurm 作业调度系统

http://bbs.keinsci.com/forum.php ... amp;highlight=slurm

http://bbs.keinsci.com/forum.php ... ht=slurm&page=1

【注意】上述两种作业调度系统只用安装其中之一就行,不必要两个都安装。

作者
Author:
Excaliburyo    时间: 2023-4-11 19:17
本帖最后由 Excaliburyo 于 2023-4-11 19:29 编辑
qlyfe 发表于 2023-4-11 18:15
以前CentOS7里有一种情况下GaussView会导致账户进不去,详见CentOS 虚拟机中 GaussView 花屏的解决方法,可 ...

天呐!真的是诶!我之前也是操作复制了gv文件里的MesaGL,我完全没想到。

yum install mesa-libGLU.x86_64后,我将本贴贴图的‘#’都去掉了,能重启登录账号、Gaussian16可调用、gv亦可正常打开,而且VMD打开背景就呈现透明的问题解决了!(今日eV额度用尽,明天给您补上!

作者
Author:
abin    时间: 2023-4-11 19:21
如果不想花时间,又没有能力自己搞定slurm
可以用鄙人捣鼓的傻瓜式自动配置工具。

相关信息请查阅本帖文签名信息。
作者
Author:
Excaliburyo    时间: 2023-4-11 19:23
乐平 发表于 2023-4-11 18:36
没有取笑你的意思,我们都是从不懂到懂这样走过来的。

.pbs 或者 .slurm 虽然类似于 shell 脚本,但不 ...

再次感谢老师的耐心解答,是我用词自嘲不够恰当
没有取笑你的意思,我们都是从不懂到懂这样走过来的。

在下回头尝试把这些学起来!
【注意】上述两种作业调度系统只用安装其中之一就行,不必要两个都安装。





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