【#ChromeOS】Chromebookを Crostini(Linuxコンテナ)を使って Go言語 / Visual Studio Code の開発環境としてセットアップする #Chromebook #Go言語 #golang #golangjp #VSCode #環境構築

Chromebook(ASUS Chromebook Flip C101PA)をGo言語などの開発環境として使用するために Visual Studio Code などをセットアップした際の手順を自分用のメモとしてまとめました。

#### 環境情報
|OS/ソフトウェア |バージョン |入手元 |
|------------|----------|-------|
|ChromeOS |バージョン: 75.0.3770.129（Official Build） （32 ビット） |Google |
|Visual Studio Code |1.32.0 |https://code.headmelted.com/ |
|mozc(fcitx-mozc) |2.23.2815.102 |- |
|go |1.11.6 |- |

## 1. Crostini(Linuxコンテナ)の有効化

Crostini は ChromeOS で Linux アプリケーションを簡単に使えるようにする機能/プロジェクトの総称です。
実体は Linuxコンテナ(lxc) です。まずは、この Crositini を有効化します。

### □手順 1-1: `ランチャー`から`設定`アプリケーションを起動します

![Screenshot 2019-07-22 at 13.18.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/44745/c836a054-e0f1-fe1b-fe1b-ef5d613aa06f.png)

### □手順 1-2: `Linux(ベータ版)`の`オンにする`ボタンをクリックします

![Screenshot 2019-07-22 at 13.29.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/44745/d857c94d-d08d-48a3-30a4-04f8a00645b3.png)

### □手順 1-3: `インストール`ボタンをクリックします

![Screenshot 2019-07-22 at 13.29.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/44745/5258d91b-b571-07b7-41ab-ea657914d34b.png)

![Screenshot 2019-07-22 at 13.30.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/44745/2e8cf272-b725-e8a3-0400-9f1aadc39906.png)

### □手順 1-4: `ターミナル`が起動されれば成功です

![Screenshot 2019-07-22 at 13.35.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/44745/3cfe312f-f616-2d01-1d90-8efa42625a9d.png)

### □手順 1-5: `sources.list` に Debian JP Project のミラーサイトURLを追記します

```bash
$ sudo vi /etc/apt/sources.list
```

```bash:/etc/apt/sources.list
deb http://ftp.jp.debian.org/debian stretch main contrib non-free #追記
deb http://ftp.jp.debian.org/debian stretch-updates main contrib non-free #追記
deb https://deb.debian.org/debian stretch main
deb https://deb/debian.org/debian-security stretch/updates main
```

### □手順 1-6: 次のコマンドを実行しLinuxコンテナを最新バージョンにアップグレードしておきます

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

## 参考： 1'.Linuxコンテナ(lxc)に`root`ユーザーでログインする方法

起動したLinuxコンテナ(lxc)には次の手順で`root`ユーザーでログイン可能です

### □手順 1'-1: `ctrl + alt + T`で`crosh`を起動します 

### □手順 1'-2: `termina`仮想マシンに接続します

```bash
$ vsh termina
```

### □手順 1'-3: `penguin`コンテナに接続します

```bash
$ lxc exec penguin -- bash
```

## 2. Visual Studio Code(VS Code)のインストール

`ASUS Chromebook Flip C101PA` は ARMアーキテクチャーベースのプロセッサを搭載しています。

有志のコミュニティが下記サイトにて `Visual Studio Code` ビルド済みの `debファイル` を公開してくれているため今回これを利用します。

■Community builds of Visual Studio Code for Chromebooks, Raspberry Pi and other ARM and Intel systems
https://code.headmelted.com/


### □手順 2-1: `ランチャー`から`ターミナル`を起動します

### □手順 2-2: `debパッケージファイル`を`wget`でダウンロードします
```bash
$ wget https://github.com/headmelted/codebuilds/releases/download/20-Feb-19/code-oss_1.32.0-1550644676_arm64.deb
```

### □手順 2-3:  ダウンロードした`debパッケージファイル`を`apt`を使ってインストールします

```bash
$ sudo apt install ./code-oss_1.32.0-1550644676_arm64.deb -y
```

