Mac OS X下go的安装,使用,删除

下载和安装

  • 下载
    - 在官网下载安装包然后安装
  • 安装
    • 一路默认安装即可
    • 然后在终端运行go version,如果显示类似下面的信息,表明安装成功
      go version go1.10.1 darwin/amd64
    • 如果没有出现上面的信息或者出现了其他的报错信息,请自行查询解决

工作空间,GOROOT和GOPATH和bin的设置

  • 开始写go项目代码之前,需要创建一个工作空间,并在环境变量中指明工作空间的目录

    • 我们在 $HOME($HOME是每个电脑下的用户主目录,每个电脑可能不同,可以在终端运行echo $HOME获取,我们这里就直接使用 $HOME,)目录下创建一个工作空间go,所以工作空间的目录就是 $HOME/go. (如果你想在一个不同的目录下创建工作空间,那你需要设置一下GOPATH 环境变量和bin环境变量)

    • 设置 GOPATH 环境变量

      • 编辑你的 ~/.bash_profile(在终端中运行 vi ~/.bash_profile即可) 来添加下面这行代码(如果你找不到 .bash_profile,那自己创建一个就可以了)
      export GOPATH=$HOME/go
      
      • 保存然后退出你的编辑器。然后在终端中运行下面命令
      source ~/.bash_profile
      
    • 设置bin可执行文件目录

      • 在go官方文档中,是这样设置go的bin二进制文件目录路径的

        • 注意,设置GOBIN路径以便当运行 go install时产生二进制文件
          export GOBIN=$HOME/go/bin
      • 而在其他网上说明文档中,直接设置path

          ```
          export PATH=$HOME/go/bin
          ```
        
      • 我的 bash_profile 文件中是这样的

        export GOPATH=$HOME/go
        export PATH=$HOME/go/bin:$PATH
        
      • 如果你是在mac os x 下直接通过安装包安装的,那么不用设置 bin 也可以,因为通过安装包安装时(除非你的工作空间不在$HOME/go而在其他你偏好的文件目录下,这个时候是需要设置bin目录的),已经在 /etc/paths.d/go下指定了 bin 的目录

        $ cd /etc/paths.d
        $ ls
        go
        $ cat go
        /usr/local/go/bin
        
        
  • GOROOT 默认是在 /usr/local/go,如果没有,可以在 bash_profile 文件中设置

    export GOROOT=/usr/local/go
    

    然后退出编辑器,然后运行source ~/.bash_profile命令即可

第一个go程序

  • 进入到工作空间中(我的是$HOME/go, 所以使用cd $HOME/go命令直接进入)
  • 然后创建一个目录 src/hello( mkdir src/hello),
  • 然后进入到该目录中(cd src/hello),
  • 然后使用vi hello.go或者其他方式创建一个 hello.go文件,
  • 然后打开该文件进行编辑
package main

import "fmt"

func main() {
    fmt.Printf("hello, world\n")
}
  • 保存后退出
  • 然后在该hello.go文件目录下运行 go build, 这个命令会创建一个命名为 hello 的可执行的文件,
  • 如果执行命令 ls,你会看到这个可执行文件就在hello.go的旁边
$ go build hello.go
$ ls
hello    hello.go
  • 然后执行命令 ./hello
$ ./hello
hello, world!

如果看到 hello, world, 说明程序正确运行,否则有错

  • 可以运行 go install hello将二进制文件安装到工作空间 ($HOME/go) 的bin目录中,或者 go clean hello 将该二进制文件删掉
  • 运行 go install hello命令之后,运行ls $GOPATH/bin,可以看到此时hello已经在 bin 目录中, 这个时候,你在系统的任何目录下运行 hello命令,都会打印出hello, world
$ pwd
$HOME/go/src/hello
$ go install hello
$ ls $HOME/bin
hello
$ cd /Users/
$ hello
hello, world!
  • 如果运行hello的结果是 -bash: hello: command not found这样的结果,那么你可能需要在 /.bash_profile中指定一下PATH,(例如,在./bash_profile中添加 export PATH=$HOME/go/bin:$PATH, 然后运行 source ~/.bash_profile,然后再次运行 go install hello,然后再运行 hello,应该会打印出hello, world!的结果)

删除 go

  • 当你需要删除 go
    • 删除 /usr/local目录下的 go
    • 删除 PATH 环境变量中的 bin
      • 在/etc/profile 或者 $HOME/.profile 或者 $HOME/.bahs_profile中删除bin的设置
      • 如果是通过 mac os x 的安装包安装的,那么应该删除 /etc/paths.d/go 文件

