Ubuntu安装多版本golang

Ubuntu安装多版本golang

1.创建工作目录

shell 复制代码
# 创建Go配置文件
sudo tee /etc/profile.d/go.sh << 'EOF'
#!/bin/bash

# Go语言环境配置
export GOROOT=/usr/local/go  # Go安装目录
export GOPATH=$HOME/go       # Go工作区
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
export GOBIN=$GOPATH/bin

# 可选:设置代理(在中国大陆推荐)
export GOPROXY=https://goproxy.cn,direct
export GO111MODULE=on
EOF

# 设置权限
sudo chmod +x /etc/profile.d/go.sh

# 创建个人Go目录
mkdir -p ~/go/{src,bin,pkg}

# 立即生效
source /etc/profile.d/go.sh

2.下载安装

shell 复制代码
mkdir -p ~/sdk
cd ~/sdk
shell 复制代码
wget https://studygolang.com/dl/golang/go1.25.0.linux-amd64.tar.gz
tar -xzf go1.25.0.linux-amd64.tar.gz && mv go go1.25


wget https://studygolang.com/dl/golang/go1.24.0.linux-amd64.tar.gz
tar -xzf go1.24.0.linux-amd64.tar.gz && mv go go1.24
shell 复制代码
# 删除压缩包
rm *.gz

3.创建版本选择脚本

switch-go.sh

shell 复制代码
#!/bin/bash
# 文件保存为:switch-go.sh

# Go版本管理脚本
if [ -z "$1" ]; then
    echo "用法: $0 <go版本号>"
    echo "示例: $0 1.25.0"
    echo "可用的版本:"
    ls /home/yantao/sdk/ | grep ^go
    exit 1
fi

VERSION="$1"
GO_INSTALL_DIR="/home/yantao/sdk/go${VERSION}"
SYMLINK_DIR="/usr/local/go"

# 检查版本是否存在
if [ ! -d "$GO_INSTALL_DIR" ]; then
    echo "错误: Go ${VERSION} 未找到"
    echo "可用的版本:"
    ls /home/yantao/sdk/ | grep ^go
    exit 1
fi

# 创建软链接
echo "切换到 Go ${VERSION}..."
sudo rm -f $SYMLINK_DIR
sudo ln -sf $GO_INSTALL_DIR $SYMLINK_DIR

# 重新加载环境
source /etc/profile.d/go.sh 2>/dev/null || source /etc/profile

# 验证
echo -e "\n切换完成!"
go version
echo "GOROOT: $(go env GOROOT)
相关推荐
Android系统攻城狮5 小时前
Linux Gstreamer深度解析之gst_audio_ring_buffer_delay调用流程与实战(七十二)
linux·运维·服务器·gstreamer音视频·音视频进阶
快乐的韭菜根根6 小时前
ubuntu 安装slurm并配置
linux·运维·ubuntu
倒头就睡的小比特8 小时前
Linux基础指令3
linux·服务器
梦帮科技8 小时前
Kali Linux Scapy 畸形报文构造学——深度解剖非法 TCP Flags 与反常序列号
linux·爬虫·神经网络·算法·数学建模·系统架构·模拟退火算法
半杯咖啡半行码9 小时前
Linux 驱动开发入门:内核模块编程基础
linux·服务器·网络
别动我齐刘海10 小时前
Linux 系统调试学习2
linux·运维·c++·人工智能·学习·机器学习·机器人
龙虾电话10 小时前
语音机器人打断不进去:VAD 双阈值迟滞里一个共用的 bool,和它引发的连锁误判
linux
honsor10 小时前
机房IP化改造首选:以太网温湿度传感器,PoE供电+Modbus TCP一网搞定
linux·运维·服务器
默|笙11 小时前
【Linux网络】_udp_socket(认识)
linux·网络·udp
程序员梅雨11 小时前
ZooKeeper面经总结
java·大数据·linux·分布式·后端·zookeeper·中间件