<获取开发工具>
    到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. 《像计算机科学家一样思考Python》-递归

    斐波那契数列 使用递归定义的最常见数学函数是 fibonacci (斐波那契数列),见其 定义 fibonacci(0) = 0 fibonacci(1) = 1 fibonacci(n) = fib ...

  2. ARMV8 datasheet学习笔记4:AArch64系统级体系结构之编程模型(4)- 其它

    1. 前言 2.可配置的指令使能/禁用控制和trap控制 指令使能/禁用 当指令被禁用,则这条指令就会变成未定义 指令Trap控制 控制某条或某些指令在运行时进入陷阱,进入陷阱的指令会产生trap异常 ...

  3. 董事局主席董事长总裁首席执行官CEO总裁董事监事区别

    董事长是公司的最大股东:董事长是董事会的主席,一般是企业的所有者,掌握企业的股权并且决定企业的发展策略. 董事局主席通常是在大财团中才会出现,董事局主席管数个董事长,一个大财团涉及很多方面的业务,因此 ...

  4. STOMP Over WebSocket

    Show Table of Contents What is STOMP? STOMP is a simple text-orientated messaging protocol. It defin ...

  5. oracle的读写分离实现

    在MySQL作为应用系统的后台数据库时,我们常常见到这样的架构,一拖二.一拖三等等.这是用MySQL的读写分离技术,实现数据的写入和读取分别在不同的库上,提升了数据库服务能力. 同样,在Oracle作 ...

  6. C# 将任意对象快速转换为Json

    由于最近项目里面Model类特别多,而我需要编写所有数据交互的接口,传输的格式是json,以前都是通过循环List<T>中的对象向StringBuilder对象中Apped字符串生成jso ...

  7. phpstudy中apache的默认根目录的配置

    默认配置文件是:vhosts.conf. 安装laravel后需要把根目录配置到public. 下面的配置需要在本地计算机的host文件配置域名,一个是“localhost”,一个是“www.goho ...

  8. 《TCP/IP 详解 卷1:协议》第 3 章:链路层

    在体系结构中,我们知道:链路层(或数据链路层)包含为共享相同介质的邻居建立连接的协议和方法,同时,设计链路层的目的是为 IP 模块发送和接受 IP 数据报,链路层可用于携带支持 IP 的辅助性协议,例 ...

  9. 基于TLS的EAP 认证方法

    TLS: transport level security , 安全传输层协议,用于在两个通信应用程序之间提供保密性和数据完整性.该协议由两层组成: TLS 记录协议(TLS Record)和 TLS ...

  10. saltstack自动化运维系列11基于etcd的saltstack的自动化扩容

    saltstack自动化运维系列11基于etcd的saltstack的自动化扩容 自动化运维-基于etcd加saltstack的自动化扩容# tar -xf etcd-v2.2.1-linux-amd ...