写在前面:

目前,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

最新文章

  1. C# 图片的裁剪,两个图片合成一个图片
  2. Session监听器
  3. 如何把其他用户创建的表,导入到自己数据库是,所有者owner改变为自己创建的用户
  4. [Android Tips] 13. How to Detect Tablet
  5. tomcat 支持ssi功能配置
  6. 解决adb shell input text 中文输入,unicode转utf-8
  7. Android之日期及时间选择对话框
  8. Svn入门
  9. android studio升级2.3后出现的问题
  10. 编辑器-vim
  11. Chessboard POJ - 2446(最大流 || 匹配)
  12. idou老师教你学Istio 17 : 通过HTTPS进行双向TLS传输
  13. UITextField的UIControlEventValueChanged事件
  14. JS中getElementByID,getElementsByName,getElementsByTagName的区别
  15. 邮件中的CC和BCC含义
  16. 莫比乌斯函数&莫比乌斯反演
  17. bin log、redo log、undo log和MVVC
  18. Python库导入错误:ImportError: No module named matplotlib.pyplot
  19. RT-thread内核之信号量
  20. 2016弱校联盟十一专场10.3 We don't wanna work!

热门文章

  1. ACM1005:Number Sequence
  2. 【python3】——centos7下安装
  3. 使用maven将GitHub上项目打包作为依赖添加
  4. 自定义udf添加一列
  5. bootstrap表格插件——Bootstrap-Table
  6. day 3 模块
  7. 探究linux设备驱动模型之——platform虚拟总线(二)
  8. OpenCL入门:(二:用GPU计算两个数组和)
  9. NES像素风格的Raspberry
  10. @Resource和@Autowired的异同