写在前面:

目前,Go语言已经发布了1.5的版本,已经有不少Go语言相关的书籍和教程了,但是看了一些后,觉得还是应该自己写一套Go语言的教程。给广大学习Go语言的朋友多一种选择。因为,咱写的教程,向来和其他的不一样。

尊重劳动,如果转载,请注明出处:常城的专栏

Go语言在Centos下的安装:

注意,以下命令需要以root身份,或者sudo运行。
说明,如果要自定义安装位置的话,需要配置GOROOT环境变量,所以这里我们采用默认的目录进行安装,就可以不配置GOROOT环境变量了。

首先去官网下载go的安装包,这里用的是:go1.5.1.linux-amd64.tar.gz

■ 1,选择安装路径

由于默认的go路径,在/usr/local下, 所以用如下命令,解压创建/usr/local/go
tar -C /usr/local -xzf go1.5.1.linux-amd64.tar.gz

■  2,添加PATH环境变量
vi /etc/profile 
然后加入下面这行:
export PATH=$PATH:/usr/local/go/bin

■  3,建立Go的工作空间(workspace,也就是GOPATH环境变量指向的目录)
GO代码必须在工作空间内。工作空间是一个目录,其中包含三个子目录:
src ---- 里面每一个子目录,就是一个包。包内是Go的源码文件
pkg ---- 编译后生成的,包的目标文件
bin ---- 生成的可执行文件。
这里,我们在/home目录下, 建立一个名为gopath(可以不是gopath, 任意名字都可以)的文件夹,
然后再建立三个子文件夹(子文件夹名必须为src、pkg、bin)。如下图:

■  4,设置GOPATH环境变量
vi /etc/profile 
然后加入下面这行:
export GOPATH=/home/gopath 
保存后,执行以下命令,使环境变量立即生效:
source /etc/profile

至此,Go语言的环境已经安装完毕。下面开始 HelloWorld

■  5,新建项目(应用包)。
一般来说,建议包名和目录名保持一致,所以,在src文件夹下,按照你想要创建的包名,组织文件夹路径。
这里,我们在/home/gopath/src下面,建立hello文件夹。
说明:
如果你的包名为 mygo/first/hello, 那么你就需要这样的目录结构:/home/gopath/src/mygo/first/hello
如果考虑到引入git版本库管理,那么可以建立这样的包名: github.com/mytest。

■  6,新建go代码
/home/gopath/src/hello下面,建立helloworld.go文件,并编辑,加入如下代码:
package main
import "fmt"
func main() { 
    fmt.Printf("Hello, world.\n")
}

■  7,编译生成go程序
在任意文件路径下,运行:
go install hello

也可以进入项目(应用包)的路径,然后运行:
go install

注意,在编译生成go程序的时,go实际上会去两个地方找程序包:
GOROOT下的src文件夹下,以及GOPATH下的src文件夹下。

在程序包里,自动找main包的main函数作为程序入口,然后进行编译。

■  8,运行go程序
在/home/gopath/bin/下,会发现出现了一个hello的可执行文件,用如下命令运行:
./hello

