普通はdeveloper modeでやる開発環境の構築をstable modeでやって失敗した話です。
まえがき
本記事は失敗事例を取り扱った記事です。
こうしたら間違いなく失敗する、というものなので反面教師にしてください。
真似をしたら詰むものが多いです(ローカルが汚染される)。
詰んだ時はLinuxを再インストールしましょう!
今回の開発環境構築に取り組むにあたって分かったのですが、Chromebook内のLinuxはコンテナになっているらしいため、ポカしてローカル環境を汚染してもすぐにやり直すことができます。
所要時間は10分くらいです。
あと、StableモードでLinuxを動作させる場合は、ガンガンsudoコマンド付けても大丈夫です。
できることが非常に限定的な上にChromebookのセキュリティ機構が有効だからです。
パーミッションや権限云々を考えるのも面倒なので全コマンドにsudo付けちゃえばいいと思います。
本記事に至るきっかけ
2018年5月、ChromebookはLinuxアプリに対応しました。
これを知ったのは同年9月頃のことです。
その頃、私は学生としてプログラミングをしておりました。
その中で、Pythonでの開発をChromebookでいつでも・どこでも・時間を気にせずに開発したいと思ったことがきっかけとなり、Chromebookで開発環境を構築しようと決意しました。
参考:
Chromebook are ready for your next coding project
目標
Chromebookに次のソフトをインストールし、仮想開発環境を構築する。
- virtualbox
- vagrant
- docker
- sublime text
- python3.7.1
私のやったこと
いくつかあるのでリストアップします。
1. 自分のマシンスペックを調べる
2. Chromebook内のLinux環境を調べる
3. よく使われるコマンドをインストールする
4. vagrant を入れようと試みる
5. VirtualBox を入れようと試みる
6. VMware を入れようと試みる
7. docker を入れようと試みる
8. sublime-text を入れようと試みる
9. atom を入れようと試みる
10. python 最新版をインストールする
11. Anaconda を入れようと試みる
自分のマシンスペックを調べる
購入先の店やサイト、価格comなどから色々調べましょう。
コマンド打たないので、当然ですが上手くいきます。
表題 | 内容 |
---|---|
製品名 | Chromebook Flip C213NA-N3350 |
CPU | Celeron Dual-Core N3350(Apollo Lake) |
プロセッサ | 1.1GHz |
メモリ | 4GB |
ストレージ | eMMC 32GB |
OS | Chrome OS |
※ストレージはChrome OS によって8GBほど使われています。
※Chrome OSのバージョンは69でした。
参考:
価格.com
Chromebook内のLinux環境を調べる
ディストリビューションを調べる
$ sudo cat /etc/issue
-> Debian GNU/Linux 9 \n \l
カーネルを調べる
$ uname -a
-> Linux penguin 4.14.67-07156-gc116f2c8c400 #1 SMP PREEMPT Sun Sep 9 14:28:13 PDT 2018 x86_64 GNU/Linux
カーネルがChromeOS独自のものっぽいです。
もう嫌な予感がする。
とりあえず上手くいきました。
参考:
Linuxの各種スペック確認
Linux bit数確認
よく使われるコマンドをインストールする
curlだけじゃ厳しかったので。
$ sudo apt update
$ sudo apt install software-properties-common wget make
makeコマンドは何かと入り用になるので入れました。
上手くいきました。
参考:
Ubuntu Linuxで、add-apt-repositoryしようとして「コマンドがない」って言われたら
wgetのインストール
vagrantを入れようと試みる
失敗しました(VirtualBoxやVMwareが動作しなかったため)。
この記事を見てやってみよう、という気持ちになったのですが、使うマシンが悪かったようです。
後述のVirtualBoxやVMwareがなければvagrantは動作しません。
両方とも動作しなかったのでvagrantの導入は断念いたしました。
VirtualBoxを入れようと試みる
ほぼ失敗しました。
アプリの起動まではできましたが、仮想環境は一切立ち上がりませんでした。
プロセッサの力不足+stable modeであったことが原因と考えられます。
VirtualBoxをインストールするためにはVirtualBox公式サイトを参考に、ファイルを編集する必要があります。
今回はVirtualBox 5.2をインストールします
$ cd /etc/apt
$ sudo vim sources.list
sources.listはsudo apt updateのときに参照されます。
次のようにソースを追記してください。
# 最初から記述されています
deb http://deb.debian.org/debian stretch main
deb http://security.debian.org/debian-security stretch/updates main
# 以下のソースを追記
deb https://download.virtualbox.org/virtualbox/debian stretch contrib
この直後にsudo apt updateやsudo apt-key(以下略)をしようとするとエラーが出ることがあります。
原因はgnupg,gnupg1,gnupg2がないこと、対象リポジトリの公開鍵を信用していないことです。
そのため、次のように入力することで解決できます。
$ sudo apt install gnupg gnupg1 gnupg2
$ sudo apt update
$ wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add -
$ wget -q https://www.virtualbox.org/download/oracle_vbox.asc -O- | sudo apt-key add -
$ sudo apt update
$ sudo apt install virtualbox-5.2
これでインストールは成功しますし、起動もします。
ただし、コマンドから動作を確認すると…
$ sudo VBoxManage --version
-> libkmod: ERROR ../libkmod/libkmod-module.c:1655 kmod_module_new_from_loaded: could not open /proc/modules: No such file or directory Error: could not get list of modules: No such file or directory WARNING: The vboxdrv kernel module is not loaded. Either there is no module available for the current kernel (4.14.67-07156-gc116f2c8c400) or it failed to load. Please recompile the kernel module and install it by sudo /sbin/vboxconfig You will not be able to start VMs until this problem is fixed. 5.2.20r125813
The vboxdrv kernel module is not loadedとあるので、Linuxカーネルが対応していない的なことを言われています。
詰んだかもしれない。
諦めて代替案を探すと、どうやらVirtualBoxよりもVMwareの方がChromebookと相性が良さそうです。
次はVMwareにTRY!!
参考:
Linux: apt-get時のGPG error(NO_PUBKEY)の解決例
vagrant up エラー
VMwareとGoogleがパートナーとしてChrome OSの管理をWorkspace Oneに導入…アプリケーション環境の完全統一化を目指す
VMwareニュースリリース
VMwareを入れようと試みる
VMware公式サイトからVMwareをダウンロードしましょう。
Chromebookの設定→詳細設定→ダウンロード→保存先の横にある変更ボタン→
結論
- Chromebookを使ってローカル環境上で開発するならPixelbookを買おう!もしくはクラウド上で開発する。
- そもそもプログラミングは開発者モードですべきです!StableモードはLinux上のDaemonが封じられたり色々と不便です。
- 今後のChrome OSアップデートに期待。
- ChromebookやChromeOSに関する文献は日本ではまだ少ないです。Google翻訳使って海外の文献を読みましょう。
参考:
TECH::NOTE(おすすめLinuxアプリまとめ)
更新履歴
2018/12/07
「よく使われるコマンドをインストールする」を追記しました。
2018/12/05
「Chromebook内のLinux環境を調べる」を追記しました。結論直しました。
2018/12/04
本文にsudoコマンド云々の話を追記しました。全文の表現を直しました。
2018/11/25
自分のマシンスペックについて記述しました。全文の表現を少し直しました。
2018/11/17
書き始めました。