ChromebookのLinux開発環境構築


ChromeOSでLinuxアプリが使える機能「Project Crostini」でLinuxの開発環境を構築したときの、セットアップの手順を記してます。
基本的に個人用のメモです。

Windows版は下記です:
Windowsを購入したら最初にすること|s2terminal|note

環境

Google Pixelbookなど、AMDアーキテクチャで最近発売されたChromebookならば、本稿の手順はほぼ同様に適用できると思います。

一方、ASUS C101PA (OP1)やLenovo IdeaPad Duet (MediaTek Helio P60T)などARMアーキテクチャのChromebookでは、本稿の手順は一部適用できない箇所があります。またASUS C302CA (Core m3-6Y30)など「"Crostiniに対応している"という情報が無い」Chromebookでは、そもそも本稿の方法でLinux環境を構築することはできません。もし今Chromebookの購入を検討している段階の場合は、機種のCrostini対応状況をよく調べてください。

Linuxを有効にする

Chromebook公式ヘルプのセットアップ手順を参考に、Linux(ベータ版)を有効にします。

セットアップできたら、まずはパッケージを更新しておきます。

$ sudo apt-get update && sudo apt-get dist-upgrade

日本語環境の構築

日本版のChromebookだったとしても、Crostini上ではデフォルトでは日本語は利用できません。

日本語フォントのインストール

文書用にIPAフォントと、コーディング用にMyricaを使います。

IPAフォントはaptでインストールできます。

$ sudo apt install fonts-ipafont fonts-ipaexfont

Myricaは、~/.fontsに配置することで使えるようになります。

$ mkdir /tmp/fonts; cd $_
$ wget https://github.com/tomokuni/Myrica/raw/master/product/Myrica.zip
$ unzip Myrica.zip
$ mv ./Myrica.TTC ~/.fonts/
$ fc-cache --force --verbose

日本語入力のセットアップ

fcitx-mozcを使います。

$ sudo apt install fcitx-mozc

インストールしたら、Chromeのアプリケーションシェルフ(虫眼鏡ボタン)から「Linuxアプリ」→「Fcitx」と起動します。そのあとfcitx-configtoolを実行します。

$ fcitx-configtool

「Input Method」に「Mozc(Japanese)」をaddします。

必要に応じて、Global ConfigでTrigger Input Methodも変更します。

設定が終わったら、下記コマンドでfcitxを起動します。

$ fcitx-autostart

ターミナルなどで日本語入力できるかどうかを試すと、設定がうまくいっているか確認できます。日本語入力と英数入力の切り替えはデフォルトでは「Ctrk+Space」ですが、「かな英数」キーでも切り替えができるようにして使っています。

dotfiles

自分用のdotfilesを取ってきて、読み込むようにします。

$ cd
$ git clone [email protected]:s2terminal/dotfiles.git
$ echo '. ~/dotfiles/.bashrc' >> ~/.bashrc
$ echo '[include]
  path = ~/dotfiles/.gitconfig' >> ~/.gitconfig

SSHホスト名やGitユーザ名などは別管理していますので、上記のようにincludeするようにしておくと複数の設定リポジトリやローカルマシンにだけ置く物(秘密鍵など)を共存させることができます。

$ echo 'Include ~/secret_dotfiles/.ssh/config' >> ~/.ssh/config
$ echo '[include]
  path = ~/secret_dotfiles/.gitconfig' >> ~/.gitconfig

参考: 設定ファイルを複数ファイルに分割して管理する構文のまとめ - Qiita

VS Code

VS Code公式のLinux用セットアップガイドに従って、インストールします。

$ wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
$ sudo install -o root -g root -m 644 packages.microsoft.gpg /etc/apt/trusted.gpg.d/
$ sudo sh -c 'echo "deb [arch=amd64 signed-by=/etc/apt/trusted.gpg.d/packages.microsoft.gpg] https://packages.microsoft.com/repos/vscode stable main" > /etc/apt/sources.list.d/vscode.list'
$ sudo apt-get install apt-transport-https
$ sudo apt-get update
$ sudo apt-get install code # or code-insiders

2020年9月のアップデートでLinux用ARMビルドが公式に提供されるようになったので、ASUS C101PAやLenovo IdeaPad Duetなどでも普通にインストールできると思います。

VS Codeの設定同期

2020年7月のアップデートで設定同期がVS Code安定版に入ったので、VS Codeのコマンドパレットから>Settings SYnc: Turn On...から有効化することで、他の端末と設定を同期できます。

なおGitHubアカウントかMicrosoftアカウントのどちらを使うか聞かれますが、Microsoftアカウントでの設定同期はLinuxで現状うまくいかないため、GitHubアカウントを使うほうがいいでしょう。

その他、問題が発生した場合は下記などを参考に対処します。

VS Codeの日本語化

日本語化するにはJapanese Language Pack for Visual Studio Codeをインストールする必要があります。VS Codeを起動してクイックオープン(Ctrl+P)にext install MS-CEINTL.vscode-language-pack-jaを入力します。

先に「日本語入力のセットアップ」の項で述べた日本語フォントをインストールしていないと、日本語化した時に豆腐になります。また、日本語入力のセットアップが完了していないとVS Codeでも日本語を入力することができません。

ターミナル

2020年夏頃のバージョンアップ(ChromeOS 81?)から標準のターミナルのデザインがきれいになって、タブ管理もできるようになりました。ChromeOS同士で設定も同期するので、基本的にはこれでいいと思います。

必要であればHyper™などのターミナルも、Linux版をインストールできます。

Firefox

Chromebookには当然ChromeがWebブラウザとしてデフォルトでインストールされていますが、それとは別にLinux版Firefoxをインストールして使うこともできます。
しかしaptでインストールしたFirefoxは Firefox ESR というバージョンになります。この Firefox ESR は動作がカクついたりと厳しいため、最新のLinux向けFirefoxを導入する方がいいです。
最新のLinux向けFirefoxを導入するには Flatpak というパッケージマネージャから導入するといいです。

$ sudo apt install flatpak
$ flatpak --user remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
$ flatpak install firefox

Firefoxはネットワーク設定がアプリ内で独立しているため、限られたインターネットアクセスにのみProxyを使いたい場合などにChromeとは別のブラウザとして利用できます。

Docker

Debianのインストール手順に沿って、ふつうにインストールできます。

参考