sensu-plugins / sensu-plugins-http

This plugin provides native HTTP instrumentation for monitoring and metrics collection, including: response code, JSON response, HTTP last modified, SSL expiry, and metrics via `curl`.
http://sensu-plugins.io
MIT License
30 stars 97 forks source link

Error installing plugin with sensu-install #50

Closed luisdalves closed 8 years ago

luisdalves commented 8 years ago

I'm getting the following error with sensu 0.25.7-1 when I'm trying to install this plugin using sensu-install.

Is there any workaround?

[root@i-044a3f27c1ba0a344 bin]# sensu-install -p sensu-plugins-http
[SENSU-INSTALL] installing Sensu plugins ...
[SENSU-INSTALL] determining if Sensu plugin gem 'sensu-plugins-http' is already installed ...
false
[SENSU-INSTALL] Sensu plugin gems to be installed: ["sensu-plugins-http"]
[SENSU-INSTALL] installing Sensu plugin gem 'sensu-plugins-http'
Building native extensions.  This could take a while...
ERROR:  Error installing sensu-plugins-http:
    ERROR: Failed to build gem native extension.

    current directory: /opt/sensu/embedded/lib/ruby/gems/2.3.0/gems/unf_ext-0.0.7.2/ext/unf_ext
/opt/sensu/embedded/bin/ruby -r ./siteconf20160817-29383-xe3h6u.rb extconf.rb
checking for main() in -lstdc++... *** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers.  Check the mkmf.log file for more details.  You may
need configuration options.

Provided configuration options:
    --with-opt-dir
    --with-opt-include
    --without-opt-include=${opt-dir}/include
    --with-opt-lib
    --without-opt-lib=${opt-dir}/lib
    --with-make-prog
    --without-make-prog
    --srcdir=.
    --curdir
    --ruby=/opt/sensu/embedded/bin/$(RUBY_BASE_NAME)
    --with-static-libstdc++
    --without-static-libstdc++
    --with-stdc++lib
    --without-stdc++lib
/opt/sensu/embedded/lib/ruby/2.3.0/mkmf.rb:456:in `try_do': The compiler failed to generate an executable file. (RuntimeError)
You have to install development tools first.
    from /opt/sensu/embedded/lib/ruby/2.3.0/mkmf.rb:541:in `try_link0'
    from /opt/sensu/embedded/lib/ruby/2.3.0/mkmf.rb:556:in `try_link'
    from /opt/sensu/embedded/lib/ruby/2.3.0/mkmf.rb:765:in `try_func'
    from /opt/sensu/embedded/lib/ruby/2.3.0/mkmf.rb:997:in `block in have_library'
    from /opt/sensu/embedded/lib/ruby/2.3.0/mkmf.rb:942:in `block in checking_for'
    from /opt/sensu/embedded/lib/ruby/2.3.0/mkmf.rb:350:in `block (2 levels) in postpone'
    from /opt/sensu/embedded/lib/ruby/2.3.0/mkmf.rb:320:in `open'
    from /opt/sensu/embedded/lib/ruby/2.3.0/mkmf.rb:350:in `block in postpone'
    from /opt/sensu/embedded/lib/ruby/2.3.0/mkmf.rb:320:in `open'
    from /opt/sensu/embedded/lib/ruby/2.3.0/mkmf.rb:346:in `postpone'
    from /opt/sensu/embedded/lib/ruby/2.3.0/mkmf.rb:941:in `checking_for'
    from /opt/sensu/embedded/lib/ruby/2.3.0/mkmf.rb:992:in `have_library'
    from extconf.rb:6:in `<main>'

To see why this extension failed to compile, please check the mkmf.log which can be found here:

  /opt/sensu/embedded/lib/ruby/gems/2.3.0/extensions/x86_64-linux/2.3.0/unf_ext-0.0.7.2/mkmf.log

extconf failed, exit code 1

Gem files will remain installed in /opt/sensu/embedded/lib/ruby/gems/2.3.0/gems/unf_ext-0.0.7.2 for inspection.
Results logged to /opt/sensu/embedded/lib/ruby/gems/2.3.0/extensions/x86_64-linux/2.3.0/unf_ext-0.0.7.2/gem_make.out
[SENSU-INSTALL] failed to install Sensu plugin gem 'sensu-plugins-http'
[SENSU-INSTALL] you can run the sensu-install command again with --verbose for more info
[SENSU-INSTALL] please take note of any failure messages above
[SENSU-INSTALL] make sure you have build tools installed (e.g. gcc)
[SENSU-INSTALL] trying to determine the Sensu plugin homepage for sensu-plugins-http ...
homepage: https://github.com/sensu-plugins/sensu-plugins-http
luisdalves commented 8 years ago

gcc-c++ package is needed.

crummy commented 8 years ago

To be explicit for others, I resolved this issue by adding the line RUN yum install gcc-c++ -y to my Dockerfile.