📚
handbook
  • Introduction
  • 1.前言
    • 前言
    • 鸣谢
  • 2.环境篇
    • 工具部署和使用
      • 团队协作工具
        • Confluence
      • 开发工具
        • Docker
          • 镜像导入导出
          • 安装
        • Docker Compose
      • 持续集成工具
        • Gerrit
        • Sonarqube
          • 分析参数设定
          • Prerequisite
          • 服务端设置
        • Ubuntu Ci Deploy
          • ubuntu使用docker部署jenkins+sonarqube
        • 持续集成部署
      • 文本编辑工具
        • Gitbook相关注意事项
        • Markdown快速入门
      • 版本控制
        • Git
          • 1.基础
            • Git基础(一)
            • Git基础(二)
            • Git基础(三)
            • Git基础(四)
            • Git基础(五)
          • 2.命令详解
            • 命令速查
          • 3.进阶技巧
            • git技巧
      • 自动化测试工具
        • Appium
          • capability参数配置
          • 安装
          • 简介
      • 项目管理工具
        • Jira
    • 开发环境配置
      • 通用
        • Homebrew安装与使用
        • Git服务器添加SSH Key
        • koroFileHeader使用
        • nodejs与npm的安装
        • npm更换国内源
        • pip使用相关
        • PostgreSQL安装与使用
        • proxychain安装与使用
        • shell配置环境变量
        • snapd安装与使用
        • terminal走代理
    • 快捷键速查
      • shell常用快捷键
  • 3.语言篇
    • C
      • 代码规范
      • 语言技巧
    • Cpp
      • 代码规范
      • 基础知识
        • 理解C++中的左值和右值
      • 语言技巧
        • 并发编程
          • 简单的线程池实现
    • Golang
      • 代码规范
        • 避免使用转义字符串
        • 避免参数语义不明确
        • 嵌套式结构体
        • 函数的分组与顺序
        • 函数命名
        • 声明一致性
        • 导入别名
        • 使用字段名初始化结构体
        • 本地变量声明
        • map初始化
        • nil用法
        • 包命名
        • 命名Printf样式的函数
        • 减少嵌套
        • 缩小变量作用域
        • struct引用初始化
        • 测试表声明
        • 顶层变量声明
        • 不必要的else
      • 环境配置
        • 代码检查格式化工具
          • Go Fmt
          • Goimports
          • Golint
          • Go Vet
        • go mod详解
        • golang安装
        • Golang开发环境
        • Troubleshooting
      • 语言技巧
        • 如何分包
    • Java
      • 代码规范
      • 语言技巧
        • 注解编程
        • 动态代理
    • Js
      • 语言技巧
        • Rollup
    • Kotlin
      • 基础知识
        • 写给开发者Kotlin指引(一)
        • 写给开发者Kotlin指引(二)
    • Python
      • 语言技巧
        • Best Practice Of Python S Project Structure
  • 4.规范篇
    • Git message规范
  • 5.技术篇
    • Android技术
      • Hook
        • EdXposed例子
        • Android 10 上安装Magisk和EdXposed
      • Tinker
        • 1.Tinker及其使用
      • 准备
        • ADB连接设备步骤及注意事项
        • adb连接设备
        • aosp编译
      • 基础
        • Binder接口调用的鉴权方法
        • Make 及 Android 编译系统介绍
        • 使用Content Provider为其他应用提供数据
      • 源码阅读
        • Framework源码分析 Looper Handler
        • Framework源码分析 启动流程 ServiceManager的初始化
        • Framework源码分析 启动流程 Zygote启动SystemServer
    • JS Bridge
      • JSBridge初探
    • Kernel技术
      • kallsyms子系统
    • Test技术
      • 软件测试
        • jnekin+sonar 部署 问题总结
        • 性能测试基础
        • 软件测试的背景
        • 测试基础
        • 测试人员的核心竞争力
    • 操作系统原理
      • 处理器如何实现原子操作
Powered by GitBook
On this page
  • 一、安装包下载
  • 1.1 Linux
  • 1.2 MacOS
  • 二、环境变量配置
  • 2.1 Linux
  • 2.2 MacOS

Was this helpful?

  1. 3.语言篇
  2. Golang
  3. 环境配置

golang安装

Previousgo mod详解NextGolang开发环境

Last updated 4 years ago

Was this helpful?

一、安装包下载

本节介绍golang开发环境的搭建。

1.1 Linux

1.1.1 tar

  1. 下载golang预编译包:wget https://dl.google.com/go/go1.14.2.linux-amd64.tar.gz;

  2. 解压到/usr/local目录下,需要root权限:tar -C /usr/local -xzf go1.14.2.linux-amd64.tar.gz;

  3. 将golang加入PATH:export PATH=$PATH:/usr/local/go/bin。

1.1.2 snapd

snapd是Linux的包管理器,目前一般16年以后发布的Linux发行版都内置了snapd,如果使用的发行版较老,参考进行安装。使用snapd安装golang十分方便,只需要一行命令:sudo snap install go --classic,即可完成golang的所有配置。

1.2 MacOS

1.2.1 pkg

下载官网提供的pkg包并安装。

1.2.2 homebrew

使用brew install go安装,如果brew访问较慢,参考。

二、环境变量配置

2.1 Linux

首先在命令行键入go env,得到类似输出:

GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/home/cheung/.cache/go-build"
GOENV="/home/cheung/.config/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/home/cheung/go"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/usr/local/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
GCCGO="gccgo"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD="/media/cheung/code/vuls/go.mod"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build222371123=/tmp/go-build -gno-record-gcc-switches"
.
├── bin
│   ├── autobahn
│   ├── chat
│   ├── command
│   ├── dlv
│   ├── filewatch
│   ├── fillstruct
│   ├── gocode
│   ├── gocode-gomod
│   ├── go-cve-dictionary
│   ├── godef
│   ├── godoctor
│   ├── go-exploitdb
│   ├── go-find-references
│   ├── goformat
│   ├── goimports
│   ├── golint
│   ├── gomodifytags
│   ├── go-outline
│   ├── gopkgs
│   ├── goplay
│   ├── gopls
│   ├── gorename
│   ├── goreturns
│   ├── gost
│   ├── go-symbols
│   ├── gotests
│   ├── goval-dictionary
│   ├── govendor
│   ├── guru
│   ├── impl
│   ├── protoc-gen-go
│   ├── toml-test-decoder
│   ├── toml-test-encoder
│   ├── tomlv
│   ├── vuls
│   └── xgo
├── pkg
│   ├── linux_amd64
│   ├── mod
│   └── sumdb
└── src
    ├── github.com
    ├── golang.org
    ├── google.golang.org
    ├── gopkg.in
    ├── go_test_proj
    ├── go.uber.org
    ├── silverbolt -> /home/cheung/Silverbolt/engine/
    ├── sourcegraph.com
    ├── test_go
    └── winterdrache.de

GOROOT就是刚才解压的go的路径,该变量设置后ide(例如GoLand)可以读取到本机安装的go,并使用他进行编译。

2.2 MacOS

仿照Linux配置环境变量。

找到$GOPATH和$GOROOT的定义,并打开对应终端的配置文件配置环境变量,具体参考。进入$GOPATH使用tree -L 2观察$GOPATH的文件层级:

可以看到bin目录下有三个文件夹,其中bin文件夹用于存储go安装的可执行文件,src文件夹存储go get xxx下载的golang第三方库,pkg文件夹内容较多,mod文件夹中存储go mod download下载的第三方库,参考。

snapd简介
homebrew安装
终端添加环境变量
go mod