約束の地

キャロ組

Raspberry Pi で Rails を起動しようとしたら少しハマった

環境

  • Raspberry Pi 3 MODEL B
  • Raspbian Stretch Lite
    • Version:October 2018
    • Release date:2018-10-09
    • Kernel version:4.14
  • Ruby 5.2.1
  • Rails 2.5.1
  • sqlite3libsqlite3-dev は入れてある

状況

ごくごく普通に rails new してから rails crails s をすると以下のようなエラーが発生した。

$ bundle exec rails c
(かなり省略)
You may have encountered a bug in the Ruby interpreter or extension libraries.
(かなり省略)

結論

以下の点を修正したところ、期待通りの動作になった。

1. Gemfile で spring の部分をコメントアウト

(省略)
   # gem 'spring'
   # gem 'spring-watcher-listen', '~> 2.0.0'
(省略)

2. config/boot.rb で bootsnap の部分をコメントアウト

(省略)
# require 'bootsnap/setup' # Speed up boot time by caching expensive operations.

結果

$ bundle exec rails c
Loading development environment (Rails 5.2.1)
irb(main):001:0>
$ bundle exec rails s
=> Booting Puma
=> Rails 5.2.1 application starting in development
=> Run `rails server -h` for more startup options
Puma starting in single mode...
* Version 3.12.0 (ruby 2.5.1-p57), codename: Llamas in Pajamas
* Min threads: 5, max threads: 5
* Environment: development
* Listening on tcp://0.0.0.0:3000
Use Ctrl-C to stop

f:id:gregminster:20181014220621p:plain

余談

Raspberry Pi 本体のストレージ*1で Rails を動かすのは無謀なので、外付けストレージを使うべきでしょう*2。さらに言えば ARM ではちょっとしたことでもハマったり x86_64 とは異なる処理をしなければならなかったりするので、ロックオンしてしまうのはちょい危険だと思いました。

*1:MicroSD カード

*2:Raspberry Pi で Rails を動かすこと自体がどうかというのは置いておくとして

Powered by はてなブログ