欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2024-01-16 21:54:04
...

下载和安装

  • 下载
    - 在官网下载安装包然后安装
  • 安装
    • 一路默认安装即可
    • 然后在终端运行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,是当前登录用户的主目录