GO语言教程(一)Linux( Centos)下Go的安装, 以及HelloWorld的更多相关文章

  1. Linux Centos下软件的安装与卸载方法

    转载于: http://blog.csdn.net/zolalad/article/details/11368879 Linux下软件的安装与卸载   第一章   linux下安装软件,如何知道软件安 ...

  2. Linux(centos)下mysql编译安装教程

    Linux下mysql编译安装教程 #查看linux发行版本 cat /etc/issue #查看linux内核版本号 uname -r 本文測试环境centOS6.6 一.Linux下编译安装MyS ...

  3. Linux CentOS下MySQL的安装配置之浅谈

    前期必备安装:VMware虚拟机,CentOS镜像[注意:Linux下使用CentOS   MySQL是不用在官网下载的,只需要配置就OK了] 下面开始正式操作: //CentOS安装MySQL之浅谈 ...

  4. centos 下查找软件安装在哪里的命令

    linux centos 下查找软件所安装的目录在哪里 1. 如果是rpm安装的可以:rpm -ql linux(1)package-name 具体你可以man rpm 2. 可以在根目录上直接fin ...

  5. CentOS下Eclipse的安装教程

    CentOS下Eclipse的安装教程 据了解,在Linux下的Java开发很多时候都比较喜欢使用vim + 插件,反而很少使用Eclipse,但是我是第一次使用Linux来进行Java编程,就什么都 ...

  6. Linux/Centos下清理内存和Cache方法

    Linux/Centos下释放内存和缓存方法 $ free -m 运行sync将dirty的内容写回硬盘$ sync 通过修改proc系统的drop_caches清理free的cache$ echo ...

  7. Linux(CentOs)下安装Phantomjs + Casperjs

    Linux(CentOs)下安装Phantomjs + Casperjs 是参照cnMiss's Blog http://ju.outofmemory.cn/entry/70691的博客进行安装的 1 ...

  8. linux/centos下安装nginx(rpm安装和源码安装)详细步骤

    Centos下安装nginx rpm包                                                                                 ...

  9. 在Linux/Centos下用wondershaper限速

    wondershaper是国外人开发的一款在Linux内核下基于TC工具的对整块网卡的限度工具,虽然有很久没有更新了,但是测试老版本在Centos6.3上依然可以使用. 首先下载wondershape ...

随机推荐

  1. VIM - 模式简介

    1. 概述 简述 vim 模式 很简单的东西, 随便说说得了 2. 模式们 概述 vim 各个模式 后面的切换, 都是从 标准模式 切换到其他模式 1. Normal Mode 名称 标准模式 / 常 ...

  2. Linux下c语言实现myod

    首先根据od要输出16进制的功能,以及c语言中文件的打开读取等函数,编写了如下代码. #include<stdio.h> #define N 1000 int main() { int c ...

  3. [BZOJ4712]洪水-[树链剖分+线段树]

    Description 小A走到一个山脚下,准备给自己造一个小屋.这时候,小A的朋友(op,又叫管理员)打开了创造模式,然后飞到山顶放了格水.于是小A面前出现了一个瀑布.作为平民的小A只好老实巴交地爬 ...

  4. Luogu3804 【模板】后缀自动机

    题面 题解 一个串的出现次数等于$endpos$的大小,也是$parent$树上节点的$size$大小, 构建出后缀自动机,按拓补序,模拟即可. 代码 #include<cstdio> # ...

  5. 【LG4585】[FJOI2015]火星商店问题

    [LG4585][FJOI2015]火星商店问题 题面 bzoj权限题 洛谷 \(Notice:\) 关于题面的几个比较坑的地方: "一天"不是一个操作,而是有0操作就相当于一天开 ...

  6. 【BZOJ4008】[HNOI2015]亚瑟王

    [BZOJ4008][HNOI2015]亚瑟王 题面 bzoj 洛谷 题解 由期望的线性性 可以知道,把所有牌打出的概率乘上它的伤害加起来就是答案 记第$i$张牌打出的概率为$fp[i]$ 则 $$ ...

  7. 使用三层交换机实现不同vlan的互通

    如下拓扑图所示,要实现vlan10(192.168.10.0/24)与vlan 20(192.168.20.0/24)的网络互通. 三层交换机配置: 创建vlan:Switch#configure t ...

  8. 数据结构思维导图 Part1

    刚刚结束数据结构的学习,在复习阶段,所以做来思维导图总结一下. 思维导图,顾名思义是应该有对思维有引导作用的,就像思维的整理术,然而想要学好什么,光看思维导图总是不够的. 树与图作为两个复杂非线性结构 ...

  9. Lite OS学习之事件EVENT

    1. Lite OS的事件EVENT,就是一个任务向另外一个任务通知事件的,不能数据传输.看下有的函数,实际比较复杂 2. 具体还是看编程,先全局结构体整个事件变量 /*事件控制结构体*/ EVENT ...

  10. spring 缓存机制

    简介 Spring3.1开始引入了基于注释的缓存,其使用方法和原理类似于Spring对事务管理的支持.可以对容器中的任意的bean或bean的方法添加缓存.   配置Spring缓存 Spring缓存 ...