在Ubuntu 12.04 64bit上配置,安装和运行go程序

2024-03-18 16:08

本文主要是介绍在Ubuntu 12.04 64bit上配置,安装和运行go程序,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

注意:

下面的安装配置均遵从官网或是教材《Go语言程序设计》中的部分内容.


顺便说下,这是一本很难得的Go语言的入门教程,非常基础和全面。起初我因为这本书的封面比较讨厌它,闲置几年之后,一次偶尔要用时静心翻阅之后,发现写得还不错,而且作者的官网

http://www.qtrac.eu/gobook.html

是一直在更新的,实在难能可贵。


一.下载和安装go
在Ubuntu12.04上如果使用go安装包安装,只需在命令行输入

sudo apt-get install golang-go



如果是该方式安装(在Ubuntu上比较推荐这种方式,比较简单),将不需要设置go语言的环境变量,安装完成自己运行下面的命令查看

go version


下面我们关注更具普遍性的源码安装方式,它在linux发行版本中都是适用的.

进入go语言的官网http://golang.org/
根据操作系统和CPU架构选择所要安装的go版本,我所用的操作系统是Ubuntu 12.04 64bit,所以我将下载Linux下的amd64版本:
假如是旧版本升级,建议先删除旧版本再下载并安装全新的版本
wget https://go.googlecode.com/files/go1.2.linux-amd64.tar.gz

安装到系统目录
下载该archive后,extract它到系统目录/usr/local下面,在/usr/local/go下面生成一个go tree,比如
tar zxvf go1.2.linux-amd64.tar.gz -C /usr/local
建议使用root用户设置永久环境变量
vim /etc/profile
在最末行加入
export PATH=/usr/local/go/bin:$PATH
保存退出并更新
. /etc/profile
你可以使用下面的命令验证,刚才设置的环境变量是否生效?
echo $PATH
注意:这种方法,需要你全程都使用root用户登录,包括go的workspace目录也在root目录下面.

安装到自定义目录(custom location)
假如你只是使用远程Linux服务器的一个普通用户,没有root权限,那么你只能将go安装到你的home目录下面,此时必须设置GOROOT环境变量
比如,你安装go到你的home目录下面,你需要设置永久环境变量
vim ~/.bashrc
在末行加入
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
保存退出并更新
. ~/.bashrc
注意:这里加入$GOROOT/bin的路径到PATH环境变量下面,就是为了在所有路径下直接执行go,godoc,gofmt等命令,参见下面的截图:



二.卸载go

如果你需要卸载go,你需要删除安装到系统中的go目录,并且同时从/etc/profile或是~/.bashrc中删除go相关的环境变量,并同步更新该配置文件.

三.验证go安装
方法一:直接在当前命令行下面运行
go version
如果能够正确显示版本信息,说明go的安装配置基本正确


方法二
(暂不推荐这个例子,因为它涉及workspace的设置,参见后面的分析)


写一个简单的hello world程序hello.go进行验证:

package main
import "fmt"

func main() {
    fmt.Printf("hello, world\n")
}
使用go工具编译和运行
$ go run hello.go
hello, world
如果结果显示正确,说明go的环境设置是正确的

四.搭建工作环境 setup your work environment
下面假设go在我的工作机器上已经成功搭建.
构建go程序, 有两步是必须的:编译和链接,所有这两步都由go构建工具来完成即可.但是go构建工具能够构建本地程序和本地包需要满足3个条件:
(1)Go的bin目录必须在环境变量中,这个在我们上面的go的安装配置中已经得到保证.
(2)必须有一个包含src的目录树,其中包含了本地程序和本地包的源代码
(3)src的上一级目录必须在环境变量GOPATH中

go工具要求你以一种特殊的方式组织代码,也就是说,go code必须放在一个workspace中, workspace是一个多重嵌套目录结构(hierarchy),它的root目录下有3个目录:
src  --包含go的源文件,被组织成一个package,每个包一个目录
pkg  --包含package object
bin  --包含可执行文件
go工具构建src中的package,安装生成的binaries进pkg和bin目录下面

GOPATH环境变量指定了你的workspace的位置,可能是你开发go代码时唯一需要设置的环境变量, 在开始源码开发前,需要先创建一个workspace目录并相应设置为GOPATH环境变量,workspace目录可以放在系统的任何地方,只要不和go的安装目录相同就可以了.

为了在多个目录下开发自己的go程序和包,我们需要如下设置该环境变量
mkdir -p ~/program_develop/go_demo
vim ~/.bashrc
export GOPATH=/home/taoyx/program_develop/goeg:/home/taoyx/program_develop/go_demo
export PATH=$PATH:$GOPATH
保存退出,并更新
. ~/.bashrc
做了上述设置后,我们所生产的go程序就可以在系统的任何路径下执行

