[Rubygems-developers] [ rubygems-Bugs-29075 ] need for a post_install hook

noreply at rubyforge.org noreply at rubyforge.org
Fri Mar 11 10:46:26 EST 2011

Bugs item #29075, was opened at 2011-03-11 14:36
You can respond by visiting: 

Category: `gem install` command (extensions)
Group: next
Status: Open
Resolution: None
Priority: 3
Submitted By: Torsten Curdt (tcurdt)
Assigned to: Nobody (None)
Summary: need for a post_install hook

Initial Comment:
While there is Gem.post_install this cannot be used for gems that want to run some code on installation.

In my particular case I need to compile some C++ code -a command line tool- that the gem depends on. It does not come with an extension though. Since there is no post_install hook exposed to the gem lifecycle people use the extconf for things like this. Since that one makes the assumption of building an extension, leaving out the create_makefile() results in

 Building native extensions.  This could take a while...
 ERROR:  Error installing ...
	ERROR: Failed to build gem native extension.

 No builder for extension 'path/to/extconf.rb'

Which result in people doing things like this http://blog.costan.us/2008/11/post-install-post-update-scripts-for.html

The best solution would certainly be to have some gem lifecyle hooks. But just making less assumption on the extension building would already be a first step.


>Comment By: Torsten Curdt (tcurdt)
Date: 2011-03-11 16:46

Maybe I misunderstood but I think Eric said on IRC that the existing post_install is 
not for gems. Which is why he asked me to open this issue.

Jon, can you give an example how that would work?

Whether it is pre or post install is not important to me. It's just that one might want 
to build more than just extension on install. I got that working by abusing the 
extconf to execute my build and creating an empty Makefile.

But that smells.


Comment By: Jon Forums (jonforums)
Date: 2011-03-11 16:13

Can you split things up to use the pre-install and post-build hooks which as of 1.5.0 that can cancel gem installation...optimistically compile in the pre-install and abort if needed in either pre-install or post-build?



Comment By: Torsten Curdt (tcurdt)
Date: 2011-03-11 14:54

Then you also cannot allow native builds. Where is the difference?


Comment By: Luis Lavena (luislavena)
Date: 2011-03-11 14:44

I would say no to this.

Most of the users do not check what the gem do inside, so there is a huge potential of security risks on this.


You can respond by visiting: 

More information about the Rubygems-developers mailing list