Can't use with github workflow: libvips.so.42: cannot open shared object file: No such file or directory
callebtc opened this issue · 2 comments
Hi,
I know this is only a remotely related issue since it's not directly related to jekyll_picture_tag
. I can perfectly use it on my local macOS computer by installing libvips
as it is described in the docs.
However, I'm running into problems when using it as a github workflow to build a github page.
Installing jekyll_picture_tag 2.0.3
Bundle complete! 9 Gemfile dependencies, 43 gems now installed.
Bundled gems are installed into `./vendor/bundle`
Building Jekyll site...
bundler: failed to load command: jekyll (/github/workspace/vendor/bundle/ruby/2.6.0/bin/jekyll)
/github/workspace/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.5/lib/ffi/library.rb:145:in `block in ffi_lib': Could not open library 'vips.so.42': vips.so.42: cannot open shared object file: No such file or directory. (LoadError)
Could not open library 'libvips.so.42': libvips.so.42: cannot open shared object file: No such file or directory
from /github/workspace/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.5/lib/ffi/library.rb:99:in `map'
from /github/workspace/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.5/lib/ffi/library.rb:99:in `ffi_lib'
from /github/workspace/vendor/bundle/ruby/2.6.0/gems/ruby-vips-2.0.17/lib/vips.rb:528:in `<module:Vips>'
from /github/workspace/vendor/bundle/ruby/2.6.0/gems/ruby-vips-2.0.17/lib/vips.rb:525:in `<top (required)>'
from /github/workspace/vendor/bundle/ruby/2.6.0/gems/ruby-vips-2.0.17/lib/ruby-vips.rb:1:in `require'
from /github/workspace/vendor/bundle/ruby/2.6.0/gems/ruby-vips-2.0.17/lib/ruby-vips.rb:1:in `<top (required)>'
from /github/workspace/vendor/bundle/ruby/2.6.0/gems/jekyll_picture_tag-2.0.3/lib/jekyll_picture_tag/images/generated_image.rb:1:in `require'
from /github/workspace/vendor/bundle/ruby/2.6.0/gems/jekyll_picture_tag-2.0.3/lib/jekyll_picture_tag/images/generated_image.rb:1:in `<top (required)>'
from /github/workspace/vendor/bundle/ruby/2.6.0/gems/jekyll_picture_tag-2.0.3/lib/jekyll_picture_tag/images.rb:2:in `require_relative'
from /github/workspace/vendor/bundle/ruby/2.6.0/gems/jekyll_picture_tag-2.0.3/lib/jekyll_picture_tag/images.rb:2:in `<top (required)>'
from /github/workspace/vendor/bundle/ruby/2.6.0/gems/jekyll_picture_tag-2.0.3/lib/jekyll_picture_tag.rb:5:in `require_relative'
from /github/workspace/vendor/bundle/ruby/2.6.0/gems/jekyll_picture_tag-2.0.3/lib/jekyll_picture_tag.rb:5:in `<top (required)>'
from /usr/local/bundle/gems/bundler-2.3.6/lib/bundler/runtime.rb:[60](https://github.com/bitcoinsozial/bitcoinsozial.github.io/runs/5083944895?check_suite_focus=true#step:6:60):in `require'
from /usr/local/bundle/gems/bundler-2.3.6/lib/bundler/runtime.rb:60:in `block (2 levels) in require'
from /usr/local/bundle/gems/bundler-2.3.6/lib/bundler/runtime.rb:55:in `each'
from /usr/local/bundle/gems/bundler-2.3.6/lib/bundler/runtime.rb:55:in `block in require'
from /usr/local/bundle/gems/bundler-2.3.6/lib/bundler/runtime.rb:44:in `each'
from /usr/local/bundle/gems/bundler-2.3.6/lib/bundler/runtime.rb:44:in `require'
from /usr/local/bundle/gems/bundler-2.3.6/lib/bundler.rb:1[76](https://github.com/bitcoinsozial/bitcoinsozial.github.io/runs/5083944895?check_suite_focus=true#step:6:76):in `require'
from /github/workspace/vendor/bundle/ruby/2.6.0/gems/jekyll-4.2.1/lib/jekyll/plugin_manager.rb:53:in `require_from_bundler'
from /github/workspace/vendor/bundle/ruby/2.6.0/gems/jekyll-4.2.1/exe/jekyll:11:in `<top (required)>'
from /github/workspace/vendor/bundle/ruby/2.6.0/bin/jekyll:23:in `load'
from /github/workspace/vendor/bundle/ruby/2.6.0/bin/jekyll:23:in `<top (required)>'
from /usr/local/bundle/gems/bundler-2.3.6/lib/bundler/cli/exec.rb:58:in `load'
from /usr/local/bundle/gems/bundler-2.3.6/lib/bundler/cli/exec.rb:58:in `kernel_load'
from /usr/local/bundle/gems/bundler-2.3.6/lib/bundler/cli/exec.rb:23:in `run'
from /usr/local/bundle/gems/bundler-2.3.6/lib/bundler/cli.rb:4[84](https://github.com/bitcoinsozial/bitcoinsozial.github.io/runs/5083944895?check_suite_focus=true#step:6:84):in `exec'
from /usr/local/bundle/gems/bundler-2.3.6/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
from /usr/local/bundle/gems/bundler-2.3.6/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
from /usr/local/bundle/gems/bundler-2.3.6/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
from /usr/local/bundle/gems/bundler-2.3.6/lib/bundler/cli.rb:31:in `dispatch'
from /usr/local/bundle/gems/bundler-2.3.6/lib/bundler/vendor/thor/lib/thor/base.rb:4[85](https://github.com/bitcoinsozial/bitcoinsozial.github.io/runs/5083944895?check_suite_focus=true#step:6:85):in `start'
from /usr/local/bundle/gems/bundler-2.3.6/lib/bundler/cli.rb:25:in `start'
from /usr/local/bundle/gems/bundler-2.3.6/exe/bundle:48:in `block in <top (required)>'
from /usr/local/bundle/gems/bundler-2.3.6/lib/bundler/friendly_errors.rb:[103](https://github.com/bitcoinsozial/bitcoinsozial.github.io/runs/5083944895?check_suite_focus=true#step:6:103):in `with_friendly_errors'
from /usr/local/bundle/gems/bundler-2.3.6/exe/bundle:36:in `<top (required)>'
from /usr/local/bundle/bin/bundle:23:in `load'
from /usr/local/bundle/bin/bundle:23:in `<main>'
I tried everything I could think of:
- installed libvips using
sudo -E apt-get install libvips
- ran
ldconfig -v
which seems to findlibvips.so.42
- found
libvips.so.42
in/usr/lib/x86_64-linux-gnu/
and added that toLD_LIBRARY_PATH
- copied
libvips.so.42
to/usr/lib/
just to be sure and added that toLD_LIBRARY_PATH
as well
Have you managed to get it to run in a github workflow?
I have the same issue on Mac Silicon.
On Ubuntu/Debian the name of the package you need is libvips-tools
— that will not only install the proper libvips library, but it also installs the necessary command line stuff and sets the proper paths. Installed this way, there’s no need to mess with LD_LIBRARY_PATH
.
Here’s an excerpt of the workflow I use — the important part is line 6:
jobs:
jekyll:
runs-on: ubuntu-latest
steps:
- name: Install dependencies
run: sudo apt-get install libvips-tools
- name: Checkout
uses: actions/checkout@v2
- name: 💎 setup ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: 2.7
bundler-cache: true
- name: Jekyll build
run: bundle exec jekyll build
env:
JEKYLL_ENV: production
Happy JPT-ing!