バージョン管理(は大切らしい)
- 昨日購入した書籍には
/usr/local
配下にgo
ディレクトリを作成し、さらにバージョンごとにディレクトリを作成。必要応じてシンボリックリンクを切り替える事でバージョンを切り替えを行い管理出来ると書いてあった - 前職の上司が「開発するバージョンによって動作がまったく違うので、バージョン管理は凄く大切!」と力説された事がある。エンジニアとして尊敬する人だったので、今でもそれははっきりと覚えている事からバージョン管理を調べてみた
- 今回インストールした
snap
という方法では簡単にバージョンを切替える事が出来るらしい。参照元はココです。(情報ありがとうございます) - まず
go version
コマンドで既存バージョンを確認
$ go version
go version go1.12.2 linux/amd64
- 切り替えたいバージョンを
snap info go
で参照。なお、最終行に今インストールされているバージョンが表示されている(installedのところ)
name: go
summary: Go programming language compiler, linker, stdlib
publisher: Michael Hudson-Doyle (mwhudson)
contact: michael.hudson@ubuntu.com
license: unset
description: |
This snap provides an assembler, compiler, linker, and compiled libraries for the Go programming
language.
commands:
- go
- go.gofmt
snap-id: Md1HBASHzP4i0bniScAjXGnOII9cEK6e
tracking: stable
refresh-date: 5 days ago, at 20:49 JST
channels:
stable: 1.12.5 2019-05-08 (3739) 92MB classic
candidate: ↑
beta: ↑
edge: devel-f766b68 2019-05-09 (3749) 92MB classic
1.12/stable: 1.12.5 2019-05-08 (3739) 92MB classic
1.12/candidate: ↑
1.12/beta: ↑
1.12/edge: ↑
1.11/stable: 1.11.10 2019-05-08 (3730) 82MB classic
1.11/candidate: ↑
1.11/beta: ↑
1.11/edge: ↑
1.10/stable: 1.10.8 2019-01-24 (3133) 58MB classic
1.10/candidate: ↑
1.10/beta: ↑
1.10/edge: ↑
1.9/stable: 1.9.7 2018-06-13 (2117) 58MB classic
1.9/candidate: ↑
1.9/beta: ↑
1.9/edge: ↑
1.8/stable: 1.8.7 2018-02-07 (1407) 51MB classic
1.8/candidate: ↑
1.8/beta: ↑
1.8/edge: ↑
1.7/stable: 1.7.6 2017-06-02 (324) 48MB classic
1.7/candidate: ↑
1.7/beta: ↑
1.7/edge: ↑
1.6/stable: 1.6.4 2017-05-17 (122) 49MB classic
1.6/candidate: ↑
1.6/beta: ↑
1.6/edge: ↑
installed: 1.12.2 (3584) 92MB classic
-
sudo snap refresh --classic --channel=切り替えたいバージョン
で切り替えが出来る(切り替えたいバージョンはインストールされる) - 余談だが最後に
go
を付けないと以下エラーが表示されて切り替え不可になるので注意
error: a single snap name is needed to specify mode or channel flags
- 切り替え実施
$ sudo snap refresh --classic --channel=1.10/stable go
go (1.10/stable) 1.10.8 from Michael Hudson-Doyle (mwhudson) refreshed
- インストール(切り替え)完了後にバージョンを見るとちゃんと指定したバージョンに切り替わっている。う〜ん凄いぜsnapコマンド!
$ go version
go version go1.10.8 linux/amd64`
- 余談だ
sudo snap refresh --classic --channel=stable
で最新の安定板にすると、再度DLが始まり最終的に最終バージョンがインストールされる
$ sudo snap refresh --classic --channel=stable go
go 1.12.5 from Michael Hudson-Doyle (mwhudson) refreshed
$ go version
go version go1.12.5 linux/amd64
【余談】クラウドでやりたい
- オンプレミス(あまり好きな表現ではない)でやると、設置場所にいないと出来ないのは21世紀には歯痒い
- なんやかんあるけど、結局クラウドでやればいいのでは?
- そんなこんなで明日はGCPでインスタンス構築してみようと思う
- 脱線しないように注意しましましょう