16
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

スマホでirb! Androidローカルで「rails s」してみよう

Last updated at Posted at 2017-12-24

Screenshot_20171222-213035.png
▲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が無事インストールできたと思います。

Termux.rb
$ 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」という名前のアプリを作ります。

Termux.rb
$ rails new demo-app
# installが完了
$ cd demo-app
# Railsアプリのディレクトリに移動

bundle install

こちらも、いつも通りbundle installしましょう。この時、Gemfileを編集したい場合はいつも通りviでvimを起動して編集できます。

Termux.rb
$ vi Gemfile
# 任意で内容を編集
$ bundle install
# 正しくGemがインストールされていれば成功するはず。ここで失敗する場合はbundlerなどを入れ直してみましょう。

rails s

そして、いつも通りRails serverすればアプリケーションが起動するはずです。

Termux.rb
$ rails s

Screenshot_20171222-212614.png
特にポート番号は指定していないので、http://localhost:3000 でどのブラウザでもローカル接続できます。

いつものスマホ、タブレットでRubyが動いてテンション上がる

今回はRails sしただけですが、スマホ上でRuby開発ができるのは魅力的です。もちろんこのTermuxにsshで接続してPC上で作業するといったことも可能なので、やりたい方は挑戦してみてください。
今後の課題として、平成29年12月25日現在MySQL2のgemの動かし方が確立していないようなので、そこらへんも発展していくと尚いいですね。

Rails以外でも、Ruby全般が動きそうなので、色々と夢が広がります。帰りの電車の中で気軽にRubyが触れるなんて最高ですね。

尚、今回はかなり力技で環境構築したので、もっとスマートなやり方の意見絶賛募集中です。

参考

16
15
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?