状況の説明
私のRailsプロジェクトでは、画像処理にImageMagick
を利用しており、特にrmagick
というGemを使っています。Ubuntuを22.04
から24.04
にアップグレードした後、アプリケーションをデプロイしようとしたところ、次のようなエラーが発生しました。
LoadError: libMagickCore-6.Q16.so.6: cannot open shared object file: No such file or directory - /deploy/apps/langfix/shared/bundle/ruby/3.3.0/gems/rmagick-6.0.1/lib/RMagick2.so (LoadError)
このエラーは、libMagickCore-6.Q16.so.6
というImageMagick
のライブラリが見つからないことを示しています。
原因
Ubuntuのバージョンアップによって、多くのライブラリも更新されます。その結果、依存関係にあるライブラリのバージョンが変更され、互換性がなくなることがあります。この場合、ImageMagick
の新しいバージョンがインストールされ、古いライブラリファイルが削除されたため、rmagick
Gemが参照する古いライブラリファイルにアクセスできなくなったらしい。
解決案
サーバー上の/shared/bundle
ディレクトリを削除し、Railsアプリケーションを再デプロイしたら無事に治りました。
rm -rf /deploy/apps/myapp/shared/bundle
Capistranoで再デプロイ:
cap production deploy