MacOS 安装GO环境与测试

2023-11-12

一、下载安装包

  • 访问地址:golang.google.cn
  • 点击 Apple macOS 中的链接下载软件包至本地
  • 双击PKG包,即可进入安装向导
  • 点下一步直至最后,即可完成GO的安装

二、验证GO的版本

  • go version 命令,能够返回当前安装的GO的版本
go version go1.17.8 darwin/amd64

三、配置代理

由于下载的GO版本比较新,在配置【GO111MODULE】会与1.11之前的版本有区别。下面讨论两个参数【GO111MODULE】【GOPROXY】

3.1 GO111MODULE

在社区文章中看到如下解释:

  1. 2009年开始推出GO的时候,并没有包含包管理器的功能,使用go get(GO1.17中已过时)进行依赖的获取,获取的所有源存储在$ GOPATH / src 中 ;
  2. GO 1.11版本后引入GO模块,GO Modules不在使用GOPATH存储每个git checkout ,而是使用go.mod进行版本标记,并跟踪每个软件包的版本;
  3. 从此,『GOPATH 行为』与『Go Modules 行为』之间的交互已成为 Go 的最大难题之一
  4. GO111MODULE 是一个环境变量,可以在使用 go 更改 Go 导入包的方式时进行设置。GO111MODULE的默认值岁版本变迁不同
GO111MODULE with Go 1.11 and 1.12 自行配置
GO111MODULE with Go 1.13          默认值:auto
GO111MODULE with Go 1.14          默认值:auto
GO111MODULE with Go 1.16          默认值:on
GO111MODULE with Go 1.17          默认值:on auto与on相同

GO111MODULE=off,无模块支持,强制采用GOPATH模式来查找
GO111MODULE=on,模块支持,go命令行会使用modules,需要依赖go.mod的文件
GO111MODULE=auto,默认值,go命令行将会根据当前目录来决定是否启用module功能。这种情况下可以分为两种情形:
(1)当前目录在GOPATH/src之外且该目录包含go.mod文件,开启模块支持。
(2)当前文件在包含go.mod文件的目录下面。
  1. 手动设置方式:go env -w GO111MODULE=on

3.2 GOPROXY

  • 是GO的代理设置,拉取一些第三方库文件
  • 默认是:GOPROXY=“h ttps://proxy.golang.org,direct”
  • 国内代理:GOPROXY=https://goproxy.cn,direct
  • go env -w GOPROXY=https://goproxy.cn,direct

四、初始化项目

  • go mod init hello
  • 会出现 go.mod 文件,可以在GO111MODULE=on/auto的情况下进行依赖版本管理
  • 编写代码后,拉取依赖包的方式有【go get 包名】(新版本已经过时)/【go mod tidy】(此命令扫描所有代码的import命令,并进行依赖包的拉取)

五、编译运行代码

  • go build 生成编译后的对象(go mod init后跟的名字)
  • ./hello 即可执行

引用