### □手順 2-4:  不要になった`debパッケージファイル`を削除します

```bash
$ rm -i ./code-oss_1.32.0-1550644676_arm64.deb
```

## 3. `mozc(fcitx-mozc)`のインストール

このままでは日本語が使用できないため`mozc(fcitx-mozc)`をインストールします。

`mozc(fcitx-mozc)`について`Debian GNU/Linux 9 (「stretch」リリース)`のバイナリが公開されていない状況であるため代わりに`Debian GNU/Linux 10(「buster」リリース)`のバイナリを使用します。

### □手順 3-1: デフォルトリリースを `stretch` リリースであることを明示的に設定します

```bash
$ sudo tee -a /etc/apt/apt.conf.d/99target <<EOF
APT::Default-Release "stretch"; 
EOF
```
### □手順 3-2: その上で `buster` リリースのソースリストも `sources.list` に追記しパッケージ情報の更新を行います

```bash
$ sudo tee -a /etc/apt/sources.list <<EOF
deb http://ftp.jp.debian.org/debian buster main contrib non-free
deb http://ftp.jp.debian.org/debian buster-updates main contrib
EOF

$ sudo apt clean
$ sudo apt update
```

### □手順 3-3: `fcitx-mozc` をインストールします

```bash
$ sudo apt install fcitx-mozc/buster -y
```

### □手順 3-4: 日本語フォント `fonts-noto` をインストールします

```bash
$ sudo apt install fonts-noto -y
```

### □手順 3-5: `fcitx` を起動します

```bash
$ fcitx-autostart
```

### □手順 3-6: `fcitx` の設定画面を起動します

```bash
$ fcitx-configtool
```
### □手順 3-7: `Input Method`にて`+`ボタンをクリックします

![Screenshot 2019-07-22 at 15.29.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/44745/b5b58112-c516-2818-cc93-95b1cab0db9b.png)

### □手順 3-8: `Only Show Current Language`チェックボックスのチェックを外した後、検索ボックスに`Mozc`と入力、`Mozc`を選択後、`OK`ボタンをクリックします

![Screenshot 2019-07-23 at 15.58.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/44745/5bf5376e-048a-a437-1461-b914b6489344.png)

### □手順 3-9: `Appearance`にて`Font`と`Menu Font`の値を`Noto Sans CJK JP Regular`に変更し右上の`☒`ボタンでウィンドウを閉じます

![Screenshot 2019-07-22 at 15.39.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/44745/c05403c9-ceec-23c1-d0fd-1d88b6e0eafb.png)

### □手順 3-10: `.bashrc`を編集し`fcitx`が自動起動するように設定します

```bash
$ echo "fcitx-autostart > /dev/null 2>&1" >> .bashrc
```

## 4. Visual Studio Code 日本語化

### □手順 4-1: `ランチャー`から`vscode`と検索すると`Code - OSS (headmelted)`が表示されるのでこれを起動します 

![Screenshot 2019-07-22 at 15.45.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/44745/1945d976-6b71-3fa9-ba96-8d742a0af031.png)

### □手順 4-2: 画面左の`Extention`アイコンをクリックします

![Screenshot 2019-07-22 at 15.46.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/44745/7989866a-de61-a6f0-7df7-beb1972261bd.png)

### □手順 4-3: `Japanese`で検索して出て来る`Japanese Language Pack for Visual Studio Code`エクステンションをインストールします

![Screenshot 2019-07-22 at 15.47.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/44745/79e75dac-6c93-b553-6ea2-a8aaba15c25e.png)

### □手順 4-4: 画面右下に再起動を確認する通知が表示されたら`Yes`ボタンをクリックして`Visual Studio Code(vscode)`を再起動します

![Screenshot 2019-07-22 at 15.48.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/44745/b06cbbad-8b14-608e-b557-8daed901a9d2.png)

### □手順 4-5: `Visual Studio Code(vscode)`再起動後、日本語化されたことを確認します 

![Screenshot 2019-07-22 at 15.50.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/44745/bf738856-074e-42d4-dbe8-b9c48cce4905.png)

