Project

General

Profile

Actions

Feature #14656

closed

Improve mkmf error message when ruby.h is missing

Added by peyremorgan (Morgan Peyre) about 6 years ago. Updated about 6 years ago.

Status:
Closed
Assignee:
-
Target version:
-
[ruby-core:86421]

Description

Without the development tools, trying to install most gems results in the following error :

mkmf.rb can't find header files for ruby at #{$hdrdir}/ruby.h

Copy-pasting the error into a search engine yields numerous versions of the same solution : installing the ruby development environment (package ruby-dev or ruby-devel on most Linux distributions) solves the issue.

Maybe the error message could hint at this solution? I found the following line further down in the same file that could be added after the current error message :

You have to install development tools first.

Updated by nobu (Nobuyoshi Nakada) about 6 years ago

"Development tools" sound like compiler toolchain or similar, as mkmf.rb raises RuntimeError with the message:

The compiler failed to generate an executable file. 
You have to install development tools first.
Actions #2

Updated by nobu (Nobuyoshi Nakada) about 6 years ago

  • Status changed from Open to Closed

Applied in changeset trunk|r63061.


Improve mkmf error message

  • lib/mkmf.rb: Improve the error message when ruby.h is missing,
    to suggest installing separate packages. [Feature #14656]

Updated by shevegen (Robert A. Heiler) about 6 years ago

nobu already solved this, but I wanted to make one comment to:

Maybe the error message could hint at this solution?

I think one problem is that the splitting of packages is done
by distributions, not by the ruby core team or anyone else.

When I compile ruby from source, I do have mkmf available.

In an ideal world, people would look at whoever made the
changes to ruby (e. g. by removing mkmf and putting it into
a separate package) rather than upstream developers who did
not make the change. But I can also understand end users being
frustrated; that has been one reason why we have projects such
as rvm, chruby and so forth.

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0