Why is GO111MODULE everywhere, and everything about Go Modules (updated with Go 1.17)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MacOS 安装GO环境与测试 的相关文章

  • 如何将 Cocoa 应用程序移植到 iPhone-OS?

    我即将创建一个 Cocoa 应用程序 我想确保有一天我可以轻松地将它移植到 iPad 甚至 iPhone 我该如何提前计划 我知道我将不得不重做所有 NIB 并可能设计一个不同的工作流程 但是代码呢 仅仅用 UIsomething 替换每个
  • 在 Go 中解析多个 JSON 对象

    可以使用以下方法轻松解析如下对象encoding json包裹 something foo something else bar 我面临的问题是当服务器返回多个字典时 如下所示 something foo something else ba
  • 为什么 Go 中不允许在包级别声明短变量?

    这是允许的 package main var a 3 但这不是 package main a 3 为什么不 为什么不能将函数外部的短变量声明视为没有类型的常规声明 只是为了简化解析 根据伊恩 兰斯 泰勒的说法这个线程 https group
  • 如何覆盖 go 模块中的依赖项?

    In dep您可以选择覆盖依赖项并使其指向不同的存储库 例如以下内容https github com kubermatic glog logrus https github com kubermatic glog logrus库一需要将以下
  • 尝试在 Mac OSX 上的 virtualenv 和 MySQL 中安装 Django CMS 时出错

    当我尝试使用 virutalenv 安装带有 MySQL 的 django CMS 时 出现以下错误 RuntimeError maximum recursion depth exceeded Users ethan Sites env b
  • NSCF 数组越界?

    我有一个相当简单的应用程序 使用 Core Data 和几个数组控制器 在 IB 中 除了 xcdatamodel 文件之外 没有它们的代码文件 当我运行应用程序时 我在日志中收到以下错误 应用程序仍然运行 但在转到 文件 gt 新文档 之
  • 如何从 golang fyne 容器中删除对象

    我正在开发 GUI 应用程序 需要动态添加和删除 gui 元素 我想知道是否有办法从 golang fyne 容器中删除元素 在下面的示例代码中 我创建了容器并动态添加元素 现在我希望能够删除这些元素而不是隐藏它们 我尝试的一个 解决方案
  • npm WARN checkPermissions 缺少写入权限

    我一直在尝试解决在 Mac 上不使用 sudo 运行节点的问题 但我不断收到此消息 npm WARN checkPermissions Missing write access to Users myuser npm packages li
  • go build 不断抱怨:go.mod 有 post-v0 模块路径

    Go 1 11 发布后 我一直在尝试将我的存储库移动到 Go 模块 方法是添加go mod文件在其根目录下 我的根库之一my host root其版本为17 0 1 所以我在其中写道go mod file module my host ro
  • Goroutine 是如何工作的? (或者:goroutines 和操作系统线程的关系)

    其他 goroutine 如何在调用系统调用时继续执行 当使用 GOMAXPROCS 1 时 据我所知 当调用系统调用时 线程会放弃控制权 直到系统调用返回 Go 如何在不为每个阻塞系统调用 goroutine 创建系统线程的情况下实现这种
  • 如何判断相机是否正在被其他进程使用?

    在 OS X 中 如何判断摄像头或麦克风是否正在被其他应用程序或进程使用 除非其他应用程序锁定了设备 否则以下操作似乎不起作用 NSArray devices AVCaptureDevice devices for AVCaptureDev
  • GO中的优先级队列

    谁能向我解释一下 我想在GO中实现一个优先级队列 接口实现来自link https golang org pkg container heap example priorityQueue 但优先级最低 我的代码 pq make Priori
  • 无法从另一个标签的源代码构建和安装 go

    我正在尝试使用此从源代码构建和安装 go文档 https go dev doc install source 当我喜欢以下内容时 这效果很好 git clone https go googlesource com go goroot cd
  • 在 Go 中,如何将函数的 stdout 捕获到字符串中?

    例如 在 Python 中 我可以执行以下操作 realout sys stdout sys stdout StringIO StringIO some function prints to stdout get captured in t
  • 正则表达式不匹配

    我正在尝试以下代码 d byte x01 x00 x00 x00 x00 x00 x00 x00 x00 x00 x00 x80J x13 x80SQ x80L xe0 x80 x92 x80L x80H xe0 r regexp Must
  • git jenkins 中未找到存储库

    我正在使用 jenkins 2 64 并安装了最新的插件 我试图在 jenkins 中设置 git 存储库并给出凭据 但给出错误无法连接存储库 状态代码为 128 Cloning repository https github com so
  • MacOS X 和 iOS 中的 ASLR 究竟随机化了什么

    有谁有最新 Mac OS 10 7 和 iOS 6 0 在什么情况下随机化的文档链接 我是说 我想看一个列表 类似的东西 代码段 在情况 A B C 中 堆栈 始终 Heap 数据段 从不 最好每个东西有多少位随机化 我能找到的只是这样的内
  • 以编程方式访问 Apple Notes 内容

    是否可以以编程方式访问Apple Notes 即macos和ios中预装的应用程序 内容 macOS 上的 Notes 可使用 AppleScript 编写脚本 要注销所有笔记 请打开脚本编辑器并使用以下内容创建一个新脚本 然后单击播放按钮
  • 如何使用 go web 服务器提供静态 html 文件?

    如何使用 go web 服务器提供 index html 或其他静态 HTML 文件 我只想要一个基本的静态 HTML 文件 例如一篇文章 我可以从 Go Web 服务器提供该文件 HTML 应该可以在 go 程序之外进行修改 就像使用 H
  • Mac OS X 中每个进程的磁盘读/写统计信息

    如何在 Mac OS X 中以编程方式获取每个进程的磁盘 I O 统计信息 在 活动监视器 应用程序或 top 命令中 我们只能获取整个系统磁盘 I O 统计信息 以供参考PC 上也有类似的问题 https stackoverflow co

