rbuchberger / jekyll_picture_tag

Easy responsive images for Jekyll.
https://rbuchberger.github.io/jekyll_picture_tag/
BSD 3-Clause "New" or "Revised" License
622 stars 106 forks source link

Can't use with github workflow: libvips.so.42: cannot open shared object file: No such file or directory #275

Open callebtc opened 2 years ago

callebtc commented 2 years ago

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:

Have you managed to get it to run in a github workflow?

ngocsangyem commented 2 years ago

I have the same issue on Mac Silicon.

elstudio commented 2 years ago

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!