![](https://d33wubrfki0l68.cloudfront.net/caf6e13676f749bf568b5d34fcbf214baf3dd915/b39ce/images/golang.png)
Ubuntu 19.04 に新しいバージョンの Go (プログラミング言語)をインストールする
Created at:最近は、時間を作って Hugo のテンプレートを書きまくってます。 Hugo の最新版を試してみたくて Go をインストールしたり、少しずつ Go の使い方もわかってきました。
そんなことをしていると、リニューアルした BLOG の投稿ネタとして、 Go の勉強を記録していけばいいんじゃないかと思うようになりました。
ちょうど Goを書き始める前に調べたあれこれまとめ (Qiita) という記事も見つけたところなので、これを参考に進めていこうと思っているところです。
まずは、事務所の Ubuntu マシンに Go をインストールしたときに気づいたことなどをまとめてみます。
しかし、 Gopher は可愛いw
![Gopher のイラスト](https://d33wubrfki0l68.cloudfront.net/d56a6defd31e9df5bdc2c960dc33304a0af6927a/37a46/images/gophercolor_640.png)
apt を使ってインストールする
apt コマンドを使って Go をインストールしてみます。
sudo apt install golang
インストールが出来たかどうかはコマンドラインで以下のコマンドを実行して確認します。
結果が /usr/bin/go
であればインストール出来ています。
which go
また、バージョンは以下のコマンドで表示されます。
go version
現時点での Ubuntu 19.04 での Go はバージョン 1.10.4 のようです。
ubuntu% go version
go version go1.10.4 linux/amd64
さて、 Hugo は 1.11 以上じゃないと動作しない感じなので、 1.11 や 1.12 をインストールしてみます。
sudo apt install golang-1.11 golang-1.12
でもこれだけじゃ検索パス上にインストールされないため、新しいバージョンの Go は動作しません。
ubuntu% type -a go
go is /usr/bin/go
go is /bin/go
ubuntu% /usr/bin/go version
go version go1.10.4 linux/amd64
ubuntu% /bin/go version
go version go1.10.4 linux/amd64
go1.12 みたいなそれっぽいコマンドもありません。
ubuntu% ls /usr/bin/go*
/usr/bin/go /usr/bin/gofmt /usr/bin/gold
ubuntu% ls /bin/go*
/bin/go /bin/gofmt /bin/gold
追加でインストールした go-lang-1.11
と go-lang-1.12
はコマンド検索パスに追加するか、
export PATH=/usr/lib/go-1.12/bin:$PATH
(バージョン 1.11 の Go を使う場合)
export PATH=/usr/lib/go-1.11/bin:$PATH
シンボリックリンクを張る必要があるようです。
ln -s /usr/lib/go-1.12/bin/go ~/bin/go
ln -s /usr/lib/go-1.12/bin/gofmt ~/bin/gofmt
apt を使って go-1.13 をインストールするには
新規インストールの場合も、上記手順でインストールした後の場合も、 apt install golang
で 1.13 がデフォルトの Go のバージョンになります。
sudo add-apt-repository ppa:longsleep/golang-backports
sudo apt update
sudo apt install golang
バージョン 1.13 がインストールされたかどうかを確認してみましょう。
ubuntu% /usr/bin/go version
go version go1.13.1 linux/amd64
うまくいったようです。
Go の機能を使ってインストールする
既に Go をインストールしている環境で、その他のバージョンも実行できるようにする仕組みが Go には初めから存在しています。
ここでの説明は、 go
コマンドと git
コマンドがインストールしてあるものとして進めます。
まずは、ライブラリのインストールコマンド go get
を利用して、バージョン 1.10.8 の Go をインストールします。
go get golang.org/dl/go1.10.8
ここで、環境変数 PATH に $HOME/go/bin が入っていることを確認して下さい。入っていない場合、この後のコマンドが実行できません。
または、 which
コマンドで確認してみてください。 go1.10.8
が見つからないというエラーが表示された場合は、環境変数 PATH を見直して下さい。
ubuntu% which go1.10.8
go1.10.8 not found
環境変数が正しく設定されていることを確認したら、関連ファイルのダウンロードとインストールを開始しましょう。
以下のコマンドを実行しするとダウンロードとインストールがおこなわれます。
go1.10.8 download
正しくインストールされたことを確認してみましょう。
go1.10.8 version
以下のように表示されていれば、インストールは成功です。
ubuntu% go1.10.8 version
go version go1.10.8 linux/amd64
先程の download
コマンドが実行されていない場合は、以下のように download
を実行しろというエラーメッセージが表示されます。
ubuntu% go1.10.8 version
go1.10.8: not downloaded. Run 'go1.10.8 download' to install to /home/miyabe/sdk/go1.10.8
インストール可能なバージョンの一覧は、 ダウンロードページ で確認できます。
特定のバージョンを削除する
以下のコマンドを実行し、インストールされているディレクトリを探します。
go1.10.8 env GOROOT
私の環境では以下のように表示されます。
ubuntu% go1.10.8 env GOROOT
/home/miyabe/sdk/go1.10.8
GOROOT に設定されているディレクトリをまるごと削除します。
下記のコマンドを実行します。
rm -r /home/miyabe/sdk/go1.10.8
さらに go1.10.8 コマンドも消してしまってもいいでしょう。
rm /home/miyabe/go/bin/go1.10.8
コンパイル・実行を試す
$HOME/go/src/hello
というディレクトリを作成し、 hello.go
というファイル名で以下のソースコードを入力します。
package main
import "fmt"
func main() {
fmt.Printf("hello, world\n")
}
$HOME/go/src/hello
というディレクトリで以下のコマンドを実行して下さい。
まずは build (実行形式のファイルを作成)をおこないます。
go build
build が終わったら実行です。
./hello
以下の結果が表示されるはずです。
ubuntu% ./hello
hello, world
何もエラーが表示されなければ、問題なくインストールできていると判断しても良さそうです。
参考文献
- Go’s New Brand - The Go Blog
- Go のロゴは上記からいただきました。
- doc/gopher/ - The Go Programming Language
- gopher (Go のマスコット)は上記からいただきました。
- Gopherくん入門 - write.kogu
- Gopher くんが可愛いのも Go 好きエンジニアを増やすことにも貢献していますね。
- Ubuntu · golang/go Wiki
- Ubuntu へのインストール方法。GitHub の Go の Wiki より
- Getting Started - The Go Programming Language
- 他のバージョンのインストール方法と build と実行方法を参考にしました。