▲YOGA BOOK Android上で動くRails5.1.2
皆さんは普段どんなデバイスで開発してますか??
TECH::CAMP AdventCalendar 2017最終日です(私なんかが最終日でいいんだろうか…)。
RubyないしRailsを使って普段開発している人は、恐らくMacを使ってらっしゃる方が多いのではないでしょうか。私もそうです。中にはLinuxで開発してらっしゃる方もいると思います。自分のやりやすい環境で開発するのが一番です。
しかし、パソコンって基本的に持ち歩くには重いですよね。もし手のひらの中にRubyの開発環境があったら、なんだかワクワクしませんか?
AndroidローカルでRails環境構築
そう思ったのもつかの間、今回Android だけ でRails開発が出来る環境を整えてみたので、その方法を書いていきます。
概要
- Rubyバージョン
- 2.4.3
- Railsバージョン
- 5.1.4
- ターミナル
- Androidバージョン
- 7.1.1
- 筆者が試した機種
- Lenovo YOGA BOOK
- Huawei Mate 9
実際にやってみよう
まずは自身の持つAndroidスマートフォン・タブレットにTermuxというアプリをインストールします。このアプリが今回の環境構築の鍵となります。
Termuxとは何なのか
AndroidがLinuxベースで魔改造されたOSであることは一般常識の範囲でしょう。
Termuxは、そのAndroidでGNU/LinuxのCUI環境を提供してくれるPlayStoreアプリです。Root無しでも結構なことができます。
こちらのアプリをインストールして起動するとデフォルトでbash shellが起動します。
$ bash -version
GNU bash, version 4.4.12(1)-release (x86_64-pc-linux-android)
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
パッケージ管理ツールを導入する
Termux上ではDebian系Linuxで有名なapt
というパッケージ管理ツールが利用できます。
こちらをアップデートしてあげましょう。
$ apt update
$ apt upgrade
Rubyをインストールしよう
Termuxにはaptとは別にデフォルトでパッケージを管理するシステムが備わっています。
Termux上で以下のコマンドを実行してみましょう。
$ pkg install ruby
これでrubyが無事インストールできたと思います。
$ ruby -v
ruby 2.4.3p205 (2017-12-14 revision 61247) [x86_64-linux-android]
$ irb
irb(main):001:0> puts "Hello Ruby on Android !"
Hello Ruby on Android !
=> nil
irb(main):002:0> 5 * 3
=> 15
もちろんirb
も動きます!
Railsに必要なGem/Packageを導入していこう
Railsを動かすには様々なGemやPackageが必要になってきます。基本は$ gem install gemname
でインストールできます。ただ、環境が環境なこともあり、ネイティブビルドに失敗するGemが多くありますので、それを今回Termuxライブラリの力を借りて一つ一つインストールしていきます。
入るGemは次々と入れていきましょう
そのままgem install
できるものは、次々と入れていきます。
$ gem install rake
$ gem install atomic
$ gem install bundler
$ gem install puma
$ gem install spring
$ gem install spring-watcher-listen
$ gem install listen
$ gem install pkg-config
$ gem install tzinfo
$ gem install tzinfo-data
ライブラリが必要なGem
aptコマンドでTermuxで提供されているライブラリを入れる事ができます。ライブラリを入れれば、該当のGemをインストールできるようになります。
$ apt install clang make
$ apt install ruby-dev libxml2-dev libxslt-dev pkg-config make clang
$ gem install nokogiri -- --use-system-libraries
$ apt install libffi-dev
$ gem install ffi
$ apt install libsqlite-dev
$ gem install sqlite3
$ apt install openssh
$ pkg install postgresql postgresql-contrib postgresql-dev
$ gem install pg
$ pkg install git
Ruby on railsをインストール
一通り準備が整ったらいよいよRailsをインストールしましょう
$ gem install rails
$ rails -v
Rails 5.1.4
Railsアプリを作ってみよう
さあ、これでいつもみなさんが使っているRailsの開発環境がスマートフォンに入りました。若干物足りない部分はあるものの、最低限のRailsアプリであればこれで作る事ができます。
rails new
いつも通り任意のディレクトリでRails newしましょう。今回は「demo-app」という名前のアプリを作ります。
$ rails new demo-app
# installが完了
$ cd demo-app
# Railsアプリのディレクトリに移動
bundle install
こちらも、いつも通りbundle installしましょう。この時、Gemfileを編集したい場合はいつも通りviでvimを起動して編集できます。
$ vi Gemfile
# 任意で内容を編集
$ bundle install
# 正しくGemがインストールされていれば成功するはず。ここで失敗する場合はbundlerなどを入れ直してみましょう。
rails s
そして、いつも通りRails serverすればアプリケーションが起動するはずです。
$ rails s
特にポート番号は指定していないので、http://localhost:3000 でどのブラウザでもローカル接続できます。
いつものスマホ、タブレットでRubyが動いてテンション上がる
今回はRails sしただけですが、スマホ上でRuby開発ができるのは魅力的です。もちろんこのTermuxにsshで接続してPC上で作業するといったことも可能なので、やりたい方は挑戦してみてください。
今後の課題として、平成29年12月25日現在MySQL2のgemの動かし方が確立していないようなので、そこらへんも発展していくと尚いいですね。
Rails以外でも、Ruby全般が動きそうなので、色々と夢が広がります。帰りの電車の中で気軽にRubyが触れるなんて最高ですね。
尚、今回はかなり力技で環境構築したので、もっとスマートなやり方の意見絶賛募集中です。