<获取开发工具>
    到https://www.golangtc.com/download 下载安装包, 根据自己的系统选择合适的开发包,这里选择go.1.9.2.linux-amd64.tar.gz
<搭建开发环境>
➤为golang 配置PATH环境变量
     解压文件,将解压后的文件拷贝到"/usr/local/bin"下面(理论上可以拷贝到任何路径,只要在接下来的环境变量配置中,指定该路径就可以,但是一般都是放在该路下"/usr/local/bin")。
    配置环境变量"/usr/local/bin/go/bin" 添加到 linux 环境变量中,在"~/.bashrcl" 或者,"~/.profile",或者"/etc/profile"中添加:
export GOROOT="/usr/local/bin/go"
export PATH="$PATH:$GOROOT/bin"
➤为golang配置GOPATH环境变量

    该环境变量主要是为golang工程文件所用,因为vim 目前对golang的支持不是特别好,不能通过配置vimrc 这种传统的方式来使得vim支持golang,得使用go tools 和 vim-go这两种工具来使得vim 支持golang 。golang语言的开发比较特殊,无论是语法,还是工程文件组织方式,都有比较严格的格式要求。我的系统中在"~/src/go"下新建工程文件夹(也就是说只要指定了该路径,以后的工程文件夹就必须在该路径下创建,比如工程A:"~/src/go/src/A",工程B:"~/src/go/src/B")。
    在"~/.bashrc" 或者,"~/.profile",或者"/etc/profile"中添加(这里的“~”修改成自己的实际路径代替):
export GOPATH="~/src/go"
    然后再该路径下创建文件夹src , bin , pkg,凡是需要新建工程,就在src新建一个文件夹,假设这里的工程文件夹是beego_main。则代码组织架构如下:
~/src/go/src/beego
~/src/go/src/beego_main
这里的beego和beego_main是两个文件夹,其中beego存放框架代码,beego_main存放main.go
假设这里的工程文件是mathapp,代买组织架构如下:
~/src/go/src/mathlib
~/src/go/src/mathapp
这里的mathlib和mathapp是两个文件夹,其中mathlib下面存放库文件,mathapp存放main.go
 
☢这样组织代码的目的一是为可以所引函数,二是为了编译的时候,go 编译器可以找到各个函数。
☢这里的环境变量必须叫GOPATH,golang 语言在索引工作空间(建立工程文件夹的目录)的时候会到该环境变量执行的路径下寻找。
☢golang的工程文件组织方式一般是在项目文件下新建三个文件夹(比如beego),src,bin,pkg。其中src用来存放源代码,pkg 存放一些"xxx.a"文件,bin 下存放编译后的可执行文件。
<为vim搭建golang开发环境>
    这里主要讲讲怎么离线搭建该开发环境
