Golang执行go命令时出现Segmentation fault (core dumped)错误如何解决
Golang执行go命令时出现Segmentation fault (core dumped)错误如何解决
我在 Linux Mint 上安装了 Go 1.12.9。对于任何 Go 命令(例如 go build、go run、go version、go env),我都会收到“Segmentation fault (core dumped)”的消息。我已经尝试过卸载然后重新安装 Go,但这没有帮助。如果有人有任何建议,我将不胜感激。
谢谢。
which go 命令会返回什么结果?
更多关于Golang执行go命令时出现Segmentation fault (core dumped)错误如何解决的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
看起来你的路径中似乎残留了之前安装的 go 二进制文件,请确保完全卸载之前的安装。
作为一种变通方法,将手动安装的 go 放在 PATH 的最前面而不是最后面可能会起作用:
export PATH=/usr/local/go/bin:$PATH:$GOPATH/bin
/usr/bin/go
道格拉斯·阿特金森副教授 | 计算机科学与信息技术系
塔兰特县学院,东北校区 | NTAB 2209A
828 Harwood Rd | Hurst TX 76054
(817) 515-6193 | 传真 (817) 515-6553
谢谢。这个方法有效。我将彻底删除之前的安装。非常感谢您在这件事上的帮助。
道格拉斯·阿特金森副教授 | 计算机科学与信息技术系
塔兰特县学院,东北校区 | NTAB 2209A
828 Harwood Rd | Hurst TX 76054
(817) 515-6193 | 传真 (817) 515-6553
我执行了一系列命令行操作:
cd ~/Downloads
wget –c https://storage.googleapis.com/goland/go1.12.9.linux-amd64.tar.gz
tar –xvf gl1.12.9.linux-amd64.tar.gz
sudo chown –R root:root ./go
sudo mv go /usr/local
export GOPATH=$HOME/go
export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin
这就是我第二次安装的方式。第一次安装时,我记得使用的是软件管理器。它原本运行正常,我也一直在顺利使用,直到突然收到“Segmentation fault”错误信息。于是,我卸载了Golang,然后使用上述方法重新进行了安装。
这是一个典型的Go运行时问题,通常与系统环境或Go安装损坏有关。以下是排查步骤:
1. 检查系统依赖
确保系统有必要的C库依赖:
ldd $(which go)
检查输出中是否有"not found"的库。
2. 验证Go安装完整性
手动下载并验证Go二进制包:
# 移除现有安装
sudo rm -rf /usr/local/go
# 下载官方二进制包
wget https://golang.org/dl/go1.12.9.linux-amd64.tar.gz
# 验证SHA256
echo "ac2a6efcc1f5ec8bdc0db0a988bb1d301d64b6d61b7e8d9e42f662fbb75a2b9b go1.12.9.linux-amd64.tar.gz" | sha256sum -c
# 解压到/usr/local
sudo tar -C /usr/local -xzf go1.12.9.linux-amd64.tar.gz
3. 设置环境变量
确保GOROOT和PATH正确设置:
# 在~/.profile或~/.bashrc中添加
export GOROOT=/usr/local/go
export PATH=$GOROOT/bin:$PATH
# 重新加载配置
source ~/.bashrc
4. 运行最小测试程序
创建简单的Go程序测试:
// test.go
package main
import "fmt"
func main() {
fmt.Println("Go test successful")
}
运行:
go run test.go
5. 检查系统内存和栈限制
# 检查栈大小限制
ulimit -s
# 临时增加栈大小(如果需要)
ulimit -s unlimited
6. 使用GOTRACEBACK调试
GOTRACEBACK=crash go version
这会提供更详细的崩溃信息。
7. 检查系统架构兼容性
# 确认系统架构
uname -m
# Go 1.12.9需要x86_64架构
# 如果是32位系统,需要下载386版本
如果问题仍然存在,可能是系统库冲突或内核问题。尝试:
# 使用strace跟踪系统调用
strace -f go version 2>&1 | tail -50
或者安装更新版本的Go(如1.13+),因为Go 1.12.9较旧,可能与新系统存在兼容性问题。


