在go文件夹下编译singularity时, ./mconfig命令报错如下:
倒数第二行显示是找不到go环境导致的。
但是我的go已经添加到.bashrc里了,go version命令能输出对应版本号。
可能性①,是安装的go版本过低不适用于改singularity版本,更改go版本即可解决,go不同版本下载链接如下:
可能性②,是singularity文件夹没有放在go文件夹下导致的,具体参考:
可能性③,也就是我的情况。go version命令能输出对应版本号,排除了以上2种可能后,只能去找找是不是某些特殊软件不能识别go环境导致的
解决方法:
新建文件~/.bash_profile:
vim ~/.bash_profile
在文件中配置:
# ~/.bash_profile
export GOROOT=/usr/local/go #go的安装文件夹,一般在local下
export GOPATH=/usr/local/GO #go的工作目录,自定义
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
source ~/.bash_profile
执行 go verison 获得正确输出,但是Some programs not found when used with sudo。通过修改配置 /etc/sudoers
文件中的 Defaults secure_path
这一项,添加go中bin文件夹的绝对目录,(如:/usr/local/go/bin/),即可让singularity编译时识别go环境
sudo vim /etc/sudoers
文件中找到secure_path,添加:
Defaults secure_path = /usr/local/go/bin/:其他原有路径
然后编译就可以正常进行了
问题解决,但是不一定能解决所有出现相同报错的情况,仅供参考。