"gem install mygem" does not install the gem

Hi,

I am encountering an odd behavior of gem install function. Can anyone
explain me what “gem install” actually does?

I have several C code and header files, and one extconf.rb file, +
mygem.gemspec file. So, when I build a gem it successfully creates
mygem-0.61.gem.

So, when I install it locally using “gem install mygem-0.61.gem” I
expect the gem to create a makefile, because in the extconf.rb file I
explicitly indicate it, and then “make install” that newly created
Makefile. However, "gem install’ does not create a Makefile and does
not install it. What it does is just copies those several files to the
gem directory, where Gem keeps all its gems.

What I have to do is manually rub “ruby extconf.rb”, which creates the
Makefile, and manually “make install”.

The questions is: Should not “gem install” perform all these operation
by itself, when I type “gem install mygem”?

Thank you in advance for your help.

On Jul 30, 10:19 am, CUBRID [email protected] wrote:

expect the gem to create a makefile, because in the extconf.rb file I
explicitly indicate it, and then “make install” that newly created
Makefile. However, "gem install’ does not create a Makefile and does
not install it. What it does is just copies those several files to the
gem directory, where Gem keeps all its gems.

What I have to do is manually rub “ruby extconf.rb”, which creates the
Makefile, and manually “make install”.

The questions is: Should not “gem install” perform all these operation
by itself, when I type “gem install mygem”?

You need to indicate in your gemspec that there is a native library to
build. You might get more answers on one of the main ruby lists as
this isn’t really a rails question.

Fred

Thank you!

I will post to the rubygems gorup. But, if you might have time to
explain me which specification exactly should be set, I would be very
glad for your help! What I understand from what you’ve said is the
“s.platform = Gem::Platform::RUBY” specification. If, so, this is
exactly what I did, i.e. set it to Native Ruby.

Anyway, thank you for you help!

Esen.

On Jul 30, 6:53 pm, Frederick C. [email protected]

On Aug 2, 2:06 am, CUBRID [email protected] wrote:

Thank you!

I will post to the rubygems gorup. But, if you might have time to
explain me which specification exactly should be set, I would be very
glad for your help! What I understand from what you’ve said is the
“s.platform = Gem::Platform::RUBY” specification. If, so, this is
exactly what I did, i.e. set it to Native Ruby.

No, that’s not what you need, see
http://docs.rubygems.org/read/chapter/20#extensions
You might also want ot look at an existing gem that contains a native
library and see what it does

Fred

Actually I had that line before. Then I removed it when I build a gem
for win32 as I didn’t need to build anything. Then forgot to paste
back.

Thank you, Fred, for the notice.

On Aug 2, 5:30 pm, Frederick C. [email protected]