Ubuntu下安装Golong并用Vscode做IDE最有效方法,避免99%的坑 | 轻松学习GO
最详细的教程,避开99%的坑,亲测有效
由于大部分教程都是win版本的,所以专门总结了一个linux版本的,其核心在于环境配置和插件安装,经历本人通宵7小时解决了这个问题,用自己的踩坑帮助大家避坑,希望大家多多支持!
安装环境:ubuntu(Linux) + vscode
准备条件:已经安装好vocode
网上有很多教程,这里我就不一一赘述了,有需要的朋友查看其他博客,如果你觉得Github上的vscode源码慢的话,可以采用我的码云下载,我已经建好库,内容一样
踩坑第一步:下载go语言环境
Golang官方网站是被屏蔽的,所以只能采用国内网站
踩坑第二步:Linux安装Glang
我出现的问题:自己电脑是安装Anaconda的,加上当时自己没有理清一些环境配置环境的概念,后来装到了
home目录下,安装到home下可以很好解决权限问题,个人电脑我建议可以这么做
- 将下载的二进制包解压至 /usr/local目录
tar -C /usr/local -xzf go1.13.linux-amd64.tar.gz
- 将 /usr/local/go/bin 目录添加至PATH环境变量:(这是个大坑,需要将环境变量加载到
home目录下的.bashrc的文件中,这个文件在每次打开终端的时候都会执行一遍)
export GOPATH=/home/feng/gitRepository/go
export GOROOT=/home/feng/go
export GOOS=linux
export GOTOOLS=$GOROOT/pkg/tool
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
具体情况我参考了另外一篇博主的理解https://www.cnblogs.com/jackzz/p/10017049.html
解释一下,PATH相当于工作空间(c++里的项目的意思),GOROOT是根目录文件(相当于c++的编译器所在的位置)
- 检验你有没有装好环境(这一步一定要做,不然后面的全部白费),也很简单,任意终端输入
go env查看所有配置信息(主要在你查看路径的时候使用),如果返回正常,继续下一步,不正常请自行检查错误步骤,或根据相应情况更改
踩坑第三步:vscode环境配置(大大的BUG)
更改权限,vscode中的一些插件需要安装到GOBIN环境变量下,
$sudo chmod 777 $HOME/learn/go/bin其中$HOME自动检测你的GO的工作空间目录- 安装插件GO以及Code Runner(这个不难,不再赘述,需要朋友请查阅相关命令行),vscode会自动配置环境,如果没有,请打开
文件->首选项->设置找到扩展中的Go Configuration中的在set ...,打开后输入如下命令行,根据你的情况修改)
{
"workbench.iconTheme": "material-icon-theme",
"python.pythonPath": "/home/feng/anaconda3/bin/python",
"terminal.integrated.inheritEnv": false,
"python.insidersChannel": "off",
"todo-tree.highlights.enabled": false,
"git.autofetch": true,
"git.enableSmartCommit": true,
"python.dataScience.sendSelectionToInteractiveWindow": true,
"workbench.colorTheme": "Slack Theme Dark Mode",
"window.zoomLevel": 0,
"go.useLanguageServer": true,
"files.autoSave": "afterDelay",
"goModGrapher.engine": "dot",
"goOutliner.enableDebugChannel": true,
"goOutliner.extendExplorerTab": true,
"go.autocompleteUnimportedPackages": true,
"explorer.confirmDelete": false,
}
踩坑第四步安装相关插件(最最最核心的一步)
https://goproxy.io/zh/ 直接上网站,其他方法均不适用了,网上有相关教程,就是在上述配置文件中加入以下命令行
# 启用 Go Modules 功能
export GO111MODULE=on
# 配置 GOPROXY 环境变量
export GOPROXY=https://goproxy.io
两句命令行搞定,切记切记切记,然后进入vscode提示安装插件就好了,SUCCESSED!
最后,这是我个人在通宵7小时后踩下的所有坑,这个基本是没有问题的,大家可以放心操作哦,遇到其他问题先看看之前有没有做错,然后再去百度相应问题,对症下下药,希望我这篇文章对你有帮助,也希望我们一同成长!
Ubuntu下安装Golong并用Vscode做IDE最有效方法,避免99%的坑 | 轻松学习GO的更多相关文章
- ubuntu下安装eclipse IDE for C/C++ developers
序 linux的GUI和windos比起来实在逊色,虽然它的终端模式(命令行模式)非常强大.linux发行版ubuntu的GUI相对其他版本要华丽一些,所以最近由redhat转向ubuntu进行li ...
- Ubuntu下安装JDK以及相关配置
1.查看系统位数,输入以下命令即可 getconf LONG_BIT 2.下载对应的JDK文件,我这里下载的是jdk-8u60-linux-64.tar.gz 3.创建目录作为JDK的安装目录,这里选 ...
- 在Windows/Ubuntu下安装OpenGL环境(GLUT/freeglut)与跨平台编译(mingw/g++)
GLUT/freeglut 是什么? OpenGL 和它们有什么关系? OpenGL只是一个标准,它的实现一般自带在操作系统里,只要确保显卡驱动足够新就可以使用.如果需要在程序里直接使用OpenGL, ...
- 在Ubuntu下安装ovs-dpdk
在Ubuntu下安装ovs-dpdk 参考资料:https://software.intel.com/zh-cn/articles/using-open-vswitch-with-dpdk-on-ub ...
- Fedora和Ubuntu下安装OpenGL开发环境配置
Fedora下OpenGl开发环境配置 开发OpenGL工程需要3个库文件和对应的头文件: libglut.so,libGLU.so,libGL.so, gl.h ,glu.h, glut.h 这些库 ...
- Ubuntu下安装Nginx,PHP5(及PHP-FPM),MySQL
.简介: Tomcat在高并发环境下处理动态请求时性能很低,而在处理静态页面更加脆弱.虽然Tomcat的最新版本支持epoll,但是通过Nginx来处理静态页面要比通过Tomcat处理在性能方面好很多 ...
- Ubuntu下安装并配置VS Code编译C++
作者:tongqingliu 转载请注明出处:http://www.cnblogs.com/liutongqing/p/7069091.html Ubuntu下安装并配置VS Code编译C++ 安装 ...
- Ubuntu下安装Texmaker的问题与解决方案
在Ubuntu下安装好了texlive后,为了开发方便,希望再继续安装一个编辑器,用于方便的编辑latex文档. 而texmaker就是一个很好的工具. 问题1, 被安装了早期版本的latex 不管你 ...
- Ubuntu下安装、激活并配置Pycharm
Ubuntu下安装.激活并配置Pycharm 最近在学习Python这门语言,到了需要Python编译器学习的阶段,通过网上了解各个Python编译器的优缺点,最后选择了pycharm作为Python ...
随机推荐
- 题解 [BZOJ1925][SDOI2010] 地精部落
题面 解析 这个似乎并不好讲啊 设\(f[i][j]\)表示有\(i\)座山, 最后一座山到达高度是\(i\)座中第\(j\)大的, 且最后一座山是山谷. 注意,\(i\)是代表有\(i\)座山,并不 ...
- BZOJ 1097: [POI2007]旅游景点atr 状态压缩+Dijkstra
题解: $k<=20,$ 考虑状压dp. 从 $1$ 号点走到 $n$ 号点经过的点的个数可能会非常多,但是强制要求经过的点一共才 $20$ 个. 而我们发现这个题好就好在可以经过某个城市,而不 ...
- HDU 5863 cjj's string game ( 16年多校10 G 题、矩阵快速幂优化线性递推DP )
题目链接 题意 : 有种不同的字符,每种字符有无限个,要求用这k种字符构造两个长度为n的字符串a和b,使得a串和b串的最长公共部分长度恰为m,问方案数 分析 : 直觉是DP 不过当时看到 n 很大.但 ...
- DP基础(线性DP)总结
DP基础(线性DP)总结 前言:虽然确实有点基础......但凡事得脚踏实地地做,基础不牢,地动山摇,,,嗯! LIS(最长上升子序列) dp方程:dp[i]=max{dp[j]+1,a[j]< ...
- jQuery系列(十二):事件委托
1.什么是事件委托 通俗的讲,事件就是onclick,onmouseover,onmouseout,等就是事件,委托呢,就是让别人来做,这个事件本来是加在某些元素上的,然而你却加到别人身上来做,完成这 ...
- single-pass单遍聚类方法
一.通常关于文本聚类也都是针对已有的一堆历史数据进行聚类,比如常用的方法有kmeans,dbscan等.如果有个需求需要针对流式文本进行聚类(即来一条聚一条),那么这些方法都不太适用了,当然也有很多其 ...
- 基础 Linux 命令速查清单
jaywcjlove/linux-command: Linux命令大全搜索工具,内容包含Linux命令手册.详解.学习.搜集.https://git.io/linux https://github. ...
- LGU67496 小$s$的玻璃弹珠
题意 在一幢\(m\)层建筑你将获得\(n\)个一样的鸡蛋,从高于\(x\)的楼层落下的鸡蛋都会碎.如果一个蛋碎了,你就不能再把它掉下去. 你的目标是确切地知道\(x\)的值.问至少要扔几次才能确定. ...
- 苹果系统OSX中Automator批量重命名
Automator,看字面意思就无比强大,[自动机器].有什么能比自动还让人着魔? 答案是没有✔ 如果你用的是mac,如果你有一堆文件要重新整理命名,如果你还在Goole什么"批量重命名软件 ...
- Python控制台输出时刷新当前行内容而不是输出新行
需求目标 执行Python程序的时候在控制台输出内容的时候固定一刷新内容,如下: Downloading File FooFile.txt [%] 而不是 Downloading File FooFi ...