Chromebox/Chromebookを開発者モードで動かしてしまった件(その1):という夢を見た、または概要設計

普段はChromeboxやChromebookという、ChromeOSベースのPCをメインとして仕事をしています。メールはGMailで用が足りていますし、スケジュール管理、作業工程管理、顧客管理、出納管理など、クラウドサービスで提供されているものは枚挙に暇がなく、ブラウザとインターネット接続環境さえあれば「いつでも」「どこでも」アクセスできるので、「ブラウザのみ*1」のOSであるChromeOSはサクサク動くという点で非常に重宝しています。

しかし、プログラムを書くときには開発環境(IDE)がどうしても必要になるので、サブマシンとして置いてあるMacを使うことが多いのです。では、Chromebook/Chromeboxで開発作業をしようとした男の苦労話を書き記しておこうと思います。

 

 

最初から言い訳をします

ただし実際にこの投稿を書いている段階では、インストール自体の模索中だったりします。後日談ではありますが、どうやら「これだけやっておけばOK」というベストプラクティスが見つからず、端末(マシン)によって微調整的なセットアップが必要そうに思えます。

今回のタイトルを「〜夢を見た、または概要設計」とした理由がこれで、今回の投稿は「おそらくこれがベストプラクティスになりうるだろう」という想定のもとに作業をして、一応失敗をしていないやり方だったりします。

ある程度の類型化はしますが、個別の端末で◯◯するのがベストプラクティス、みたいなことはそれぞれ別の機会に投稿をしたいと思います。

(あらためて)この考えに至った経緯など

ChromeOSを使い始めた頃から開発環境についてどうするかをいろいろと検討していました。実は、その頃からクラウド開発環境というのが存在し(今でも在ります*2、それを使ってきたのですが、最近になって、自分の開発したい、または受託している業務で使う言語・プラットフォームがクラウドの開発環境下では使えないことが増えてきて、メインがMacという状態が増えてしまっていました。

Macは嫌いというわけではないのですが(むしろ好きですが)、それなりにカスタマイズをしている中で、Macの性質上どうしても解決できない問題が出てきていて、その解決をするために試行錯誤をしていましたが、たまたまChromeboxのクリーニングをする機会があったので、ついでに開発環境の構築もやってみようか、と思いついてしまったわけです。

 

ちなみに。

ChromeOSはOSのコア部分をユーザが触れないようになっているのがデフォルトで、これがChromeOSのセキュリティが高い所以であり、私が導入を検討した理由の一つでもあります。「開発者モード」にすることでセキュリティリスクが増えるということは本来望ましいことではなく、導入当初はセキュリティを優先して「開発者モード」への移行をしていませんでした。この件については昔のブログ(こことかこことか:この頃はメインがMacだったんだなぁ...)で少し触れています*3

開発環境の導入手順

詳細な手順については説明を省きます。それぞれ該当の(公式)サイトへのリンクを逐次貼りますのでそれを参照のことこのへんのリンクを見るとわかりやすいのでこれ見たらいいんじゃないかな。こっちのほうがわかりやすいや(笑)。

qiita.com

ChromeOSを「開発者モード」に変更

ここでrootパスワードの設定をする(デバッグモードを有効にする)ことを忘れないこと。開発者モードでコンソール画面(Ctrl+Alt+F2)に移動して、rootユーザでログイン、chromeos-setdevpasswdで通常使うchronosユーザのパスワードを設定するために必要になります。
※この仕組みがちょっとややこしい気がします。ややこしいのは問題ないですが。まず、rootでなければchromeos-setdevpasswdコマンドの実行ができないので、rootパスワードを最初に設定、覚えておく必要がある、ということ。そして、chronosユーザは「一般ユーザ(sudo実行権限は持っている)」なので、sudoコマンドの実行時に必要なパスワード(rootパスワードではなく自分のパスワード)をchromeos-setdevpasswdで設定する、という流れ。

メイン:croutonの導入

croutonだけの導入ならLinuxとの「同居」になります。ショートカットキーでOSの切り替えになり、どちらのOSも起動している状態なので、バックグラウンドで走っている状態になるわけです。
なのですが、Linuxでインストールしたアプリケーション単体を起動させることもできるため、普段使いはこっちのほうがいいような気がします。
### 実際のインストール用のメモ
distro: ubuntu xenial(導入時点での安定版+対応版)*4
package:
- audio
- cli-extra
- (core)
- e17(enlightenment) # window manager
- extension
- gtk-extra
- keyboard
- x11
- xiwi
- xorg
パッケージは「軽さ」と、メインがあくまでもChromeOS側、という考えのもとに入れている。このあとLinux側でAndroid Studioの導入があるので重くなるはずです。

実際の運用に向けて

インストールしたら終わり、ではありません。実際に使ってなんぼです。今のところ、

  • 自動起動
    Chromebookを起動したら自動でLinuxを起動させる方法
  • LinuxアプリをChromeから起動
    開発環境(IDE)のインストールを想定しているので、ChromeOS側でショートカットみたいなので起動させられないかどうか

ということをしてみたいと考えています。


オプション:chromebrewの導入

なんとなくいらないかな、とは思っていますが(どちらかというと競合してしまいそう)、一応入れています。→結論を言うと「なんだかんだ言って必要になる」でしょうか。設定ファイル等の作成にエディタを使うとか、そんな理由ですけれど。

 

次のご予定をお聞かせください

ちょっと長いスパンでテストをしようと思っています。

*1:実際にはブラウザ機能以外はほぼ見えないようになっているだけ。

*2:有名どころだとCodenvyとかCodeAnywhereとかですか。

*3:2018年末の時点で、新しいChromebook/ChromeboxでLinuxのインストールができるようになっているようです。「吊るしで使う」のであれば新しいのを買ったほうがおそらくいいんだろうなぁ、と思うのですがそんなお金はないんです。

*4:記事投稿時点でもこの情報は同じだったのですが、Ubuntuの最新安定版であるBionicは動作するんじゃないかな。私の環境でもできたしネットでも動作している情報は多数あるし。