はじめに
mikutterを使いたいと思いたち、そのためにはruby 2.3系以前を使わないといけない事に気づいた @maskuarade です。(追記)
手元の環境はmanjaro linuxですがベースはArchなので基本的には同じです。
前提として、rbenvとruby-buildがインストール済であることを想定します。
Arch でのインストールの仕方
yaourt rbenv
yaourt ruby-build
でそれぞれ aur/rbenv
, aur/ruby-build
を選択してインストールします。
インストールの失敗
早速 rbenv install 2.3.7
と勢い良く打ち込み、Let's install! と行きたいところですがエラーが出ます。
以下、エラーです(読み飛ばして頂いて結構です)。
Downloading ruby-2.3.7.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.7.tar.bz2
Installing ruby-2.3.7...
BUILD FAILED (ManjaroLinux 17.1.9 using ruby-build 20180329)
Inspect or clean up the working tree at /tmp/ruby-build.20180507235750.29802
Results logged to /tmp/ruby-build.20180507235750.29802.log
Last 10 log lines:
make[1]: *** [exts.mk:212: ext/openssl/all] エラー 2
make[1]: *** 未完了のジョブを待っています....
linking shared-object json/ext/generator.so
make[2]: ディレクトリ '/tmp/ruby-build.20180507235750.29802/ruby-2.3.7/ext/json/generator' から出ます
linking shared-object objspace.so
make[2]: ディレクトリ '/tmp/ruby-build.20180507235750.29802/ruby-2.3.7/ext/objspace' から出ます
linking shared-object nkf.so
make[2]: ディレクトリ '/tmp/ruby-build.20180507235750.29802/ruby-2.3.7/ext/nkf' から出ます
make[1]: ディレクトリ '/tmp/ruby-build.20180507235750.29802/ruby-2.3.7' から出ます
make: *** [uncommon.mk:203: build-ext] エラー 2
279.68s user 29.53s system 172% cpu 2:58.82 total
解決策
Arch Wiki rvmのページやruby-buildのwikiをゲロゲロいいながら漁っていたら該当しそうなものを見つけました。
rubyをコンパイルする時に、Archでは(ローリング・リリースで更新が早い故に)、opensslの1.1を使おうとするようですが、rubyの2.3系以前では1.0系を使う必要があるので、指定してビルドします。
# openssl 1.0 をインストールしていない場合
sudo pacman -S openssl-1.0
# rubyのビルド
PKG_CONFIG_PATH=/usr/lib/openssl-1.0/pkgconfig rbenv install 2.3.7
最後に
これで多くの迷える人が救われ、Rubyist, Rubyminerが増える事を願います。
これでmikutter使えるかな?なんて思っていたら他の人のForkを見ていただけでした。2.3系どころか2.6でも使えるんでなかろうか。
南無。