ChromebookにJekyll開発環境を構築する
Chromebookはキーボードが備わっている機種も多く、起動も速いため、ちょっとした 時間にブログを書くのに最適です。 Chrome OSにTermuxをインストールしてJekyllの開発環境を構築します。
Termuxのインストール
Chrome OS上の開発環境というと、 Crostini やCroutonを利用する方法もありますが、 AndroidアプリのTermuxを使うと簡単に開発環境を構築できます。
Termuxは Google Play からインストール可能です。
インストール直後はテキストサイズが小さいので調整します。
CTL
+ALT
++
: テキストサイズを大きくCTL
+ALT
+-
: テキストサイズを小さく
参照: Termux Wiki / キーボードショートカット
パッケージをアップグレードしておきます。
pkg upgrade
Termuxの情報は英語ながらTermux Wiki に良くまとめられています。
Jekyllのインストール
Jekyllの開発環境を構築するにはRuby, RubyGems, GCC, Makeが必須1です。 Termuxにはgccが用意されていませんのでclang packageを利用します。
pkg install ruby clang make
gem install jekyll bundler
ファイル共有や記事の編集に他のアプリを使うためにdownload
に Jekyllのサイトを作成します。
termux-setup-storage
で各ストレージにリンクを作成しています。 ダイアログが表示されたらストレージへのアクセス許可を与えてください。
termux-setup-storage
cd storage/download
全ての作業がTermux内で完結するのであれば$HOME下でも大丈夫です。
Jekyllサイトの作成
jekyll new myblog
cd myblog
bundle exec jekyll serve
download/myblog/_posts
に記事を作成していきます。
download
にアクセス許可のあるアプリなら、どんなアプリでも使用可能です。
Jekyll serveについて
Chrome OSでAndroidアプリはVM内で動作してますので、Chrome OSのブラウザからは 外部からのアクセスとなるためhttp://localhost:4000
でアクセスはできません。
Termuxでip a
を実行してIPアドレスを確認します。 手元のChromebookで実行した結果は以下のとおりです。
$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: arc0: <BROADCAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
inet 100.115.92.2/30 brd 100.115.92.3 scope global arc0
valid_lft forever preferred_lft forever
inet6 fe80::xxxx:xxxx:xxxx:xxxx/64 scope link
valid_lft forever preferred_lft forever
4: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
inet 100.115.92.14/30 brd 100.115.92.15 scope global wlan0
valid_lft forever preferred_lft forever
inet6 2400:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx/64 scope global dynamic mngtmpaddr
valid_lft 86394sec preferred_lft 14394sec
inet6 fe80::xxxx:xxxx:xxxx:xxxx/64 scope link
valid_lft forever preferred_lft forever
Chrome OSからのアクセスには、2: arc0:
のinet
に記載のあるIPアドレスを使います。
inet 100.115.92.2/30 brd 100.115.92.3 scope global arc0
上記のIPアドレスを--host
に指定します。 上記のIPアドレスはあくまでも例ですので、 実際に確認したIPアドレスを指定してください。
bundle exec jekyll serve --host=100.115.92.2
--host
に指定したIPアドレスの4000番ポートにブラウザからアクセスすると Jekyllのサイトが確認できます。
http://100.115.92.2:4000
Androidのブラウザアプリを使う場合
Androidのブラウザアプリで確認する場合は、同じVM内のアクセスになるので localhost
でアクセス可能です。
bundle exec jekyll serve
serve
を--host
オプションなしで起動した上でhttp://localhost:4000
に アクセスして確認できます。
Browser Syncについて
適切に--host
を指定すれば jekyll-browsersync によるライブリロードも機能します。
Androidでも同様に機能します。
Jekyllのビルドとデプロイ
様々な制約のあるChromebookで本番環境用のビルドを頻繁に行うことは あまりないかもしてませんが、他の環境と同じようにビルドできます。
JEKYLL_ENV=production bundle exec jekyll build
Termuxにはgit, ssh, rsyncなど運用に必要なツールもインストール可能です。
pkg install git openssh rsync
rsyncを使ってXREAにデプロイできます。
rsync -avz --delete --exclude='log/' --exclude='.fast-cgi-bin/' \
-e ssh --progress -r _site/ username@s000.xrea.com:~/public_html/
Tag cloud
android (2), bash (1), bitbucket (2), chromebook (2), cifs (1), css (1), docker (1), git (1), gitlab (1), info (1), javascript (3), jekyll (13), markdown (1), nfs (1), nodejs (2), php (2), plugins (5), powerline (1), ruby (1), ssh (1), themes (1), vim (1), windows (1), wordpress (1), wsl (1), xrea (7)