go 命令详解

  • go run: 运行go 源码程序
  • go build: 编译go 源码
  • go install: go源码编译并打包到 $GOPATH/bin 目录下

延伸点

mac下的环境变量设置

  • 添加 /usr/local/go/binPATH环境变量,可以通过添加下面这行到到 /etc/profile(for a system-wide installation) 或者$HOME/.profile
    export PATH=$PATH:/usr/local/go/bin

    • 如果 profile 文件在/etc/profile中,表明是全系统范围内安装的,我的就是在 /etc/profile

    • MacOS加载bash shell环境变量的加载顺序

      • mac 一般使用bash作为默认shell,mac系统的环境变量,加载顺序如下
        • 系统级别的
          • /etc/profile
            • 登录的时候读入,默认的设定文件
            • 这个文件为系统的每个用户设置环境变量,当用户第一次登陆时,该文件被执行,并从 /etc/profile.d 目录的配置文件中收集 shell 的设置
            • 修改方法
              • 如果没有特殊说明,设置PATH的语法都为
              export PATH=$PATH:<PATH 1>:<PATH 2>...<PATH N>
              
              • 有多个路径时,每个路径之间使用冒号隔开
          • /etc/bashrc
            • 这个是bash启动时候必须加载的环境变量,作为全局环境变量设置是可行的
            • 每一个运行 bash shell 的用户执行此文件,当 bash shell被打开时,该文件被读取
            • 修改方法同上
          • /etc/paths
            • 这个是个系统全局的路径,不建议做直接改动
            • 修改方法
              • 加载路径
              1.创建一个文件
              sudo touch /etc/paths.d/mysql
              2.用vim打开这个文件(如果是以 open -t方式打开,则不允许编辑)
              sudo vim /etc/path.d/mysql
              3.编辑该文件,键入并保存(关闭该terminal窗口并重新打开一个,就鞥使用MySQL命令了)
              /usr.local/mysql/bin
              
              • 或者像下面
              sudo -s 'echo "/usr/local/sbin/mypath" > /etc/paths.d/mysql'
              
        • 用户级别的
          • /.bash_profile (mac用的)
            • 登录之后在 /etc/profile 载入之后载入,十分重要的配置文件
          • /.bash_login
            • 登录之后,如果 ~/.bash_profile不存在的话,载入这个文件
          • /.profile
            • 登录之后,如果 ~/.bash_login不存在的话,才载入这个文件
          • /.bashrc (linux 用的)
            • bash shell打开的时候载入
      • 在你的 $HOME 下面有.bash_profile或者.bash_login的时候,会忽略调 .profile
      • 系统级别,用户级别的只要在其中选一个修改就够了
    • 延伸阅读

      • Mac 启动加载文件位置
        • 首先需要知道你使用的 Mac OS X 是什么样的 shell,使用命令 echo $SHELL
          • 如果输出的 csh 或者 tcsh,那么使用的 c shell
          • 如果输出的是 bash,sh, zsh,那么使用的 Bourne Shell的一个变种
          • mac os x 10.2 之前默认使用的是 c shell
          • mac os x 10.3 之后使用的是 Borune shell
        • 如果使用的是 borune shell
          • 将你要添加的环境变量添加到你主目录下的.profile或者 .bash_profile, 如果 profile 或者 bash_profile 存在,那么直接将环境变量添加进入即可,如果 profile 或者 bash_profile 文件不存在,没关系,创建一个,然后把环境添加进去即可
      • Mac 配置环境变量的地方
        • /etc/profile (建议不修改这个文件)
          • 全局(公有)配置,不管是哪个用户,登录时都会读取该文件
        • /etc/bashrc (一般在这个文件中添加系统级别环境变量)
          • 全局(公有)配置,bash shell 执行时,不管是何种方式,都会读取此文件
        • ~/.bash_profile (一般在这个文件中添加用户级别环境变量)
          • 每个用户都可以使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅被执行一次

其他延伸点

  • mac下运行 $HOME的结果如下
yangdeMacBook-Pro-2:~ yangtao$ $HOME
-bash: /Users/yangtao: is a directory
yangdeMacBook-Pro-2:~ yangtao$ 

所以 $HOME 的值是 /Users/yangtao,是当前登录用户的主目录

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,565评论 6 479
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,021评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,003评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,015评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,020评论 5 370
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,856评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,178评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,824评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,264评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,788评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,913评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,535评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,130评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,102评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,334评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,298评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,622评论 2 343

推荐阅读更多精彩内容