前言 之前有寫過一篇用 Brew 安裝 GO,因為習慣上會用 rvm、nvm 來管理程式語言的版本, 所以心血來潮也想試試看安裝 GVM 在作業環境,不過如標題所示, gvm Bug 滿多,而且跟我慣用的 Fish shell 不太相容。 總結下來,如果使用 OSX 環境推薦大家使用 Brew 來安裝。
安裝 GVM 安裝 gvm 完成後會跳出錯誤,沒有 gcc,所以我們來裝 gcc 。
安裝 gcc
安裝完成後輸入 gcc,結果:
brew 安裝的 gcc 並不能讓你直接用指令使用。 安裝完成後切換至 /usr/local/bin
資料夾,輸入 ls
查看資料夾。
並沒有直接對應到 gcc,而是 gcc-4.9,來測試看看 gcc-4.9 能否正常動作:
1 2 3 4 5 6 7 8 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/[email protected] /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
,輸入以下指令:
1 ln -s /usr/local/bin/gcc-4.9 gcc
來測試看看 gcc 指令:
1 2 3 4 5 6 7 8 $ gcc -v Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/local/Cellar/[email protected] /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:
1 2 3 4 5 $ 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 檔安裝。
1 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 以上的版本了
1 2 3 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
1 2 3 4 5 6 # 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
1 2 3 function gvm bass source ~/.gvm/scripts/gvm ';' gvm $argv end
Fish shell環境でgvmを導入する - メンチカツ