記事

Raspberry Pi用RubyをUbuntuでクロスコンパイルしたい人生だった

依存ライブラリのインストール

公式ドキュメントを参考にするといいかも このライブラリたちはクロスコンパイル関係なしにRubyのビルドに必要

sudo apt-get update
sudo apt-get install -y git autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm3 libgdbm-dev
sudo apt-get build-dep -y ruby2.0 # rubyだけでもおkっぽい?

以下はRaspi向けにクロスコンパイルするときに必要

sudo apt-get install -y  gcc-arm-linux-gnueabihf

Rbenvのインストール

そもそもシステムにRubyが入ってないといけない

まずはrbenvを使ってシステムにRubyをインストール

git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
source ~/.bashrc
rbenv --version

次にruby-buildをインストール

git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build

いざコンパイル

rbenv install 2.3.0 --verbose
rbenv global 2.3.0 --verbose

ロスコンパイル

もう一つ用意

git clone https://github.com/sstephenson/ruby-build.git ~/

設定

export RUBY_BUILD_BUILD_PATH=/tmp/ruby-build
export CC=arm-linux-gnueabihf-gcc
export CONFIGURE_OPTS="--host x86_64-linux-gnu --build arm-linux-gnueabihf --disable-install-rdoc --disable-install-ri"
export MAKE_OPTS=-j4

いざコンパイル

ruby-build/bin/ruby-build --verbose 2.3.0 ruby-2.3.0-armhf