Jekyll package once installed still requiring classifier gem

Bug #1703993 reported by Ascii Contributor
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Raspbian
New
Undecided
Unassigned

Bug Description

== Jekyll package once installed still requiring classifier gem

after install this error message

> jekyll -v

  Dependency Error: Yikes! It looks like you don't have classifier or one of its dependencies installed. In order to use Jekyll as currently contfigured, you'll need to install this gem. The full error message from Ruby is: 'cannot load such file -- stemmer' If you run into trouble, you can find helpful resources at http://jekyllrb.com/help/!
/usr/lib/ruby/vendor_ruby/jekyll/deprecator.rb:49:in `rescue in block in gracefully_require': classifier (Jekyll::Errors::MissingDependencyException)
 from /usr/lib/ruby/vendor_ruby/jekyll/deprecator.rb:38:in `block in gracefully_require'
 from /usr/lib/ruby/vendor_ruby/jekyll/deprecator.rb:37:in `each'
 from /usr/lib/ruby/vendor_ruby/jekyll/deprecator.rb:37:in `gracefully_require'
 from /usr/lib/ruby/vendor_ruby/jekyll.rb:138:in `<top (required)>'
 from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
 from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
 from /usr/bin/jekyll:6:in `<main>'

To get it to work I had to install the ruby package 'classifier' with gem ('sudo gem install classifier') which required ruby headers ('sudo apt install ruby-dev')

Attacched is a log file with an example session.

Overall Issue and Reproduction
------------------------------

> raspbian jessie lite
> apt update, apt upgrade, all up to date
> install jekyll with 'sudo apt install jekyll'
> jekyll does not start, displays need for 'classifier'
> installed manually the classifier with gem 'sudo gem install classifier'
> jekyll works

Context
-------

- Hardware: Raspberry Pi Zero W, original, bought from Original Seller Pimoroni (UK)
            Hw connected only to power supply. No USB devices connected or any other partition.
- OS: Raspbian Jessie Lite, downloaded from RaspberryPi official website (Raspbian Lite .iso)
- APT: apt update and upgrade just done. System up to date
- Date: 2017 July 12

-- System Information:
Distributor ID: Raspbian
Description: Raspbian GNU/Linux 8.0 (jessie)
Release: 8.0
Codename: jessie
Architecture: armv6l

State before installing jekyll
------------------------------

System up to date. Jekyll never been installed.

I do not use ruby, and did not alter anything related to ruby within the system.

Action
------

> sudo apt install jekyll

State after installing jekyll
-----------------------------

Jekyll does not run, message displays that it needs gem 'classifier'

> jekyll -v

  Dependency Error: Yikes! It looks like you don't have classifier or one of its dependencies installed. In order to use Jekyll as currently contfigured, you'll need to install this gem. The full error message from Ruby is: 'cannot load such file -- stemmer' If you run into trouble, you can find helpful resources at http://jekyllrb.com/help/!
/usr/lib/ruby/vendor_ruby/jekyll/deprecator.rb:49:in `rescue in block in gracefully_require': classifier (Jekyll::Errors::MissingDependencyException)
 from /usr/lib/ruby/vendor_ruby/jekyll/deprecator.rb:38:in `block in gracefully_require'
 from /usr/lib/ruby/vendor_ruby/jekyll/deprecator.rb:37:in `each'
 from /usr/lib/ruby/vendor_ruby/jekyll/deprecator.rb:37:in `gracefully_require'
 from /usr/lib/ruby/vendor_ruby/jekyll.rb:138:in `<top (required)>'
 from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
 from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
 from /usr/bin/jekyll:6:in `<main>'

Expected Behaviour
------------------

Expected jekyll to work out of the box, as in x64 version.

Reportbug
---------

pi@raspberrypi:~ $ reportbug -q --template -T none -s none -S normal -b --list-cc none -q jekyll
Warning: no reportbug configuration found. Proceeding in novice mode.
Detected character set: UTF-8
Please change your locale if this is incorrect.