五.下载该书相关的源代码
从该书官网http://www.qtrac.eu/gobook.html下载相应的源码包,使用chrome下载就可以了.
解压到指定目录:
cd 下载`
unzip gobook-1.0.zip -d ~/program_develop/

cd ~/program_develop/goeg

这样我们就得到了所有的例子源码


下面验证一个示例程序是否可以运行?
cd src/hello
go build 
生成的可执行文件在当前目录下面,直接运行
./hello

另一种方法:生成的可执行文件到workspace的bin目录下,而非当前的目录下面
go install
cd ~/program_develop/goeg/bin

./hello

注意:go build和go install的区别

go install与go build所做的工作完全相同,唯一的区别是,go install将生成的可执行文件放入$GOPATH/bin下面,而go build仅在源码的当前目录下面


六.在本地查看某个包中的文档
在终端中使用godoc命令来查看整个包或是包中某个特定功能的文档,例如
在终端执行
godoc image NewRGBA
将会输出关于函数image.NewRGBA()的文档
godoc image/png
将输出关于整个image/png包的文档

七.在本地查看go语言官方文档
现在终端运行godoc工具,提供一个参数以使godoc运行为Web服务器
godoc -http=:8000
这里端口号可以任意指定, 只要不跟已经运行的服务器端口号冲突就行,然后,在chrome浏览器中打开
http://localhost:8000/
即可在本地查看go语言的官方文档,跟官网 golang.org的首页非常相似.参见下面的截图:



八.参考文献:
Go语言程序设计,许式伟,吕桂华等翻译
http://golang.org/#
https://code.google.com/p/go/downloads/list
http://golang.org/doc/install

http://golang.org/doc/code.html

http://pkgs.org/download/golang   golang下载包

这篇关于在Ubuntu 12.04 64bit上配置,安装和运行go程序的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/822886

相关文章

MySQL数据库双机热备的配置方法详解

《MySQL数据库双机热备的配置方法详解》在企业级应用中,数据库的高可用性和数据的安全性是至关重要的,MySQL作为最流行的开源关系型数据库管理系统之一,提供了多种方式来实现高可用性,其中双机热备(M... 目录1. 环境准备1.1 安装mysql1.2 配置MySQL1.2.1 主服务器配置1.2.2 从

从基础到高级详解Go语言中错误处理的实践指南

《从基础到高级详解Go语言中错误处理的实践指南》Go语言采用了一种独特而明确的错误处理哲学,与其他主流编程语言形成鲜明对比,本文将为大家详细介绍Go语言中错误处理详细方法,希望对大家有所帮助... 目录1 Go 错误处理哲学与核心机制1.1 错误接口设计1.2 错误与异常的区别2 错误创建与检查2.1 基础

Linux云服务器手动配置DNS的方法步骤

《Linux云服务器手动配置DNS的方法步骤》在Linux云服务器上手动配置DNS(域名系统)是确保服务器能够正常解析域名的重要步骤,以下是详细的配置方法,包括系统文件的修改和常见问题的解决方案,需要... 目录1. 为什么需要手动配置 DNS?2. 手动配置 DNS 的方法方法 1:修改 /etc/res

mysql8.0.43使用InnoDB Cluster配置主从复制

《mysql8.0.43使用InnoDBCluster配置主从复制》本文主要介绍了mysql8.0.43使用InnoDBCluster配置主从复制,文中通过示例代码介绍的非常详细,对大家的学习或者... 目录1、配置Hosts解析(所有服务器都要执行)2、安装mysql shell(所有服务器都要执行)3、

在Ubuntu上打不开GitHub的完整解决方法

《在Ubuntu上打不开GitHub的完整解决方法》当你满心欢喜打开Ubuntu准备推送代码时,突然发现终端里的gitpush卡成狗,浏览器里的GitHub页面直接变成Whoathere!警告页面... 目录一、那些年我们遇到的"红色惊叹号"二、三大症状快速诊断症状1:浏览器直接无法访问症状2:终端操作异常

java程序远程debug原理与配置全过程

《java程序远程debug原理与配置全过程》文章介绍了Java远程调试的JPDA体系,包含JVMTI监控JVM、JDWP传输调试命令、JDI提供调试接口,通过-Xdebug、-Xrunjdwp参数配... 目录背景组成模块间联系IBM对三个模块的详细介绍编程使用总结背景日常工作中,每个程序员都会遇到bu

Go语言中json操作的实现

《Go语言中json操作的实现》本文主要介绍了Go语言中的json操作的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录 一、jsOChina编程N 与 Go 类型对应关系️ 二、基本操作:编码与解码 三、结构体标签(Struc

uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)

《uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)》在uni-app开发中,文件上传和图片处理是很常见的需求,但也经常会遇到各种问题,下面:本文主要介绍uni-app小程序项目中实... 目录方式一:使用<canvas>实现图片压缩(推荐,兼容性好)示例代码(小程序平台):方式二:使用uni

python依赖管理工具UV的安装和使用教程

《python依赖管理工具UV的安装和使用教程》UV是一个用Rust编写的Python包安装和依赖管理工具,比传统工具(如pip)有着更快、更高效的体验,:本文主要介绍python依赖管理工具UV... 目录前言一、命令安装uv二、手动编译安装2.1在archlinux安装uv的依赖工具2.2从github

Ubuntu向多台主机批量传输文件的流程步骤

《Ubuntu向多台主机批量传输文件的流程步骤》:本文主要介绍在Ubuntu中批量传输文件到多台主机的方法,需确保主机互通、用户名密码统一及端口开放,通过安装sshpass工具,准备包含目标主机信... 目录Ubuntu 向多台主机批量传输文件1.安装 sshpass2.准备主机列表文件3.创建一个批处理脚