LoginSignup
2
2

More than 5 years have passed since last update.

最新Linux環境で古いRubyをビルドする

Last updated at Posted at 2017-06-09

はじめに

古いRuby(2.3) * 最新のLinux環境 = ビルドエラー
の方程式にハマったので、メモ。2017年6月現在の状況であり、半年過ぎたら確実に状況が変わっているとおもわれる。

動作確認環境

  • ArchLinux
  • rbenv(+ruby-build)
  • Ruby2.3.1

GCC

Rubyをビルドするとき、gcc7.1.1が良く分からないけどあらゆるところでエラーする。素直に6.x系に落とす。

ArchLinuxでは、

ここを参考にしてダウングレードを行う。自分は6.3.1を downgrader を使って引っ張ってきて、一旦gccとgcc-libsをアンインストール、 pacman -U コマンドで古いバージョンを選択的にインストールしたあと /etc/pacman.confIgnorePkggcc gcc-libs を追加した。

OpenSSL

Ruby2.3系はOpenSSLの最新版との問題がつきまとう。ネットにパッチが転がったりしているので、それで解決できそうならそれでも良い。今回はOpenSSL側で解決する方法を見つけたのでそれでやる。

まず、AURに古いOpenSSLのパッケージ openssl-1.0 があるのでそれを落とす。次に

PKG_CONFIG_PATH=/usr/lib/openssl-1.0/pkgconfig

を環境変数にセットしてRubyをコンパイルすれば良い。

(参考にしたstackoverflow) https://stackoverflow.com/questions/44116005/openssl-error-installing-ruby-2-1-x-and-2-3-x-on-archlinux-with-ruby-install-rub

補足:OpenSSL1.0->1.1の非互換はとてもでかいらしく、また殆んどのディストリが1.0を同時にインスコできるのでバックポートしてないという話を伺ったので、開発者サイドが想定している解はこちららしい(常に正しいと言うつもりもないが

補足 Ruby2.2.6

Ruby2.2.6も2.3系と同様にインストールできた。

2
2
0

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
2
2