いろいろ備忘録日記

主に .NET とか Go とか Flutter とか Python絡みのメモを公開しています。

Goメモ-13 (chromebookでのgolang環境設定メモ, go1.13.4)

概要

ひょんなことから chromebook 衝動買いしました。

買ったのは、ASUSのC101PAというやつ。安いし小さくて軽いし、いいです。

www.asus.com

最近、Googleから今後すべてのchromebookがlinux対応するというニュースがありました。

japan.zdnet.com

安いし、サクサク動くし、linuxとandroidアプリが動くなんて最高やんって感じで、linux対応してGoの環境をちょっと設定してみました。

linux(ベータ版)をオンにする

これも昔は、デベロッパーモードっていうのに移行して、その後に設定しないといけないものだったみたいですね。

最近のchromebookだと、デフォルトで「設定」開くと、「Linux (ベータ版)」って項目がありました。

これをONにするだけです。ONにすると、ダウンロードが始まってちょっとまったらターミナルが起動します。

これで後は好きにいじるだけです。

OSの確認

まずは、OSの確認

$ cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 9 (stretch)"
NAME="Debian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
VERSION_CODENAME=stretch
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

もしくは

$ sudo apt install lsb-release
$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 9.11 (stretch)
Release:        9.11
Codename:       stretch

debian 9 ですね。今のdebianの最新は 10 (buster) なので一つ前。 なので、パッケージ管理は apt を使うことになりますね。

まあ、特に問題なしなんですが、vim-go使いたい場合は、これだとバージョンがちょっと古すぎてエラーでたりします。

現在(2019-11-08)の安定版である 10 (buster) にアップグレードする場合は、以下を参照ください。

devlights.hatenablog.com

パッケージを最新に更新

まずは、今入ってるパッケージ達を最新に

$ sudo apt clean
$ sudo apt update
$ sudo apt full-upgrade -y

ちょっと時間かかります。

gccとかをインストール

ここは、純粋にGoだけで遊ぶ場合は必要ないかもしれません。個人的にgccとmakeがないと不安なので入れます。

$ sudo apt install build-essential -y
$ sudo apt install exuberant-ctags

Goのダウンロード

私のchromebook(ASUS C101PA) のCPUはARMです。なので、Goのサイトでダウンロードできるリストにあるかを確認。

無かった場合は、ソースからインストールするか、aptの方にgo1.11はあったのでそれを使うかですね。

サイトのダウンロードリストみたら、arm64があったので、それを使いました。

$ wget https://dl.google.com/go/go1.13.4.linux-arm64.tar.gz
$ tar zxf go1.13.4.linux-arm64.tar.gz
$ sudo mv go /usr/local

GOの環境変数を設定

今のGoだと設定してなくても動くと思うのですが、どのみち シェルの設定ファイル にパスは追加する必要があるので、ついでに追加。

以下の3行を設定ファイルに追加。

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

設定ファイルを読み込み直して、試してみます。

$ go version
go version go1.13.4 linux/arm64

うん。オッケーですね。

go get で使うツール郡をダウンロード

この辺は個人の好みですね。私は以下のものをよく使うので go get しました。

$ go get -u golang.org/x/tools/cmd/goimports
$ go get -u golang.org/x/tools/cmd/godoc
$ go get -u golang.org/x/tools/cmd/gomvpkg
$ go get -u golang.org/x/tools/cmd/gorename
$ go get -u golang.org/x/tools/cmd/stringer
$ go get -u golang.org/x/tools/cmd/cover
$ go get -u golang.org/x/lint/golint
$ go get -u golang.org/x/tools/cmd/guru
$ go get -u github.com/jstemmer/gotags

git の設定

どのみち、gitは絶対使うので設定。

$ git config --global user.email "xxx@xxx.com"
$ git config --global user.name "xxx"

日本語の設定

ターミナルだと普通に打てますね。vimを開いているときは少し変な挙動になりますが、打てないこともない。

ネットで情報を探すと、皆さん Fcitx-mozc とか をインストールされているみたいです。

私は、これがメインマシンでもないので日本語が使えなくても特に問題ないと判断して何もしてません。

Visual Studio Code は?

いろいろな方が VSCode を入れるための記事書いてくださっています。

私は元々 vim 使っていた人間なので、入れていません。

vim で ctrl-[ してもノーマルモードに戻らない

普段、Esc押す代わりに Ctrl-[ でノーマルモードに戻っていたのですが、これが効かない。。

と思ったら、Ctrl-@ でノーマルモードに戻れました。忘れないようにメモメモ。

rootアカウントでログイン

一応、rootアカウントでのログインも以下にメモメモ。使うことほぼないですが。

まず、Ctrl+Alt+Tでcroshという chrome os developer shell を起動します。ブラウザにターミナルが表示されます。

その後、以下を入力。

$ vsh termina
$ lxc exec penguin -- bash

これでルートアカウントでコンテナのターミナルが表示できます。


大体こんな感じでちょこっと設定しました。普通に go 使える環境になったので、とりあえずこれで良しです。

ちゃんと作りたい場合とかがあったら、mac使うか github でリポジトリ作って Gitpod で開発でもいいですしね。


過去の記事については、以下のページからご参照下さい。

  • いろいろ備忘録日記まとめ

devlights.github.io

サンプルコードは、以下の場所で公開しています。

  • いろいろ備忘録日記サンプルソース置き場

github.com

github.com

github.com