Go - 在 OSX 安裝 GVM

1 minute read

前言

之前有寫過一篇用 Brew 安裝 GO,因為習慣上會用 rvm、nvm 來管理程式語言的版本, 所以心血來潮也想試試看安裝 GVM 在作業環境,不過如標題所示, gvm Bug 滿多,而且跟我慣用的 Fish shell 不太相容。 總結下來,如果使用 OSX 環境推薦大家使用 Brew 來安裝。

安裝 GVM

安裝 gvm 完成後會跳出錯誤,沒有 gcc,所以我們來裝 gcc 。

安裝 gcc

brew install gcc

安裝完成後輸入 gcc,結果:

> Unknown command 'gcc'

brew 安裝的 gcc 並不能讓你直接用指令使用。 安裝完成後切換至 /usr/local/bin 資料夾,輸入 ls 查看資料夾。

並沒有直接對應到 gcc,而是 gcc-4.9,來測試看看 gcc-4.9 能否正常動作:

$ /usr/local/bin/gcc-4.9 -v

Using built-in specs.
COLLECT_GCC=/usr/local/bin/gcc-4.9
COLLECT_LTO_WRAPPER=/usr/local/Cellar/gcc@4.9/4.9.3/bin/../libexec/gcc/x86_64-apple-darwin15.0.0/4.9.3/lto-wrapper
Target: x86_64-apple-darwin15.0.0
Configured with: ../configure --build=x86_64-apple-darwin15.0.0 --prefix=/usr/local/Cellar/gcc49/4.9.3 --libdir=/usr/local/Cellar/gcc49/4.9.3/lib/gcc/4.9 --enable-languages=c,c++,objc,obj-c++ --program-suffix=-4.9 --with-gmp=/usr/local/opt/gmp4 --with-mpfr=/usr/local/opt/mpfr2 --with-mpc=/usr/local/opt/libmpc08 --with-cloog=/usr/local/opt/cloog018 --with-isl=/usr/local/opt/isl011 --with-system-zlib --enable-libstdcxx-time=yes --enable-stage1-checking --enable-checking=release --enable-lto --with-build-config=bootstrap-debug --disable-werror --with-pkgversion='Homebrew gcc49 4.9.3' --with-bugurl=https://github.com/Homebrew/homebrew-versions/issues --enable-plugin --disable-nls --enable-multilib
Thread model: posix
gcc version 4.9.3 (Homebrew gcc49 4.9.3)

OK 看來沒問題! 剩下的是把 gcc 指令對應 /usr/local/bin/gcc-4.9,輸入以下指令:

ln -s /usr/local/bin/gcc-4.9 gcc

來測試看看 gcc 指令:

$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/local/Cellar/gcc@4.9/4.9.3/bin/../libexec/gcc/x86_64-apple-darwin15.0.0/4.9.3/lto-wrapper
Target: x86_64-apple-darwin15.0.0
Configured with: ../configure --build=x86_64-apple-darwin15.0.0 --prefix=/usr/local/Cellar/gcc49/4.9.3 --libdir=/usr/local/Cellar/gcc49/4.9.3/lib/gcc/4.9 --enable-languages=c,c++,objc,obj-c++ --program-suffix=-4.9 --with-gmp=/usr/local/opt/gmp4 --with-mpfr=/usr/local/opt/mpfr2 --with-mpc=/usr/local/opt/libmpc08 --with-cloog=/usr/local/opt/cloog018 --with-isl=/usr/local/opt/isl011 --with-system-zlib --enable-libstdcxx-time=yes --enable-stage1-checking --enable-checking=release --enable-lto --with-build-config=bootstrap-debug --disable-werror --with-pkgversion='Homebrew gcc49 4.9.3' --with-bugurl=https://github.com/Homebrew/homebrew-versions/issues --enable-plugin --disable-nls --enable-multilib
Thread model: posix
gcc version 4.9.3 (Homebrew gcc49 4.9.3)

It’s working!!

lion - How to set gcc 4.8 as default gcc compiler - Ask Different

安裝 GO 1.4

要安裝 go 1.4 以上的版本前,你得先安裝 go 1.4。 而安裝 go 1.4 的時候會遇到以下的 bug:

$ gvm install go1.4
Installing go1.4...
 * Compiling...
ERROR: Failed to compile. Check the logs at /Users/andrew/.gvm/logs/go-go1.4-compile.log
ERROR: Failed to use installed version

這邊有個 work around 的方式,使用 binary 檔安裝。

gvm install go1.4 --binary

go1.4 compile error in Mac OS 10.11 · Issue #217 · moovweb/gvm

安裝 GO 1.8

安裝完成後要設定 GOROOT_BOOTSTRAP 變數,這樣就可以安裝 go 1.4 以上的版本了

gvm install go1.4
gvm use go1.4
export GOROOT_BOOTSTRAP=$GOROOT
gvm install go1.8

expo

Error with go1.5 install · Issue #155 · moovweb/gvm

將 gvm 指定加到 shell

bash

要將 gvm 指令加到 bash,將以下指令加到 ~/.bashsrc

# added gvm command to shell
source "$HOME/.gvm/scripts/gvm"
# directory path for GO
export GOPATH=$HOME/gopath
export GOROOT=$HOME/go
export PATH=$PATH:$GOROOT/bin

fish

要將 gvm 指令加到 fish shell,把以下指令加到 ~/.config/fish/config.fish

function gvm
   bass source ~/.gvm/scripts/gvm ';' gvm $argv
end

Fish shell環境でgvmを導入する - メンチカツ

Leave a Comment