使用Vagrant建立Go開發環境

Vagrantfile

Vagrant.configure("2") do |config|
  config.vm.define :web do |web|
    web.vm.provider "virtualbox" do |v|
          v.customize ["modifyvm", :id, "--name", "web", "--memory", "512"]
    end
    web.vm.box = "base"
    web.vm.hostname = "web"
    web.vm.network :private_network, ip: "11.11.1.1"
  end

  config.vm.define :db do |db|
    db.vm.provider "virtualbox" do |v|
          v.customize ["modifyvm", :id, "--name", "db", "--memory", "512"]
    end
    db.vm.box = "base"
    db.vm.hostname = "db"
    db.vm.network :private_network, ip: "11.11.1.2"
  end
end

透過上面的指令可以安裝虛擬環境,接下來就需要在虛擬環境中安裝Go環境了,因此你首先要運行vagrant up把虛擬機器開起來,然後通過vagrant ssh登錄到系統中。

Ubuntu環境設置

需要修改設定檔/etc/default/locale設置為:

LANG="en_US.UTF-8"
LANGUAGE="en_US:en"

如果我們通過vagrant ssh登錄終端,按tab鍵出現bash: warning: setlocale: LC_CTYPE: cannot change locale (zh_CN.UTF-8)的警告錯誤,解決方法如下: sudo vi /etc/profile,
在檔案結尾部添加一句: export LC_ALL=C,通過上面的修改之後,退出系統,然後需要通過vagrant reload重啟虛擬機器。

安裝 Go

wget https://storage.googleapis.com/golang/go1.4.2.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.4.2.linux-amd64.tar.gz

// 測試
/usr/local/go/bin/go
  • 整合 .sh
#!/bin/sh

GoVersion=go1.9.1.linux-amd64.tar.gz
sudo yum install -y wget
wget "https://storage.googleapis.com/golang/$GoVersion"
sudo tar -C /usr/local -xzf $GoVersion
echo "export GOPATH=/vagrant/go/" >> ~/.bashrc
echo "export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin" >> ~/.bashrc
source ~/.bashrc

環境變數設定

上面我們已經知道Vagrant啟動之後,會預設把Vagrant這個目錄掛載到系統的/vagrant目錄,因此我們設置GOPATH到該目錄:

$ cd
$ mkdir /vagrant/gopath/
$ vim .bashrc

// 再最末端加上:
export GOPATH=/vagrant/gopath
export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin

// 重讀
$>source .bashrc