随机推荐

  • 抓取餐厅菜单信息 - 从餐饮网站获取餐厅菜单信息及价格

    目录 1 分析目标网站的结构 2 安装所需库 3 编写爬虫程序 4 提取所需数据并保存结果
  • Android Studio支持系统签名(证书)

    让Android Studio集成系统签名 需要用到一个工具keytool importkeypair 这个工具的作用是将系统签名的相关信息导入到已有的签名文件里 可从这里下载 相关文件 platform x509 pem platform
  • Java WebService _CXF、Xfire、AXIS2、AXIS1_四种发布方式(优缺点对比)

    xis axis2 Xfire以及cxf对比 http ws apache org axis http axis apache org axis2 java core http xfire codehaus org http cxf apa
  • DVP,LVDS和MIPI

    Mipi 接口 和 LVDS 接口区别 主要区别 1 LVDS接口只用于传输视频数据 MIPI DSI不仅能够传输视频数据 还能传输控制指令 2 LVDS接口主要是将RGB TTL信号按照SPWG JEIDA格式转换成LVDS信号进行传输
  • 记录自己在结构光三维重建领域的学习过程(五)

    读了一篇论文 Domain randomization for transferring deep neural networks from simulation to the real world 讲的是域随机化 但其实我没有认真看 其实
  • html转pdf

    html转pdf 本地安装wkhtmltopdf Java操作wkhtmltopdf实现Html转PDF 本地测试
  • sqlite3的交叉编译

    比如说我们在qtcreator中编写程序的时候想用到sqlite3数据库 但是因为qtcreator中的编译器中的库中并没有sqlite3的库 所以肯定编译不了 所以若想在qtcreator中编译sqlite3的程序 首先的将sqlite3
  • 初级python爬虫薪资-月薪2万的爬虫工程师,Python需要学到什么程度?

    Python 爬虫学到什么样就可以找工作了 非计算机专业 正在自学python 很多教程里提到的网站的爬虫都会写了 比如拉勾网 豆瓣 实习僧 京东 淘宝 某妹子图等等 但是因为不是计算机专业的 也没学所谓的四大名著 不知道那四大对找工作重要
  • 残体字符设计:INVETA

    残体字符设计是logo设计中很常见的一种风格 它通过删减 多余 的笔画来实现残缺的字符 让读者通过 脑补 还原出原来的文字 以此独特的风格加深用户的产品印象 Github支持STL文本格式的3D模型预览 奈何STL格式非常简陋 难以表示复杂
  • android 的 Testing Support Library 测试支持包(库)

    Testing Support Library 测试支持包 库 这个库提供了一系列的api来快速的创建和运行测试对于你的app 包括jUnit 4 和用户 UI 的测试 创建可以使用android studio IDE 或者通过命令行 两种
  • 日志:slf4j+logback 的配置与使用

    1 常用日志组件和选择 java开发日志处理是发现和调试bug所 必不可少的 那么现在企业中常用的日志组件有哪些呢 JCL JUL SLF4j Log4j Log4j2 Logback jboss loggin 等 一般日志是配套出现的 一
  • 内存请求分页实验java_请求分页内存管理的模拟

    一 实验题目 二 代码 1 Main java package OS import java util Scanner public class Main public static int pageSize blockSize procS
  • CentOS8提高篇11:centos8软件安装dnf命令

    DNF是新一代的rpm软件包管理器 它首先出现在 Fedora 18 这个发行版中 而目前 它取代了yum 正式成为从 Fedora 22 起 Fedora 版本的包管理器 DNF包管理器克服了YUM包管理器的一些瓶颈 提升了包括用户体验
  • SE0、J、K 、Chirp J、Chirp K

    SE0 J K Chirp J Chirp K 是 USB 总线上常见的信号状态 用于表示不同的电平和信号类型 SE0 Single Ended Zero 是 USB 总线上的空闲状态 表示逻辑低电平 在 SE0 状态下 数据线 D 和 D
  • Git 强制回退到某个历史版本再推送到远程

    1 使用 git log 命令历史版本记录回退版本 git reset hard f6a7c803a6931a9eca011d4e097389e0845cbe49 2 推送到远程 git push f u origin master ps
  • sqli-labs18、19关详解

    18关 对两个输入框都进行了设置 所以只能寻找其他注入点 看到insert语句从uagents插入 我们可以用http header live插件得到post内容放进hackbar中 再在user agent里面添加修改
  • [382]定时任务JoBX(opencron升级版)

    opencron文章链接 https blog csdn net xc zhou article details 80950811 升级日志 V1 2 0 by 2018 xx xx 1 支持Window端 实现全平台编译和安装 2 简化安
  • 八大排序算法总结Java代码实现(建议收藏后食用)

    目录 排序算法介绍 相关术语 排序的稳定性 排序分类 内排序与外排序 算法时间复杂度 度量一个程序 算法 执行时间的两种方法 时间频度 忽略常数项 忽略低次项 忽略系数 时间复杂度 常数阶O 1 对数阶O log2n 线性阶O n 线性对数
  • 词法分析器(分析C语言)

    问题描述 用C或C 语言编写一个简单的词法分析程序 扫描C语言小子集的源程序 根据给定的词法规则 识别单词 填写相应的表 如果产生词法错误 则显示错误信息 位置 并试图从错误中恢复 简单的恢复方法是忽略该字符 或单词 重新开始扫描 相关词法
  • MacOS 安装GO环境与测试

    MacOS 安装GO环境 一 下载安装包 二 验证GO的版本 三 配置代理 3 1 GO111MODULE 3 2 GOPROXY 四 初始化项目 五 编译运行代码 引用 MacOS版本 Catalina 10 15 2 GO版本 go1