Using 'pi@raspberrypi' as your from address.
Getting status for jekyll...
Will send report to Raspbian (per lsb_release).
Maintainer for jekyll is 'Debian Ruby Extras Maintainers <email address hidden>'.
Looking up dependencies of jekyll...

Rewriting subject to 'jekyll: none'
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
From: pi@raspberrypi
To: Debian Bug Tracking System <email address hidden>
Subject: jekyll: none
X-Debbugs-Cc: none

Package: jekyll
Version: 2.2.0+dfsg-2
Severity: normal

Dear Maintainer,

*** Reporter, please consider answering these questions, where appropriate ***

   * What led up to the situation?
   * What exactly did you do (or not do) that was effective (or
     ineffective)?
   * What was the outcome of this action?
   * What outcome did you expect instead?

*** End of the template - remove these template lines ***

-- System Information:
Distributor ID: Raspbian
Description: Raspbian GNU/Linux 8.0 (jessie)
Release: 8.0
Codename: jessie
Architecture: armv6l

Kernel: Linux 4.9.35+
Locale: LANG=C.UTF-8, LC_CTYPE=C.UTF-8 (charmap=UTF-8) (ignored: LC_ALL set to en_US.UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages jekyll depends on:
ii ruby 1:2.1.5+deb8u2
ii ruby-classifier 1.3.4-2
ii ruby-colorator 0.1-3
ii ruby-jekyll-coffeescript 1.0.0-1
ii ruby-jekyll-gist 1.1.0-1
ii ruby-jekyll-paginate 1.0.0-1
ii ruby-jekyll-sass-converter 1.0.0-2
ii ruby-jekyll-watch 1.0.0-1
ii ruby-kramdown 1.4.2-2
ii ruby-liquid 2.6.1-2
ii ruby-mercenary 0.3.4-1
ii ruby-pygments.rb 0.5.4~ds1-3
ii ruby-redcarpet 3.1.2-1
ii ruby-safe-yaml 1.0.3-1
ii ruby-toml 0.1.1-1
ii ruby2.1 [ruby-interpreter] 2.1.5-2+deb8u3

Versions of packages jekyll recommends:
ii ruby-mysql 2.9.1-1
ii ruby-rouge 1.5.1-1
ii ruby-sequel 4.15.0-1
ii ruby-sequel-pg 1.6.10-1

jekyll suggests no packages.

-- no debconf information

Workaround
----------

In order to progress with my use I have manually installed gem 'classifier'.

> jekyll -v

  Dependency Error: Yikes! It looks like you don't have classifier or one .....
  ....

> sudo apt install ruby-dev
> sudo gem install classifier

> jekyll -v

  jekyll 2.2.0

Reportbug - after workaround
----------------------------

Same as before workaround. Checked with diff.

Humble Analysis
---------------

The package ruby-classifier is installed. Although Jekyll cannot access it via ruby.
Is it maybe, in this arm package version, not 'exporting' its functionality system-wise
as when installed with gem ?

Unfortunately I have no ruby knowledge to further speculate.

I have tested on an fresh jessie installation, up-to-date, on a PC x64 the same day. And
the jekyll installation worked out of the box, it found 'classifier', so the issue might lay
in this architecture version of the packages.

Cheers
------

Available for any further info/test !

Wish all the team an outstanding day,

Best regards,
F

Tags: jessie
Revision history for this message
Ascii Contributor (its-ascii-time) wrote :
Revision history for this message
peter green (plugwash) wrote :

Reading the error carefully it looks like the problem is not classifier itself but one of it's dependencies, "stemmer" which seems to be provided by the package ruby-fast-stemmer.

Afaict there are a few aspects to this

1. Some ruby gems need a native-code component. This component must be built for the right version of ruby.
2. we don't have any mechanism for automatically removing packages that are removed from Debian (I possiblly should implement one but it's more complex than it first appears and i've never got around to figuring out the details) so there is still a libruby1.8 package present.
3. Debian's dependency system doesn't adequately express the complexities of the dependency situation.

The result of this is that the ruby-fast-stemmer package in raspbian jessie is built against the wrong version of ruby but everything looks fine to dependency checking tools.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.