Project

General

Profile

Actions

Bug #669

closed

Ubuntu packge doesn't detect libraries properly

Added by Dis Connect almost 14 years ago. Updated over 13 years ago.

Status:
Closed
Priority:
Normal
Category:
Packaging
Target version:
Difficulty:
Triaged:
Fixed in Releases:
Found in Releases:

Description

Built with pkg:deb, got:

 Missing these required gems:
  rest-client >= 1.4.0
  json

You're running:
  ruby 1.8.7.253 at /usr/bin/ruby1.8
  rubygems 1.3.7 at /usr/share/foreman/.gem/ruby/1.8, /var/lib/gems/1.8

But the appropriate Ubuntu packages are installed:

$ dpkg -l librestclient-ruby1.8 libjson-ruby1.8
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Cfg-files/Unpacked/Failed-cfg/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Description
+++-=====================-=====================-==========================================================
ii libjson-ruby1.8 1.1.9-1 JSON library for Ruby (Ruby 1.8 version)
ii librestclient-ruby1.8 1.4.2-1 simple REST client for Ruby@

A workaround is attached - don't check with 'config.gem'. (A more portable answer is to retry with 'require', since the various gems and libs are available that way. The patch below will break anyone who doesn't have the required libs and such..)


Files

foreman-deb.diff foreman-deb.diff 667 Bytes Dis Connect, 02/15/2011 10:56 AM
Actions #1

Updated by Ohad Levy over 13 years ago

  • Category set to Packaging
  • Assignee set to Jochen Schalanda

Joschi, can you please have a look?

Actions #2

Updated by Jochen Schalanda over 13 years ago

  • Target version set to 0.2

The report of Disconnect is perfectly valid and the attached patch would fix the issue.

The underlying problem is that Debian (and Ubuntu) packages install Ruby gems in a way that gem doesn't know about them at all, in contrast to Gentoo Linux for example. If the two offending lines are removed from config/environment.rb, the json and rest-client gems won't be installed when running the gems:install or gems:unpack rake task.

Another IMHO less attractive solution to the problem would be to add both gems into the vendor/gems subdirectory and not using system-provided Ruby gems at all. This will lead to bigger packages and code duplication (on the system, file-wise).

In the end there is no perfect solution to this problem, just two possible fixes with some drawbacks each.

From a packager's point of view I'd prefer Disconnect's solution while as a developer I'd prefer the second solution to the problem.

Actions #3

Updated by Ohad Levy over 13 years ago

  • Status changed from New to Closed
Actions

Also available in: Atom PDF