当前位置: 首页 > news >正文

go语言笔记——go环境变量goroot是安装了路径和gopath是三方包路径

Go 环境变量

Go 开发环境依赖于一些操作系统环境变量,你最好在安装 Go 之间就已经设置好他们。如果你使用的是 Windows 的话,你完全不用进行手动设置,Go 将被默认安装在目录 c:/go 下。这里列举几个最为重要的环境变量:

  • $GOROOT 表示 Go 在你的电脑上的安装位置,它的值一般都是 $HOME/go,当然,你也可以安装在别的地方。
  • $GOARCH 表示目标机器的处理器架构,它的值可以是 386、amd64 或 arm。
  • $GOOS 表示目标机器的操作系统,它的值可以是 darwin、freebsd、linux 或 windows。
  • $GOBIN 表示编译器和链接器的安装位置,默认是 $GOROOT/bin,如果你使用的是 Go 1.0.3 及以后的版本,一般情况下你可以将它的值设置为空,Go 将会使用前面提到的默认值。

目标机器是指你打算运行你的 Go 应用程序的机器。

Go 编译器支持交叉编译,也就是说你可以在一台机器上构建运行在具有不同操作系统和处理器架构上运行的应用程序,也就是说编写源代码的机器可以和目标机器有完全不同的特性(操作系统与处理器架构)。

为了区分本地机器和目标机器,你可以使用 $GOHOSTOS 和 $GOHOSTARCH 设置目标机器的参数,这两个变量只有在进行交叉编译的时候才会用到,如果你不进行显示设置,他们的值会和本地机器($GOOS 和 $GOARCH)一样。

  • $GOPATH 默认采用和 $GOROOT 一样的值,但从 Go 1.1 版本开始,你必须修改为其它路径。它可以包含多个包含 Go 语言源码文件、包文件和可执行文件的路径,而这些路径下又必须分别包含三个规定的目录:srcpkg 和 bin,这三个目录分别用于存放源码文件、包文件和可执行文件。
  • $GOARM 专门针对基于 arm 架构的处理器,它的值可以是 5 或 6,默认为 6。
  • $GOMAXPROCS 用于设置应用程序可使用的处理器个数与核数,详见第 14.1.3 节。

在接下来的章节中,我们将会讨论如何在 Linux、Mac OS X 和 Windows 上安装 Go 语言。在 FreeBSD 上的安装和 Linux 非常类似。开发团队正在尝试将 Go 语言移植到其它例如 OpenBSD、DragonFlyBSD、NetBSD、Plan 9、Haiku 和 Solaris 操作系统上,你可以在这个页面找到最近的动态:Go Porting Efforts。

 

摘自:https://github.com/Unknwon/the-way-to-go_ZH_CN/blob/master/eBook/02.2.md

设置 Go 环境变量

我们在 Linux 系统下一般通过文件 $HOME/.bashrc 配置自定义环境变量,根据不同的发行版也可能是文件 $HOME/.profile,然后使用 gedit 或 vi 来编辑文件内容。

 export GOROOT=$HOME/go

为了确保相关文件在文件系统的任何地方都能被调用,你还需要添加以下内容:

 export PATH=$PATH:$GOROOT/bin

在开发 Go 项目时,你还需要一个环境变量来保存你的工作目录。

 export GOPATH=$HOME/Applications/Go

$GOPATH 可以包含多个工作目录,取决于你的个人情况。如果你设置了多个工作目录,那么当你在之后使用 go get(远程包安装命令)时远程包将会被安装在第一个目录下。

在完成这些设置后,你需要在终端输入指令 source .bashrc 以使这些环境变量生效。然后重启终端,输入 go env 和 env 来检查环境变量是否设置正确。

从 官方页面 或 国内镜像 下载 Go 的源码包到你的计算机上,然后将解压后的目录 go 通过命令移动到 $GOROOT 所指向的位置。

 wget https://storage.googleapis.com/golang/go<VERSION>.src.tar.gz
 tar -zxvf go<VERSION>.src.tar.gz
 sudo mv go $GOROOT

 














本文转自张昺华-sky博客园博客,原文链接:http://www.cnblogs.com/bonelee/p/6860548.html,如需转载请自行联系原作者



相关文章:

  • What does AspCompat=true mean and when should I use it?
  • 使用ASP.Net WebAPI构建REST服务(三)——返回值
  • Spring事务管理4-----声明式事务管理(2)
  • fdsf
  • PowerDesigner设计的数据库 ORA-0092
  • Zabbix监控(一)-基础
  • 【嵌入式】bootloader,linux,filesystem的烧写
  • 【Unity】制作简易定时器(Timer)
  • SCCM2012之部署安装
  • Linux基础(16)文件系统
  • Windows Server 2008 R2之六活动目录域服务的卸载
  • quick cocos2d-x 3.5打包安卓apk(编译cocos2d-x的os+打apk)
  • 黑客讲故事:攻下隔壁女生路由器后,我都做了些什么【转】
  • H5播放器
  • ASP.NET 主题(Themes)FAQ
  • C++类的相互关联
  • CSS选择器——伪元素选择器之处理父元素高度及外边距溢出
  • Django 博客开发教程 8 - 博客文章详情页
  • ECMAScript 6 学习之路 ( 四 ) String 字符串扩展
  • FineReport中如何实现自动滚屏效果
  • Mac转Windows的拯救指南
  • Python语法速览与机器学习开发环境搭建
  • scala基础语法(二)
  • tweak 支持第三方库
  • VuePress 静态网站生成
  • vuex 笔记整理
  • 基于游标的分页接口实现
  • 简单数学运算程序(不定期更新)
  • 两列自适应布局方案整理
  • 我有几个粽子,和一个故事
  • Mac 上flink的安装与启动
  • 新海诚画集[秒速5センチメートル:樱花抄·春]
  • 智能情侣枕Pillow Talk,倾听彼此的心跳
  • # 计算机视觉入门
  • #我与Java虚拟机的故事#连载03:面试过的百度,滴滴,快手都问了这些问题
  • $HTTP_POST_VARS['']和$_POST['']的区别
  • (1)(1.19) TeraRanger One/EVO测距仪
  • (1)(1.9) MSP (version 4.2)
  • (27)4.8 习题课
  • (31)对象的克隆
  • (9)STL算法之逆转旋转
  • (AngularJS)Angular 控制器之间通信初探
  • (Matalb回归预测)PSO-BP粒子群算法优化BP神经网络的多维回归预测
  • (笔记)Kotlin——Android封装ViewBinding之二 优化
  • (翻译)Entity Framework技巧系列之七 - Tip 26 – 28
  • (附源码)计算机毕业设计SSM智能化管理的仓库管理
  • (十)DDRC架构组成、效率Efficiency及功能实现
  • (推荐)叮当——中文语音对话机器人
  • **PHP二维数组遍历时同时赋值
  • .mysql secret在哪_MYSQL基本操作(上)
  • .NET Core SkiaSharp 替代 System.Drawing.Common 的一些用法
  • .net framework profiles /.net framework 配置
  • .net Signalr 使用笔记
  • .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件
  • .NET开发人员必知的八个网站