singularity-ce-4.1.0 + go 1.20 完整安装步骤.
解决bug:
checking: host Go compiler (at least version 1.13)... not found!
mconfig: could not complete configuration
服务器基础环境:
阿里云服务器:
=> lsb_release -a
LSB Version: :core-4.1-amd64:core-4.1-noarch
Distributor ID: CentOS
Description: CentOS Linux release 7.9.2009 (Core)
Release: 7.9.2009
Codename: Core
下载软件包:
singularity-ce-4.1.0.tar.gz
go1.20.linux-amd64.tar.gz # go的版本由singularity 反馈的确定
wget https://objects.githubusercontent.com/github-production-release-asset-2e65be/364269021/795d2615-f5f5-4fdf-b9d7-bc0460cbe56e?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAVCODYLSA53PQK4ZA%2F20240219%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20240219T095152Z&X-Amz-Expires=300&X-Amz-Signature=99d5e5e4e517d98baac36e05a1826e1a6e4251929294515b74a578ac9b43eec3&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=364269021&response-content-disposition=attachment%3B%20filename%3Dsingularity-ce-4.1.0.tar.gz&response-content-type=application%2Foctet-stream
wget https://go.dev/dl/go1.20.linux-amd64.tar.gz
安装软件
安装go:
wget https://go.dev/dl/go1.20.linux-amd64.tar.gz
tar -xvf go1.20.linux-amd64.tar.gz
cd /usr/local/go
/usr/local/go/bin/go
安装singularity:
wget https://objects.githubusercontent.com/github-production-release-asset-2e65be/364269021/795d2615-f5f5-4fdf-b9d7-bc0460cbe56e?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAVCODYLSA53PQK4ZA%2F20240219%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20240219T095152Z&X-Amz-Expires=300&X-Amz-Signature=99d5e5e4e517d98baac36e05a1826e1a6e4251929294515b74a578ac9b43eec3&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=364269021&response-content-disposition=attachment%3B%20filename%3Dsingularity-ce-4.1.0.tar.gz&response-content-type=application%2Foctet-stream
tar -xzf singularity-ce-4.1.0.tar.gz
cd singularity
./mconfig # 通常这个位置会报错
make -C builddir
sudo make -C builddir install
常见报错1:
问题:
在安装singularity时
./mconfig
Configuring for project `singularity' with languages: C, Golang
=> running pre-basechecks project specific checks ...
=> running base system checks ...
checking: host C compiler... cc
checking: host C++ compiler... c++
checking: host Go compiler (at least version 1.20)... not found!
mconfig: could not complete configuration
解决方法:
删除原来的go版本;
安装 singularity指定的go 版本 1.20;
重新安装singularity;
安装建议:
先安装singularity,等报错信息出来,再下载安装指定版本的go。
常见警告2:
问题:
warning: GOPATH set to GOROOT (/usr/local/go) has no effect
GO cmd/starter/c/starter-suid
[+] GO_TAGS "sylog singularity_engine fakeroot_engine apparmor selinux seccomp"
warning: GOPATH set to GOROOT (/usr/local/go) has no effect
GEN /root/singularity-ce-4.1.0/scripts/go-test
warning: GOPATH set to GOROOT (/usr/local/go) has no effect
GO singularity-buildkitd
[+] GO_TAGS "sylog singularity_engine fakeroot_engine apparmor selinux seccomp"
warning: GOPATH set to GOROOT (/usr/local/go) has no effect
解决方法:
这个警告表示您将 GOPATH 环境变量设置为了与 GOROOT 相同的路径,即 /usr/local/go。在 Go 中,GOROOT 和 GOPATH 是两个不同的概念,它们应该指向不同的目录:
GOROOT 是 Go 语言的安装路径,用于存放 Go 的标准库和工具链。在您的情况下,GOROOT 设置为 /usr/local/go,这表明您的 Go 已经安装在这个目录下。
GOPATH 是您的工作空间,用于存放您的 Go 项目和第三方依赖。在 Go 1.11 及之前的版本中,必须显式设置 GOPATH,但从 Go 1.11 开始引入了 Go 模块,不再强制要求设置 GOPATH,但仍然有一些情况需要使用到它,比如一些旧的项目或特定的工具依赖。
通常情况下,GOPATH 应该指向一个独立的目录,例如 $HOME/go 或 /home/用户名/go(对于 Linux 和 macOS),C:\Users\用户名\go(对于 Windows)。这样做有助于将您的 Go 项目和依赖项与 Go 的安装目录分开,使得管理更加清晰和灵活。要解决这个警告,您应该将 GOPATH 设置为与 GOROOT 不同的目录。您可以按照以下步骤进行设置:
创建一个新的目录作为您的 GOPATH,例如:
mkdir $HOME/go
在您的 shell 配置文件中(如 .bashrc、.bash_profile 或 .zshrc),设置 GOPATH 环境变量:
export GOPATH=$HOME/go
确保重新加载您的 shell 配置文件,或者重新启动终端会话:文章来源:https://www.toymoban.com/news/detail-833556.html
source ~/.bashrc
通过按照以上步骤设置 GOPATH,您应该可以避免 GOPATH set to GOROOT 警告,并确保您的 Go 项目和依赖项被正确地放置在一个独立的工作空间中。文章来源地址https://www.toymoban.com/news/detail-833556.html
到了这里,关于singularity-ce-4.1.0 + go 完整安装步骤,及报错解决的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!