最新版のGoをインストールする

次回のLinuxコマンドを自作しながら学ぶの記事を読み進める為の準備として、プログラミング言語のGoの最新版をインストールします。

The Go Programming Language


今回の内容はターミナル上でコードを書くためのMicroをインストールするの内容に従い、Microがインストールされていることを前提にして話を進めます。


※既に最新版でないGoがインストールされている場合(APT経由でインストール)は、

$ sudo apt purge golang-go
$ sudo apt autoremove

でアンインストールしておきます。




最初に下記ページでGoの最新版の調べます。

https://go.dev/dl/


当記事作成時のGoのバージョンは1.22.2でした。




続いて、CPUのアーキテクチャについて調べます。

アーキテクチャはAMDとARMがあります。

AMDとARMについてはクロームブックの選び方に詳しい記載があり、ラズベリーパイであれば、ARMアーキテクチャになります。




GoのバージョンとCPUのアーキテクチャを参考にして、Goをダウンロードします。

ターミナルを起動し、下記のコマンドを実行します。

$ wget https://dl.google.com/go/go1.22.2.linux-armv6l.tar.gz

上記コマンドを実行することで、Goをダウンロードできました。


続いて、下記のコマンドでGoを解凍します。

$ sudo tar -C /usr/local/ -xzf go1.22.2.linux-armv6l.tar.gz

解凍できましたら、パスを通します。

$ micro .profile

上記のコマンドで.profileという名前のファイルをMicroで開くという意味になります。


Microの画面が表示されましたら、末尾に

export PATH=$PATH:/usr/local/go/bin
export GOPATH=$HOME/go
export PATH=$GOPATH/bin:$PATH

を追加し、Ctrl + sで内容を保存し、Ctrl + qでMicroを閉じます。


$ source .profile

で.profileに新たに追加した内容を反映した後、

$ go version

でGoが使用できるようになっているかを確認します。

go version go1.22.2 linux/arm

の内容が出力されればGoのインストールは終了です。




Goのコードを作成する際に色々とサポートしてくれるgoimportsを使用できるようにします。

goimports command - golang.org/x/tools/cmd/goimports - Go Packages


ターミナル上で下記コマンドを実行して、goimportsをインストールします。

$ go install golang.org/x/tools/cmd/goimports@latest

特に何も表示されなければ、

$ which goimports

でgoimportsが使用できるようになったか?を確認します。

/home/pi/go/bin/goimports

のような値が出力されれば、goimportsを使用できます。




続いて、Microでgoimportsを自動実行できるようにします。


下記のコマンドでMicroのプラグインをインストールします。

$ sudo apt install git
$ git clone https://github.com/micro-editor/go-plugin ~/.config/micro/plug/go-plugin
$ micro ~/.config/micro/plug/go-plugin/go.lua

go.luaを開きましたら、

config.RegistgerCommonOption("go", "goimports", false)

を探し

config.RegistgerCommonOption("go", "goimports", true)

に変更し、Ctrl + s、Ctrl + qでMicroを閉じます。




Microの設定が有効であるか?を確認する為に、下記の操作で試してみます。

$ micro

でMicroを開き、下記のコードを記述します。

package main

func main() {
fmt.Println("hello")
}

記述後にCtrl + sでコード、ファイル名を聞かれたら(Filename : )hello.goにして保存してみますと、

package main

import "fmt"

func main() {
	fmt.Println("hello")
}

のようにコードが自動で整形されるようになりました。




余談ですが、Microのプラグインでgoimportsの自動実行を有効にしなかった場合にMicroでgoimportsを使用したい場合は、Microの画面でCtrl + eでコマンドモードに切り替えます。




コマンドモードに切り替わりますと、エディタの左下に > にフォーカスが移ります。

> goimports

と入力してエンターキーを押すと、コードの自動整形が実行されます。

マインクラフト用ビジュアルエディタを開発しています。
詳しくはinunosinsi/mcws_blockly - githubをご覧ください。