Mastodon v1.4.2 で bundle install すると怒られる問題と対処法

問題

古いバージョンのまま放置していた Mastodon インスタンスをアップデートしていた過程で, v1.4.2 を checkout して bundle install を行ったところ, cld3 でコケて

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Failed to locate protobuf
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers. Check the mkmf.log file for more details. You may
need configuration options.

Provided configuration options:
--with-opt-dir
--without-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--ruby=/home/utodon/.rbenv/versions/2.4.1/bin/$(RUBY_BASE_NAME)
--with-protobuf-config
--without-protobuf-config
--with-pkg-config
--without-pkg-config

などと怒られました。

protobuf が入っていないとのことなので libprotobuf-dev などを入れてみましたが,改善せずすこし詰まりました。

対処

Ruby 2.4.1 の mkmf の Bug #15069 により,ビルド環境のチェックでこけているようでした。 Ruby 2.4.5 には Rev 65109 で backport が入っているようなので,

1
2
3
4
5
6
7
diff --git a/.ruby-version b/.ruby-version
index 005119baa..59aa62c1f 100644
--- a/.ruby-version
+++ b/.ruby-version
@@ -1 +1 @@
-2.4.1
+2.4.5

として再度 bundle install したところ動きました。