Ubuntu安装最新版本golang

本文详细介绍如何在Ubuntu系统中安装最新版本的Golang。通过下载源码包,使用国内镜像避免翻墙,解压并配置环境变量,使Golang开发环境即刻可用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ubuntu可以通过

apt-get install golang

的方式来安装golang开发环境,只是这样安装的是go1.6.2

如果想要安装最新版本的golang,应该怎么办呢?

  • 下载源码
    网上搜的流程下载源码都是需要翻墙的,国内镜像安装如下:

      wget https://www.golangtc.com/static/go/1.9.2/go1.9.2.linux-amd64.tar.gz
    
  • 解码源码
    将源码解压在/usr/bin目录下面

      tar zxf go1.9.2.linux-amd64.tar.gz -C /usr/bin
    
  • 设置环境变量
    将go的bin目录加入环境变量

      echo "export PATH=/usr/bin/go/bin:$PATH" >> /etc/profile
    
  • 环境变量即时生效
    重启可以使设置的环境变量生效,除此之外还可以使之直接生效:

      source /etc/profile
    
  • 查看是否安装成功
    查看安装的go版本是否为1.9.2

      go version
    

<think>我们正在解决Ubuntu系统上离线安装GVM以管理Golang版本的问题。由于是离线安装,我们需要预先下载好GVM和所需的Golang版本安装包,然后在没有网络连接的环境下进行安装。根据引用[3]和引用[4]的内容,我们注意到在安装过程中需要设置GOPATH,并且会使用到goget命令(在线安装时)。但离线环境下,我们需要避免使用goget,因此需要手动准备所有依赖。GVM(GoVersionManager)是一个用于管理Go版本的工具,类似于Ruby的RVM。通常,GVM的在线安装是通过执行一个脚本从GitHub下载安装的。离线安装则需要我们预先下载好安装脚本和所需的Go版本安装包。步骤概述:1.在另一台可以上网的机器上下载GVM安装脚本(binscripts/gvm-installer)以及所需版本的Go二进制安装包(例如go1.17.5.linux-amd64.tar.gz)。2.将这些文件传输到目标Ubuntu机器上。3.在目标机器上运行GVM安装脚本(由于是离线,需要修改脚本以避免下载,或者直接使用准备好的文件)。4.将Go安装包放在GVM的缓存目录中(通常是~/.gvm/archives),这样GVM在安装Go版本时会使用这些文件。详细步骤:第一步:准备离线安装文件在联网机器上:1.下载GVM安装脚本:```bashcurl-s-S-Lhttps://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer-ogvm-installer```2.下载所需版本的Go二进制安装包,例如下载Go1.17.5(根据需求选择版本):```bashcurl-Ohttps://storage.googleapis.com/golang/go1.17.5.linux-amd64.tar.gz```注意:需要下载与目标系统架构对应的版本。第二步:将下载的文件(gvm-installer和go1.17.5.linux-amd64.tar.gz)传输到目标Ubuntu机器上。第三步:在目标机器上安装GVM1.由于GVM安装脚本会尝试从GitHub克隆gvm的代码仓库,但我们现在是离线状态,所以需要修改安装脚本。2.实际上,我们可以手动创建所需的目录结构。但为了简便,我们可以先在线克隆整个gvm仓库,然后打包传输到目标机器,再运行安装脚本(这样安装脚本就不会尝试从网络克隆了)。但这里我们采用另一种方式:直接运行安装脚本并利用我们传输的安装包。然而,标准安装脚本会尝试克隆仓库,所以我们需要修改安装脚本。修改安装脚本(gvm-installer):在脚本中找到克隆仓库的部分,注释掉或者修改为使用本地已经准备好的gvm仓库(如果有的话)。但考虑到我们只下载了安装脚本,没有下载整个gvm仓库,所以我们需要先下载整个gvm仓库。因此,更简单的方法是在联网机器上克隆整个gvm仓库:```bashgitclonehttps://github.com/moovweb/gvm.git```然后将整个gvm目录打包,传输到目标机器上。在目标机器上:假设将gvm目录放在用户主目录下,然后运行修改后的安装脚本(不使用在线克隆,而是使用本地的gvm目录)。我们可以修改gvm-installer脚本,将其中的克隆步骤替换为复制本地已有的gvm目录到目标位置。具体修改:找到gvm-installer脚本中的以下部分:```bashif[!-d"$HOME/.gvm"];thengitclonehttps://github.com/moovweb/gvm.git$HOME/.gvmelsecd$HOME/.gvmgitpulloriginmastercd-fi```修改为:```bashif[!-d"$HOME/.gvm"];then#假设我们已经将下载的gvm仓库解压到了当前目录的gvm子目录cp-r./gvm$HOME/.gvmelse#如果已经存在,则更新(离线情况下我们无法更新,所以跳过)echo"GVMalreadyinstalled,skippingcopy."fi```但是,我们也可以不修改安装脚本,而是手动复制:```bashmkdir-p~/.gvmcp-rgvm/*~/.gvm```然后,我们需要将gvm的可执行脚本添加到环境变量中。安装脚本中后面部分就是做这个的,所以我们仍然需要运行安装脚本的后半部分(即修改bashrc的部分)。因此,我们可以直接运行原始的安装脚本,但前提是已经将gvm目录复制到了~/.gvm。或者,我们可以手动添加环境变量:```bashecho"source$HOME/.gvm/scripts/gvm">>~/.bashrcsource~/.bashrc```第四步:安装Go版本1.将下载的Go安装包(如go1.17.5.linux-amd64.tar.gz)放到~/.gvm/archives目录下(如果不存在则创建)。2.然后使用GVM安装该版本:```bashgvminstallgo1.17.5-B```选项`-B`表示使用二进制安装(即使用我们放在archives目录下的压缩包)。3.设置默认使用的Go版本:```bashgvmusego1.17.5--default```注意:在安装过程中,GVM可能会尝试下载,但由于我们已经将安装包放在archives目录下,并且使用了`-B`选项,它应该会直接使用该压缩包。验证安装:执行`goversion`,应该会显示安装的版本。问题:如果目标机器上之前没有安装过Go,那么GVM安装的Go环境会放在~/.gvm/gos目录下,我们通过gvmuse切换版本时,它会修改PATH等环境变量。注意事项:1.离线环境下,安装脚本可能无法安装依赖(如git、curl等),请确保目标系统已经安装了必要的依赖(如tar、git(如果需要从本地仓库安装)等)。2.如果目标机器上已经安装了Go,建议先卸载,或者通过GVM安装多个版本并切换。总结步骤(离线安装):1.在联网机器上下载gvm仓库(gitclone)和Go安装包。2.将gvm仓库和Go安装包传输到目标机器。3.在目标机器上,将gvm仓库复制到~/.gvm目录。4.将Go安装包复制到~/.gvm/archives目录。5.将gvm的启动脚本添加到bashrc中,并source。6.使用gvminstall命令安装Go版本(使用-B选项)。7.设置默认版本。如果遇到问题,请检查目录结构和权限。下面是一个简化的步骤脚本(目标机器上执行):假设我们传输过来的文件在一个目录中,包含:-gvm/(整个gvm仓库)-go1.17.5.linux-amd64.tar.gz步骤:```bash#复制gvm仓库到~/.gvmcp-rgvm~/.gvm#创建archives目录并复制Go安装包mkdir-p~/.gvm/archivescpgo1.17.5.linux-amd64.tar.gz~/.gvm/archives/#添加gvm到环境变量echo"source$HOME/.gvm/scripts/gvm">>~/.bashrcsource~/.bashrc#安装Gogvminstallgo1.17.5-Bgvmusego1.17.5--default```注意:GVM脚本使用bash,请确保使用bash。如果目标机器上没有git,我们可以只下载gvm仓库的zip包(在GitHub上可以下载),然后解压,步骤类似。以上步骤在离线环境下应该可以完成GVM和Go的安装。相关问题:1.如何验证GVM安装是否正确?2.使用GVM安装其他版本的Go(比如1.16.10)需要哪些步骤?3.如何卸载通过GVM安装的Go版本?4.离线安装GVM时可能遇到的常见问题及解决方法?</think>### Ubuntu 离线安装 GVM 管理 Golang 多版本 以下是完整的离线安装步骤(需提前在有网络的环境中下载所需文件): #### 一、准备工作 1. **下载离线安装包**(在联网机器操作): ```bash # 下载 GVM 安装脚本 curl -L -o gvm-installer https://github.com/moovweb/gvm/raw/master/binscripts/gvm-installer # 下载所需 Golang 版本(示例:1.17.8 和 1.18.10) curl -O https://go.dev/dl/go1.17.8.linux-amd64.tar.gz curl -O https://go.dev/dl/go1.18.10.linux-amd64.tar.gz ``` 2. **传输文件到离线环境**: ```bash # 将以下文件复制到目标 Ubuntu 系统: # - gvm-installer (GVM 安装脚本) # - go*.tar.gz (Golang 安装包) ``` #### 二、安装 GVM ```bash # 1. 创建 GVM 目录结构 mkdir -p ~/.gvm/archives ~/.gvm/scripts # 2. 安装 GVM(跳过网络检查) bash gvm-installer --skip echo "source $HOME/.gvm/scripts/gvm" >> ~/.bashrc source ~/.bashrc # 3. 将 Go 安装包放入缓存目录 mv go1.*.tar.gz ~/.gvm/archives/ ``` #### 三、离线安装 Golang 版本 ```bash # 1. 安装 Go 1.17.8(使用 -B 选项指定二进制安装) gvm install go1.17.8 -B # 2. 安装 Go 1.18.10 gvm install go1.18.10 -B # 3. 设置默认版本 gvm use go1.18.10 --default # 4. 验证安装 go version # 应输出:go version go1.18.10 linux/amd64 ``` #### 四、环境配置 1. **GOPATH 设置**(参考引用[3]): ```bash # 在 ~/.bashrc 添加 echo "export GOPATH=$HOME/go" >> ~/.bashrc echo "export PATH=$PATH:$GOPATH/bin" >> ~/.bashrc source ~/.bashrc ``` 2. **目录结构验证**: ```bash ls ~/.gvm/gos # 应包含已安装的 Go 版本目录 ``` ### 常见问题解决 1. **依赖缺失错误**: ```bash # 提前安装编译依赖(需 Ubuntu 离线包或镜像) sudo apt-get install -y curl git mercurial make binutils bison gcc build-essential ``` 2. **证书问题**(参考引用[4]): ```bash # 若出现 x509 错误,安装 CA 证书 sudo apt-get install ca-certificates ``` 3. **符号链接修复**: ```bash # 如果 gvm 命令未识别 ln -s ~/.gvm/bin/gvm /usr/local/bin/gvm ``` > **关键点**:离线安装的核心是将 Golang 二进制包预先放入 `~/.gvm/archives`,并通过 `gvm install -B` 跳过下载[^3][^4]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值