Installing Gems on Windows


A

Augusto Esteves

I'm new to Ruby and I was wondering if every gem that works on Ruby
for Linux works on Ruby for Windows. I'm trying to install both the
rake (as a test) and the nfc gems on Windows, but with both I'm
getting:

c:\ruby>gem install nfc
ERROR: While executing gem ... (Gem::GemNotFoundException)
Could not find nfc (> 0) in any repository
 
Ad

Advertisements

P

Phillip Gawlowski

I'm new to Ruby and I was wondering if every gem that works on Ruby
for Linux works on Ruby for Windows.

Short answer: No.

Long answer: It depends.

*If* you use the RubyInstaller from rubyinstaller.org *and* the devkit
offered there (simply extract the .7z into your Ruby installation
folder, by default C:\Ruby), then Gems requiring native extensions
*could* work, if no binary gem is offered.
 
A

Augusto Esteves

Phillip said:
*If* you use the RubyInstaller from rubyinstaller.org *and* the devkit
offered there (simply extract the .7z into your Ruby installation
folder, by default C:\Ruby), then Gems requiring native extensions
*could* work, if no binary gem is offered.

I've followed your instructions and I was able to get somewhere :) After
it starts building the native extensions I get a bunch of errors that
are related to a library I need to run this gem, which is the libnfc.

I have the binaries for this library, is there a way of letting the Gem
installer know how to get the files it needs?
 
P

Phillip Gawlowski

I've followed your instructions and I was able to get somewhere :) After
it starts building the native extensions I get a bunch of errors that
are related to a library I need to run this gem, which is the libnfc.

I have the binaries for this library, is there a way of letting the Gem
installer know how to get the files it needs?

The MinGW compiler used by ruby needs to know where the *header* files
are to get them.

My guess is that you need the source for libnfc, and add their path to
your your %path% environment variable (if only temporarily), by doing
something like "set path = %path%;C:\Path\To\Header\Files", and then
"gem install".

Mind, this doesn't guarantee, at all, that your gem will work. Or even
that the libnfc you have works (the lib has to be compiled for windows,
with a compiler compatible to MinGW32's gcc3.4 to be usable by Ruby),
*and* the header files have to be usable for Windows, too.

Linux and Windows platforms are *not* compatible to each other, so
unless you know your way around C, and can fix the errors gcc/gem hands
you, you'll either have to fix the errors yourself, or lobby the
libnfc/nfc-gem maintainers to fix the issue (if, indeed, this is an
issue for them in the first place).
 
R

Regis Aubarede

Augusto said:
c:\ruby>gem install nfc
ERROR: While executing gem ... (Gem::GemNotFoundException)
Could not find nfc (> 0) in any repository

that resolve the first issue :
gem install os

then you will get second issue :
.... ERROR: Failed to build gem native extension. ....

I have not found solution for this one !
by
 
A

Augusto Esteves

Phillip said:
The MinGW compiler used by ruby needs to know where the *header* files
are to get them.

My guess is that you need the source for libnfc, and add their path to
your your %path% environment variable (if only temporarily), by doing
something like "set path = %path%;C:\Path\To\Header\Files", and then
"gem install".

Mind, this doesn't guarantee, at all, that your gem will work. Or even
that the libnfc you have works (the lib has to be compiled for windows,
with a compiler compatible to MinGW32's gcc3.4 to be usable by Ruby),
*and* the header files have to be usable for Windows, too.

Linux and Windows platforms are *not* compatible to each other, so
unless you know your way around C, and can fix the errors gcc/gem hands
you, you'll either have to fix the errors yourself, or lobby the
libnfc/nfc-gem maintainers to fix the issue (if, indeed, this is an
issue for them in the first place).

I do have the binaries for Windows, the problem is where to put them in
order for the RubyGem installer to detect them. By running c:\gem
install nfc I get, amongst other things:

checking for libnfc/libnfc.h in
/opt/local/include,/opt/local/include,/usr/local
/include,C:/Ruby19/include,/usr/include... no

libnfc is missing. please install libnfc: http://libnfc.org/

I can trick this process by creating a folder libnfc inside
C:/Ruby19/include, and then put the libnfc.h there (as the rest of the
files). Doing that I get:

checking for libnfc/libnfc.h in
/opt/local/include,/opt/local/include,/usr/local
/include,C:/Ruby19/include,/usr/include... yes

checking for nfc_connect() in -lnfc... no

libnfc is missing. please install libnfc: http://libnfc.org/

So basically I need to figure out where everything goes, regarding the
libnfc binary files.
 
Ad

Advertisements

P

Phillip Gawlowski

checking for nfc_connect() in -lnfc... no

libnfc is missing. please install libnfc: http://libnfc.org/

So basically I need to figure out where everything goes, regarding the
libnfc binary files.

I'd try putting the libnfc-binary into your %PATH% somewhere, or at
least c:\Ruby\lib\.. since that is, probably, where the compiler is looking.

It's pretty much trial and error for both of us here. :|
 
A

Arrumaco

I do have the binaries for Windows, the problem is where to put them in
order for the RubyGem installer to detect them. By running c:\gem
install nfc I get, amongst other things:

checking for libnfc/libnfc.h in
/opt/local/include,/opt/local/include,/usr/local
/include,C:/Ruby19/include,/usr/include... no

libnfc is missing.  please install libnfc:http://libnfc.org/

I can trick this process by creating a folder libnfc inside
C:/Ruby19/include, and then put the libnfc.h there (as the rest of the
files). Doing that I get:

checking for libnfc/libnfc.h in
/opt/local/include,/opt/local/include,/usr/local
/include,C:/Ruby19/include,/usr/include... yes

checking for nfc_connect() in -lnfc... no

libnfc is missing.  please install libnfc:http://libnfc.org/

So basically I need to figure out where everything goes, regarding the
libnfc binary files.

Try install the Windows components connected as "Administrator". Is
useless a user with the administrator role.
 
A

Augusto Esteves

Arrumaco said:
Try install the Windows components connected as "Administrator". Is
useless a user with the administrator role.

I'm using Windows XP SP3 :/
 
Ad

Advertisements


Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top