月度归档:2013年11月

Mac OSX下Go语言环境搭建过程及遇见的一些问题

Gopher

一直对Google的Go很好奇,最近看到Go的开发团队专门做了Go tour来帮助开发者学习,就决定尝试下。

本来感觉一个很简单的环境搭建却出现了几个意想不到的问题,所以有必要 

一.安装

Go的官网上有安装指南,看了下,决定用brew下载安装,简单方便。

$ brew install go

安装后输入go可以查看一些命令的使用。

看下版本

$ go version

go version go1.1.2 darwin/amd64

安装包会自动安装在 /usr/local/Cellar/go目录下。

二.配置

安装好后,在/usr/local/Cellar/go/1.1.2/libexec/misc中,可以看到有很多编辑器版本, 在其下可以自动配置不同编辑器来使用Go开发。

配置$GOPATH和$GOROOT

输入以下命令来查看环境变量

$ go env

GOARCH=”amd64″

GOBIN=”"

GOCHAR=”6″

GOEXE=”"

GOHOSTARCH=”amd64″

GOHOSTOS=”darwin”

GOOS=”darwin”

GOPATH=”/Users/Jackie/gocode”

GORACE=”"

GOROOT=”/usr/local/Cellar/go/1.1.2/libexec”

GOTOOLDIR=”/usr/local/Cellar/go/1.1.2/libexec/pkg/tool/darwin_amd64″

CC=”gcc”

GOGCCFLAGS=”-g -O2 -fPIC -m64 -pthread -fno-common”

CGO_ENABLED=”1″

$GOROOT是go的安装路径,配置后可直接在终端执行相关命令。注:Go 1.0之后安装包自带的Go tool会自动设置。

$GOPATH用来设置workspaces,即工作路径,可以设置多个。在Go  1.1之后被强制要求设置。具体见官方文档GoLang.org

关于这个$GOPATH,我安装时报错不断,真是让人头痛。

开始一直提示”$GOPATH not set.”,尝试了Stack Overflow上所有的方法,都没用,最后索性不弄了。没想到第二次打开又可以了,难道要重启?

后来就是在安装gotour时出现的一个问题,下面再说。

三.安装Gotour 

首先需要hg(Mercurial),这是一个跨平台的分布式版本控制软件。安装后可以使用hg等命令。

当然,我还是用brew安装

$ brew install hg

安装成功后后输入hg命令会出现Mercurial的相关使用信息。

接下来需要建立$GOPATH所需要的目录,下面是官方给出的一个例子

 GOPATH=/home/user/gocode

 

    /home/user/gocode/

        src/

            foo/

                bar/               (go code in package bar)

                    x.go

                quux/              (go code in package main)

                    y.go

        bin/

            quux                   (installed command)

        pkg/

            linux_amd64/

                foo/

                    bar.a          (installed package object)

按照官方文档,这时在终端下使用

$ sudo go get code.google.com/p/go-tour/gotour 

就可以安装Go tour了

如果安装中文的话地址改为

$ sudo go get bitbucket.org/mikespook/go-tour-zh/gotour

注:中文地址我始终不能下,貌似被qiang了。

不过我安装的时候又出现了问题,

abort: error: EOF occurred in violation of protocol  

package code.google.com/p/go-tour/gotour: exit status 255 

反复尝试无果后,决定用hg直接手动下载

$ hg clone https://code.google.com/p/go-tour/

再复制

cp -r go-tour $GOPATH/src/pkg/code.google.com/p/go-tour/gotour

再安装

cd $GOPATH/src/pkg/code.google.com/p/go-tour/gotour

go install ./

这时gotour就安装到$GOPATH/bin目录下了

屏幕快照 2013 11 26 17 09 26

进入这个目录打开它就行了

$ ls $GOPATH/bin

$ gotour

2013/11/26 15:48:56 Serving content from /Users/Jackie/gocode/src/code.google.com/p/go-tour

2013/11/26 15:48:56 A browser window should open. If not, please visit http://127.0.0.1:3999

这时会自动打开浏览器,如图

屏幕快照 2013 11 26 17 13 13

最后终于弄好了,不过不能每次都进这个目录再输入命令吧。

再配置一下bashrc就可以了。

$ sudo vi /etc/bashrc

然后在下面加上

#Go tour

alias gotour=’/Users/Jackie/gocode/bin/gotour’

这样就完美了。

大功告成,赶快体验一下。

 

写的不好,如有错误欢迎指出。

半夜断网以后

半夜,正在V2EX上逛。突然断网了。

先是在Terminal中ping了下学校的DNS服务器,结果

8 packets transmitted, 0 packets received, 100.0% packet loss

输入“ifconfig”,看下MAC和IP地址,也没问题。

然后看了看网线,没发现问题。重新插上去,依旧不能上网。

看了下室友,在线视频的视频,在线游戏的游戏,不亦乐乎。

这下麻烦了。

想了下,难道是CocoaMento失效了?被学校封了?

万般无奈下,用手机进入学校的网络信息服务中心找找原因。突然扫到一行信息“您的登录时间是2013-11-25”,哦,25号,原来是该缴网费了。

突然意识到电信运营商发的平时被我当作垃圾短信的续费提醒还是很贴心的。

找回OSX Mavericks中的网络实用工具

更新到Mac OS X 10.9后,很多人会发现Utilities里没有了Network Utility(网络实用工具)。

虽然它的功能完全可以在terminal中实现,但是在这里列出来打开它的方法以供需要的人参考。

用Spotlight强大的搜索功能就可以找到。如图:

2013 11 18 16 06 08

可以看到地址为/System/Library/CoreServices/Applications

打开Finder,shift+command+G,粘贴地址,前往文件夹。

2013 11 18 16 18 01

这时就可以看到程序的文件了。

然后再给它做个替身,把替身移动到/Applications里,这时就会在Launchpad中显示网络实用工具了。

2013 11 18 16 20 25

另外,其实Mavericks是给它提供了进入方法的,不过这入口有点偏僻。

打开“系统信息”,选择“窗口”,这时就能看到被打入冷宫的网络实用工具了。

2013 11 18 16 22 16