先日、WSL の Ubuntu 環境を 16.04 から 18.04 にアップグレードしたのですが、いざ rails を起動しようとすると libMagicCore.so.2 が見当たらないとのこと。
$ bundle exec rails s
rails aborted!$
LoadError: libMagickCore-6.Q16.so.2: cannot open shared object file: No such file or directory - /home/m-yoshimo/bundle/MyApp/ruby/2.4.0/gems/rmagick-2.16.0/lib/RMagick2.so$
/home/m-yoshimo/bundle/MyApp/ruby/2.4.0/gems/activesupport-5.2.0/lib/active_support/dependencies.rb:283:in `require'$
/home/m-yoshimo/bundle/MyApp/ruby/2.4.0/gems/activesupport-5.2.0/lib/active_support/dependencies.rb:283:in `block in require'$
/home/m-yoshimo/bundle/MyApp/ruby/2.4.0/gems/activesupport-5.2.0/lib/active_support/dependencies.rb:249:in `load_dependency'$
/home/m-yoshimo/bundle/MyApp/ruby/2.4.0/gems/activesupport-5.2.0/lib/active_support/dependencies.rb:283:in `require'$
/home/m-yoshimo/bundle/MyApp/ruby/2.4.0/gems/rmagick-2.16.0/lib/rmagick_internal.rb:12:in `<top (required)>'$
/home/m-yoshimo/bundle/MyApp/ruby/2.4.0/gems/activesupport-5.2.0/lib/active_support/dependencies.rb:283:in `require'$
/home/m-yoshimo/bundle/MyApp/ruby/2.4.0/gems/activesupport-5.2.0/lib/active_support/dependencies.rb:283:in `block in require'$
/home/m-yoshimo/bundle/MyApp/ruby/2.4.0/gems/activesupport-5.2.0/lib/active_support/dependencies.rb:249:in `load_dependency'$
/home/m-yoshimo/bundle/MyApp/ruby/2.4.0/gems/activesupport-5.2.0/lib/active_support/dependencies.rb:283:in `require'$
/home/m-yoshimo/bundle/MyApp/ruby/2.4.0/gems/rmagick-2.16.0/lib/rmagick.rb:1:in `<top (required)>'$
/mnt/c/work/repositories/MyApp/config/application.rb:10:in `<top (required)>'$
/mnt/c/work/repositories/MyApp/Rakefile:4:in `require'$
/mnt/c/work/repositories/MyApp/Rakefile:4:in `<top (required)>'$
libMagicCore を探しても見当たらない
$ ls /usr/lib/libMagic*
ls: '/usr/lib/libMagic*' にアクセスできません: そのようなファイルやディレクトリはありません
$ ls /usr/local/lib/libMagi*
ls: '/usr/local/lib/libMagi*' にアクセスできません: そのようなファイルやディレクトリはありません
と思ったら、/usr/lib/x86_64-linux-gnu に移動してました
$ ls /usr/lib/x86_64-linux-gnu/libMagick*
/usr/lib/x86_64-linux-gnu/libMagickCore-6.Q16.a /usr/lib/x86_64-linux-gnu/libMagickWand-6.Q16.a
/usr/lib/x86_64-linux-gnu/libMagickCore-6.Q16.la /usr/lib/x86_64-linux-gnu/libMagickWand-6.Q16.la
/usr/lib/x86_64-linux-gnu/libMagickCore-6.Q16.so /usr/lib/x86_64-linux-gnu/libMagickWand-6.Q16.so
/usr/lib/x86_64-linux-gnu/libMagickCore-6.Q16.so.3 /usr/lib/x86_64-linux-gnu/libMagickWand-6.Q16.so.3
/usr/lib/x86_64-linux-gnu/libMagickCore-6.Q16.so.3.0.0 /usr/lib/x86_64-linux-gnu/libMagickWand-6.Q16.so.3.0.0
とりあえず PATH を通してあげて
export PATH=/usr/lib/x86_64-linux-gnu:${PATH}
rmagick はインストール時にロードする libMagicCore のファイルパスを記憶するようなので、一度 rmagick を削除してから、再度 bundle install しなおす
$ bundle exec gem uninstall rmagick
Select gem to uninstall:
1. rmagick-2.16.0
2. rmagick-3.0.0
3. All versions
> 3
Successfully uninstalled rmagick-2.16.0
Successfully uninstalled rmagick-3.0.0
$ bundle install
...
Fetching rmagick 2.16.0
Installing rmagick 2.16.0 with native extensions
...
Bundle complete! 80 Gemfile dependencies, 375 gems now installed.
Bundled gems are installed into `/home/m-yoshimo/bundle/MyApp`
これで無事に起動できるようになりましたとさ
$ bundle exec rails s
=> Booting Puma
=> Rails 5.2.0 application starting in development
=> Run `rails server -h` for more startup options
Puma starting in single mode...
* Version 3.11.4 (ruby 2.4.3-p205), codename: Love Song
* Min threads: 5, max threads: 5
* Environment: development
* Listening on tcp://0.0.0.0:3000
Use Ctrl-C to stop
ここまで書いて気付いたのですが、普通に過去に同じ経験した人がいたようです。
https://qiita.com/aiyu427/items/9231aab85c3b3b8ac227
Top comments (0)