## 5. go のインストール

### □手順 5-1: `ランチャー`から`ターミナル`を起動します

### □手順 5-2: `golang-1.11`パッケージをインストールします

```bash
$ sudo apt install golang-1.11 -y
```

### □手順 5-3: Go言語に関する各種環境変数の設定を`~/.bash_profile`に追記します

```bash
$ vi ~/.bash_profile
```

```bash:~/.bash_profile
# golang
export GOROOT=/usr/lib/go-1.11
export GOPATH=$HOME/gocode
export PATH=$GOROOT/bin:$GOPATH/bin:$PATH
```

### □手順 5-4: `~/.bash_profile`の内容を読み込みます

```bash
$ source ~/.bash_profile
```

### □手順 5-5: `$GOPATH/src`ディレクトリを作成します

```bash
$ mkdir -p $GOPATH/src
```

### □手順 5-6: `go version`コマンドで正常に`Go`がインストールされてパスが通っていることを確認します

```bash
$ go version
go version go1.11.6 linux/arm64
```

### □手順 5-7: `ランチャー`から`Visual Studio Code(vscode)`を起動します

### □手順 5-8: 画面左の`Extention`アイコンをクリックします

![Screenshot 2019-07-22 at 15.50.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/44745/bf738856-074e-42d4-dbe8-b9c48cce4905.png)

### □手順 5-9: `Go`エクステンションをインストールします

![Screenshot 2019-07-23 at 16.11.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/44745/f6c38a31-4e93-bb99-226b-e67f1a490099.png)

### □手順 5-10: `ファイル`メニューから`New File`を選択し新規ファイルを作成します

![Screenshot 2019-07-23 at 16.13.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/44745/0b272e13-1ca6-c758-a924-15cd65ae69b4.png)

### □手順 5-11: `ファイル`メニューから`Save As...`を選択し任意のフォルダ(例:`$GOPATH/src/`)に`test.go`という名前でファイルを保存します

![Screenshot 2019-07-23 at 16.14.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/44745/7156c3c4-d295-fc32-eae3-4ebc5c781d90.png)

![Screenshot 2019-07-23 at 16.16.17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/44745/402574ad-51c9-eaef-4ed1-46966a89f4c1.png)

### □手順 5-12: 画面右下に`Go analysis tool`をインストールする旨の通知が表示されるので`Install All`ボタンをクリックします

![Screenshot 2019-07-23 at 16.17.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/44745/c6b62374-93a5-d5d5-63f0-91d9d422f13b.png)

#### `dlv`のみインストールに失敗してしまいますが以上で終了です

```
Installing github.com/uudashr/gopkgs/cmd/gopkgs SUCCEEDED
Installing github.com/ramya-rao-a/go-outline SUCCEEDED
Installing github.com/acroca/go-symbols SUCCEEDED
Installing golang.org/x/tools/cmd/guru SUCCEEDED
Installing golang.org/x/tools/cmd/gorename SUCCEEDED
Installing github.com/go-delve/delve/cmd/dlv FAILED
Installing github.com/stamblerre/gocode SUCCEEDED
Installing github.com/rogpeppe/godef SUCCEEDED
Installing github.com/sqs/goreturns SUCCEEDED
Installing golang.org/x/lint/golint SUCCEEDED

1 tools failed to install.

dlv:
Error: Command failed: /usr/lib/go-1.11/bin/go get -u -v github.com/go-delve/delve/cmd/dlv
github.com/go-delve/delve (download)
github.com/go-delve/delve/pkg/proc
# github.com/go-delve/delve/pkg/proc
gocode/src/github.com/go-delve/delve/pkg/proc/disasm.go:12:14: undefined: archInst
github.com/go-delve/delve (download)
github.com/go-delve/delve/pkg/proc
# github.com/go-delve/delve/pkg/proc
gocode/src/github.com/go-delve/delve/pkg/proc/disasm.go:12:14: undefined: archInst
```

---

以上、Chromebook(ASUS Chromebook Flip C101PA)をGo言語などの開発環境として使用するために Visual Studio Code などをセットアップした際の手順でした。