➤安装vim 插件
➣首先到github(https://github.com/VundleVim/Vundle.vim)上面下载vundle插件管理器,解压后,将解压的文件夹改名为Vundle.vim。
➣在"~/"下新建文件夹".vim",然后再.vim中新建文件夹bundle , 并将上面是Vundle.vim移动到该文件夹下面,具体样子是这样("~/.vim/bundle/Vundle.vim")。
➣到github(https://github.com/fatih/vim-go )。下载插件vim-go  , 将下载的压缩包解压,重命名为vim-go,将该文件夹移动到Vundle下面,具体样子为(~/.vim/bundle/vim-go)。
➣修改配置"~/.vimrc"该配置文件,再该文件中添加(该脚本来自于github上关于vundle的README):
set nocompatible              " be iMproved, required
filetype off " required
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
Plugin 'VundleVim/Vundle.vim'
Plugin 'tpope/vim-fugitive'
Plugin 'git://git.wincent.com/command-t.git'
Plugin 'file:///home/gmarik/path/to/plugin'
Plugin 'rstacruz/sparkup', {'rtp': 'vim/'}
Plugin 'fatih/vim-go'
call vundle#end() " required
filetype plugin indent on " required
➤安装go tools
➣到github上下载go tools(https://github.com/golang/tools ).解压该文件夹,并将该文件夹重新命名为tools,其实这里面都是相应工具的源代码.
➣再在golang 的安装路径下的src文件夹下"/usr/local/bin/go/src" 新建gitbub.com文件夹和golang.org文件夹。
➣然后在golang.org文件夹下面新建文件夹x,接着将下载的go开发工具的文件夹(tools)移动到x里面。
➣然后跳出到文件夹src下,执行命令:
go get golang.org/x/tools/(工具链文件夹名称)

完成以上操作后就可以在golang安装路径的bin"/usr/local/bin/go/bin"里面看到可执行的工具链。什么godoc gunu 等开发环境工具。

linux golang开发环境配置(离线方式)的更多相关文章

  1. Linux odoo开发环境配置

    Linux odoo开发环境配置 安装postgresql9.6 第1步:添加RPM源(通过官网获取下载地址) yum install https://download.postgresql.org/ ...

  2. DELPHI10.2的LINUX数据库开发环境配置

    DELPHI10.2的LINUX数据库开发环境配置 ubuntu使用firedac访问mysql1.安装mysql-client包sudo apt-get install mysql-client m ...

  3. golang开发环境配置

    下载安装 从 https://golang.org/dl/ 下载最新的安装包. windows直接执行exe,按指示进行安装(默认安装目录是:C:\Go) linxu解压后复制到你喜欢目录就行(一般放 ...

  4. windows eclipse直接访问远程linux hadoop开发环境配置(符合实际开发的做法)

    CDH 5.x搭建请参考CentOS 7离线安装CDH 5.16.1完全指南(含各种错误处理). 如果使用的是cloudera quickstart vm,则只能在linux服务器中使用eclipse ...

  5. Mac下golang开发环境配置

    go语言在开发效率和运行效率中的优势让很多人青睐,所以有倾向打算转向go语言的开发. 下面介绍在Mac OS X中golang的开发环境配置. 1.安装brew brew是一个mac下的由ruby开发 ...

  6. Linux Ubuntu 开发环境配置 ——最具生产力工具一览

    Why Linux and Why exactly Ubuntu 首先这里就不做Mac,Linux,Windows三者之争了.只从个人角度分析下: Mac 不差钱(其实Mac作为超级本性价还行),不喜 ...

  7. Linux C 开发环境配置

    换了新电脑,重装了Fedora10,所有开发环境都要重新配置啦,开个随笔记录下过程,说不定以后还要用~ 首先Fedora10装好之后是不带 VIM 的,果断安装之: 打开终端,首先 su 命令切换到r ...

  8. wxWidgets 在 Linux 下开发环境配置

    本文基于 CodeBlocks (16.0.1) 和 wxWidgets (3.0.2) 搭建 Linux 下 GUI 开发环境. 1. 安装 CodeBlocks Ubuntu 默认的源当前 Cod ...

  9. windows及linux下 golang开发环境配置

    windows环境: 1.系统以及软件包版本: OS: windows 8.1  64位  x64处理器 GO:安装包:go1.7.3.windows-amd64.mis IDE:压缩包:liteid ...

随机推荐

  1. CMake 实践教程

    本篇博客是根据 <<CMake Practice>> 一文编写, 目的有三: 其一: 提取出其中的精要部分; 其二: 对其中不易理解的地方进行简要说明; 其三: 方便后续查找复 ...

  2. Python3 isinstance() 函数

    Python3 isinstance() 函数 描述 isinstance() 函数来判断一个对象是否是一个已知的类型,类似 type(). isinstance() 与 type() 区别: typ ...

  3. SHA1算法原理

    一.SHA1与MD5差异 SHA1对任意长度明文的预处理和MD5的过程是一样的,即预处理完后的明文长度是512位的整数倍,但是有一点不同,那就是SHA1的原始报文长度不能超过2的64次方,然后SHA1 ...

  4. kali Linux下wifi密码安全测试(1)虚拟机下usb无线网卡的挂载 【转】

    转自:http://blog.chinaunix.net/uid-26349264-id-4455634.html 目录 kali Linux下wifi密码安全测试(1)虚拟机下usb无线网卡的挂载 ...

  5. 用nodejs做一下发送邮件例子

    var nodemailer = require("nodemailer"); var transport = nodemailer.createTransport("S ...

  6. (并发编程)进程 (multiprocessing--Process实现进程并发)

    ['创建进程2方式种', '进程对象属性:join方法,守护进程obj.daemon=True,obj.pid, obj.name, obj.terminate(),obj.is_alive()等 ' ...

  7. 转载:2.2.3 配置项的注释《深入理解Nginx》(陶辉)

    原文:https://book.2cto.com/201304/19628.html 如果有一个配置项暂时需要注释掉,那么可以加"#"注释掉这一行配置.例如: #pid       ...

  8. S5PV210 LCD显示

    第一节 S5PV210 LCD控制器要使一块LCD正常显示文字或图像,不仅需要LCD驱动器,还需要相应的LCD控制器.LCD控制器的主要作用是将在系统存储器中的显示缓冲区中的LCD图像数据传送到外部L ...

  9. 随机森林学习-2-sklearn

    # -*- coding: utf-8 -*- """ RandomForestClassifier skleran的9个模型在3份数据上的使用. 1. 知识点: skl ...

  10. mace

    作者:十岁的小男孩 QQ:929994365 心之安处即是吾乡. 本文主要的方向是终端移植.其主要又分两个小方向,理论和实践,即模型优化和模型移植.下文为前期写的,较为潦草,现在基本框架思路已经搭起来 ...