Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
callebtc opened this issue Feb 6, 2022 · 2 comments

Comments

@callebtc
Copy link

callebtc commented Feb 6, 2022

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 find libvips.so.42
  • found libvips.so.42 in /usr/lib/x86_64-linux-gnu/ and added that to LD_LIBRARY_PATH
  • copied libvips.so.42 to /usr/lib/ just to be sure and added that to LD_LIBRARY_PATH as well

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

@ngocsangyem
Copy link

I have the same issue on Mac Silicon.

@elstudio
Copy link
Contributor

elstudio commented Mar 19, 2022

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!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants