はじめに
Goをインストールするにあたって、寄り道しながら、どのようにインストールするべきか、いろいろな方法を見てみました。
公式サイトを見てみる
直接圧縮ファイルをダウンロードするように解説されています。これだと面倒なので、パッケージ管理ツールを使ってインストールする方法がないか調べてみます。
GitHubを見てみる
GitHubだとパッケージ管理ツールを使ったインストール方法がREADMEに書いてあることが多いですがなかったです。
https://github.com/golang/go
GitHubのWikiを見てみる
もう少し粘ってみましょう。
WikiにUbuntuのページがありました。
Using PPAとして、公式ではないですが、aptを使ったインストール方法が書かれていました。
PPA(Personal Package Archive)とは、非公式のレポジトリのことです。
本来であれば、公式のインストール方法に従うべきですが、Wikiに従って、試しにこちらから入れてみます。
提供元のサイトを見てみると、
Latest updates
golang-1.20 5 weeks ago
Failed to build: i386
Goの1.20.5のbuildが失敗している記述がありました。
とりあえず入れてみましょう。
$ sudo add-apt-repository ppa:longsleep/golang-backports
$ sudo apt update
$ sudo apt install golang-go
$ go version
go version go1.20.4 linux/amd64
1.20.4がインストールされています。
公式で提供されている最新バージョンは1.20.5なので
今、Go公式から入手できるバージョンよりは低いようです。buildに失敗した履歴があるのに放置しているのはなぜなのでしょう?
今回は、最新版を入れたかったので、適当にコマンドを実行して入れると、意図してないバージョンが入ってしまう危険性があることがわかりました。
消しておきます。
$ sudo apt remove golang-go
$ sudo apt autoremove
Ubuntuの公式パッケージを調べてみる
apt searchコマンドを使用して、公式パッケージでgoをサポートしているものがないか、調べてみます。
$ apt search golang-go
...
golang-1.20-go/jammy 1.20.4-1longsleep1+focal amd64
Go programming language compiler, linker, compiled stdlib
...
ありましたが、1.20.4でした。
公式レポジトリでサポートされているコマンドがあったのでPPAの使用を促しているGoの公式Wikiは情報が古いということですね。
wgetコマンドを使って入れる
Go公式のダウンロードページから右クリックでリンクを取得します。
$ wget https://go.dev/dl/go1.20.5.linux-amd64.tar.gz
$ sudo tar -C /usr/local -xzf go1.20.5.linux-amd64.tar.gz
$ rm -rf go1.20.5.linux-amd64.tar.gz
$ export PATH=$PATH:/usr/local/go/bin
$ go version
go version go1.20.5 linux/amd64
無事に最新版のGoがインストールできました。
まとめ
Ubuntuの公式レポジトリでパッケージが用意されていても、必ずしも最新版ではない、ということが知れてよかったです。
パスの設定の手間があるので、マイナーバージョンの差異くらいならaptでインストールするほうが管理が楽かもしれないですね。