Posted at

[mastodon] アップデート時のassets:precomlileで失敗

備忘録として書き残しておきます。


事象

mastodon 2.7.0 → 2.7.1へアップデートする際、assets:precompileでコケてしまった。

~/live$ RAILS_ENV=production bundle exec rails assets:precompile

rails aborted!
LoadError: Could not open library '/home/mastodon/live/vendor/bundle/ruby/2.6.0/gems/cld3-3.2.3/lib/../ext/cld3/libcld3.so': libprotobuf.so.9: cannot open shared object file: No such file or directory
/home/mastodon/live/vendor/bundle/ruby/2.6.0/gems/ffi-1.9.25/lib/ffi/library.rb:145:in `block in ffi_lib'
/home/mastodon/live/vendor/bundle/ruby/2.6.0/gems/ffi-1.9.25/lib/ffi/library.rb:99:in `map'

/home/mastodon/live/vendor/bundle/ruby/2.6.0/gems/ffi-1.9.25/lib/ffi/library.rb:99:in `ffi_lib'
/home/mastodon/live/vendor/bundle/ruby/2.6.0/gems/cld3-3.2.3/lib/cld3.rb:115:in `<module:Unstable>'

/home/mastodon/live/vendor/bundle/ruby/2.6.0/gems/cld3-3.2.3/lib/cld3.rb:112:in `<module:CLD3>'
/home/mastodon/live/vendor/bundle/ruby/2.6.0/gems/cld3-3.2.3/lib/cld3.rb:24:in `<top (required)>'

/home/mastodon/live/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:21:in `require'
/home/mastodon/live/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:21:in `block in require_with_bootsnap_lfi'

/home/mastodon/live/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/loaded_features_index.rb:65:in `register'
/home/mastodon/live/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:20:in `require_with_bootsnap_lfi'

/home/mastodon/live/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:29:in `require'
/home/mastodon/live/config/application.rb:7:in `<top (required)>'

/home/mastodon/live/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:21:in `require'
/home/mastodon/live/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:21:in `block in require_with_bootsnap_lfi'

/home/mastodon/live/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/loaded_features_index.rb:65:in `register'
/home/mastodon/live/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:20:in `require_with_bootsnap_lfi'

/home/mastodon/live/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:29:in `require'
/home/mastodon/live/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.2/lib/active_support/dependencies.rb:291:in `block in require'

/home/mastodon/live/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.2/lib/active_support/dependencies.rb:257:in `load_dependency'
/home/mastodon/live/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.2/lib/active_support/dependencies.rb:291:in `require'

/home/mastodon/live/Rakefile:4:in `<top (required)>'
/home/mastodon/live/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:50:in `load'

/home/mastodon/live/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:50:in `load'
/home/mastodon/live/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.2/lib/active_support/dependencies.rb:285:in `block in load'

/home/mastodon/live/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.2/lib/active_support/dependencies.rb:257:in `load_dependency'
/home/mastodon/live/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.2/lib/active_support/dependencies.rb:285:in `load'

/home/mastodon/live/vendor/bundle/ruby/2.6.0/gems/railties-5.2.2/lib/rails/commands/rake/rake_command.rb:22:in `block in perform'
/home/mastodon/live/vendor/bundle/ruby/2.6.0/gems/railties-5.2.2/lib/rails/commands/rake/rake_command.rb:20:in `perform'

/home/mastodon/live/vendor/bundle/ruby/2.6.0/gems/railties-5.2.2/lib/rails/command.rb:48:in `invoke'
/home/mastodon/live/vendor/bundle/ruby/2.6.0/gems/railties-5.2.2/lib/rails/commands.rb:18:in `<top (required)>'

/home/mastodon/live/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:21:in `require'
/home/mastodon/live/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:21:in `block in require_with_bootsnap_lfi'

/home/mastodon/live/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/loaded_features_index.rb:65:in `register'
/home/mastodon/live/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:20:in `require_with_bootsnap_lfi'

/home/mastodon/live/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:29:in `require'
/home/mastodon/live/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.2/lib/active_support/dependencies.rb:291:in `block in require'

/home/mastodon/live/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.2/lib/active_support/dependencies.rb:257:in `load_dependency'
/home/mastodon/live/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.2/lib/active_support/dependencies.rb:291:in `require'

bin/rails:4:in `<main>'
(See full trace by running task with --trace)


解決した方法

/home/mastodon/live/vendor配下のbundleを一時退避させて、再度bundle installを実施すると解決した。

cd /home/mastodon/live/vendor/

mv bundle bundle.bk
bundle install


環境


  • Ubuntu 18.04

  • Ruby 2.6.0

  • mastodon 2.7.0

  • 非docker

mastodon 2.7.0へのアップデートに伴い、以下もすべてバージョンアップを行ったことが関係しているかは不明。

(バージョンアップ後の2.7.0へのアップデートは問題なくうまくいったのだけど…)


  • Ubuntu 16.04 → 18.04

  • Ruby 2.5.3 → 2.6.0

  • PostgreSQL 9.5.14 → 11.1

  • Redis 3.06 → 4.09