UbuntuにGoをインストール
Go言語をUbuntuで使ってみました。
使用OSは"Ubuntu 20.04.2"です。
Goをインストールする
静的サイトジェネーレーター"Hugo"はGo言語で作られている、ということでGo言語を使ってみようと思い、インストールしてみることにしました。 GCP(Google Cloud Platform)でも使用できるのでWebアプリ開発にも良さそうです。
とりあえず公式サイトに見に行きました。ダウンロードしてインストールするというページにしたがって進めます。
1.ダウンロードする
まずGoをダウンロードします。
$ curl https://golang.org/dl/go1.16.4.linux-amd64.tar.gz -O -L
2.ダウンロードファイルを検証する
ダウンロードページにあるチェックサム(Checksum)でダウンロードしたファイルが壊れていないか確認します。
$ echo "7154e88f5a8047aad4b80ebace58a059e36e7e2e4eb3b383127a28c711b4ff59 go1.16.4.linux-amd64.tar.gz" > sha256.txt
$ sha256sum -c sha256.txt
go1.16.4.linux-amd64.tar.gz: OK
“OK"と表示されたので次の手順へ進みます。
3.ファイルを展開する
ダウンロードした圧縮ファイルを展開します。goディレクトリに展開されるのですがインストールしたバージョンが分かりやすいようにディレクトリ名を"go1.16.4.linux-amd64"に変更します。
$ tar -xzf go1.16.4.linux-amd64.tar.gz
$ mv go/ go1.16.4.linux-amd64/
展開したファイルを/usr/localディレトリに移動します。 またシンボリックリンクを作成することで使用するバージョンの切り替えができるようにします。 別バージョンを使うときにはシンボリックリンクを変更します。
$ sudo mv go1.16.4.linux-amd64 /usr/local
$ sudo rm /usr/local/go
$ sudo ln -s /usr/local/go1.16.4.linux-amd64 /usr/local/go
Goコンパイラのパスをbashの初期化ファイル(~/.bashrc)でPATH環境変数に追加します。
その後、source
コマンドで実行することで現在実行中の端末に反映させます。
$ echo "PATH=/usr/local/go/bin:$PATH" >> ~/.bashrc
$ source ~/.bashrc
4.インストールされたバージョンを確認する
go
でバージョンを確認します。
$ go version
go version go1.16.4 linux/amd64
これでインストールできました。
Goファイルをコンパイルする
hello.goというGoのソースファイルを作成します。始めてGoで作って見ましたがかなり変な作りになってしまいました。文字操作の効率が悪そうですがどうすれば良いのか分かりません。
package main
import "fmt"
import "strconv"
func convertToNumber(arg string) int{
var result int
var err error
result, err = strconv.Atoi(arg)
if err != nil {
result = 0
}
return result
}
func main() {
var data[5] string = [5]string {
"121141141524111112223214332",
"12111414141213111111121112111412122",
"4132141412131111111211321412122",
"1211141414121311111112111112141214",
"121141414225111322121141332"}
var buffer string
for _, str := range data {
buffer = ""
for j, c := range str {
var typeChar string = "🌏"
if j % 2 != 0 {
typeChar = " "
}
var num = convertToNumber(string(c))
for k := 0; k < num; k++ {
buffer += typeChar
}
}
fmt.Println(buffer)
}
}
ソースファイルから実行ファイルを作り、実行します。
$ go build hello.go
$ ls -l
合計 1916
-rwxrwxr-x 1 izumi izumi 1953823 5月 29 12:43 hello
-rw-rw-r-- 1 izumi izumi 722 5月 29 12:41 hello.go
$ ./hello
🌏 🌏 🌏🌏🌏🌏 🌏 🌏 🌏🌏 🌏 🌏 🌏 🌏🌏 🌏🌏🌏 🌏 🌏🌏🌏 🌏🌏
🌏 🌏 🌏 🌏 🌏 🌏 🌏 🌏 🌏 🌏 🌏 🌏 🌏 🌏 🌏 🌏 🌏 🌏🌏
🌏🌏🌏🌏 🌏🌏🌏 🌏 🌏 🌏 🌏 🌏 🌏 🌏 🌏 🌏 🌏🌏🌏 🌏 🌏 🌏 🌏🌏
🌏 🌏 🌏 🌏 🌏 🌏 🌏 🌏 🌏 🌏 🌏 🌏 🌏 🌏 🌏 🌏 🌏
🌏 🌏 🌏🌏🌏🌏 🌏🌏🌏🌏 🌏🌏🌏🌏 🌏🌏 🌏 🌏 🌏🌏 🌏 🌏 🌏🌏🌏🌏 🌏🌏🌏 🌏🌏
$