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,是当前登录用户的主目录

    原文作者:楠小忎
    原文地址: https://www.jianshu.com/p/40e08c85f9e3
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