どうもこんにちは。
今回は、Elastic Beanstalk環境にデプロイした時、libsass.soがないと言われたので、メモとして残します。
環境
Ruby on Rails環境
Ruby 3.2.2
Rails 7.1.3.3
gem 'sassc-rails'を使用
EB環境
Ruby 3.2 running on 64bit Amazon Linux 2023/4.0.7
エラー内容
上記に示した状態でデプロイを実行すると以下のようなエラーが出てきます。
LoadError: Could not open library '/var/app/staging/vendor/bundle/ruby/3.2.0/gems/sassc-2.4.0/ext/libsass.so': /var/app/staging/vendor/bundle/ruby/3.2.0/gems/sassc-2.4.0/ext/libsass.so: cannot open shared object file: No such file or directory. (LoadError)
Searched in <system library path>, /usr/lib, /usr/local/lib, /opt/local/lib
/var/app/staging/vendor/bundle/ruby/3.2.0/gems/ffi-1.16.3/lib/ffi/dynamic_library.rb:65:in `load_library'
/var/app/staging/vendor/bundle/ruby/3.2.0/gems/ffi-1.16.3/lib/ffi/library.rb:95:in `block in ffi_lib'
/var/app/staging/vendor/bundle/ruby/3.2.0/gems/ffi-1.16.3/lib/ffi/library.rb:94:in `map'
/var/app/staging/vendor/bundle/ruby/3.2.0/gems/ffi-1.16.3/lib/ffi/library.rb:94:in `ffi_lib'
/var/app/staging/vendor/bundle/ruby/3.2.0/gems/sassc-2.4.0/lib/sassc/native.rb:13:in `rescue in <module:Native>'
/var/app/staging/vendor/bundle/ruby/3.2.0/gems/sassc-2.4.0/lib/sassc/native.rb:10:in `<module:Native>'
/var/app/staging/vendor/bundle/ruby/3.2.0/gems/sassc-2.4.0/lib/sassc/native.rb:6:in `<module:SassC>'
/var/app/staging/vendor/bundle/ruby/3.2.0/gems/sassc-2.4.0/lib/sassc/native.rb:5:in `<main>'
/var/app/staging/vendor/bundle/ruby/3.2.0/gems/sassc-2.4.0/lib/sassc.rb:31:in `require_relative'
/var/app/staging/vendor/bundle/ruby/3.2.0/gems/sassc-2.4.0/lib/sassc.rb:31:in `<main>'
<internal:/usr/share/ruby3.2-rubygems/rubygems/core_ext/kernel_require.rb>:37:in `require'
<internal:/usr/share/ruby3.2-rubygems/rubygems/core_ext/kernel_require.rb>:37:in `require'
/var/app/staging/vendor/bundle/ruby/3.2.0/gems/bootsnap-1.18.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
/var/app/staging/vendor/bundle/ruby/3.2.0/gems/zeitwerk-2.6.14/lib/zeitwerk/kernel.rb:34:in `require'
/var/app/staging/vendor/bundle/ruby/3.2.0/gems/sassc-rails-2.1.2/lib/sassc/rails.rb:5:in `<main>'
<internal:/usr/share/ruby3.2-rubygems/rubygems/core_ext/kernel_require.rb>:37:in `require'
<internal:/usr/share/ruby3.2-rubygems/rubygems/core_ext/kernel_require.rb>:37:in `require'
/var/app/staging/vendor/bundle/ruby/3.2.0/gems/bootsnap-1.18.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
/var/app/staging/vendor/bundle/ruby/3.2.0/gems/zeitwerk-2.6.14/lib/zeitwerk/kernel.rb:34:in `require'
/var/app/staging/config/application.rb:4:in `<top (required)>'
/var/app/staging/Rakefile:4:in `require_relative'
/var/app/staging/Rakefile:4:in `<top (required)>'
/opt/elasticbeanstalk/config/private/checkforraketask.rb:21:in `<top (required)>'
/bin/bundle:25:in `load'
/bin/bundle:25:in `<main>'
改善策
結論から言うと、Gemfileに以下を追記します。
gem 'sassc', '2.1.0'
エラー内容から、sassc-2.4.0
のlibsass.so
が開けないと言われています。
なら、「バージョンを下げてみよう」という発想です。
以下のサイトから、バージョン履歴を確認できるので、一つずつbundle install
を実行してデプロイを試してみると良いと思います。
以上