building ruby from source

R

Rajinder Yadav

I removed my older ruby package from my ubuntu, built ruby from source
successfully. added the sym link from ruby1.8 -> ruby in /usr/bin/

however from the IRB I'm getting errors it can't find my gems? how do I
fix this, I assume I need to define some environment variables?


irb(main):003:0> require 'rubygems'
LoadError: no such file to load -- rubygems
from (irb):3:in `require'
from (irb):3
from :0
irb(main):004:0> require 'grackle'
LoadError: no such file to load -- grackle
from (irb):4:in `require'
from (irb):4
from :0

--
Kind Regards,
Rajinder Yadav

http://DevMentor.org

Do Good! - Share Freely
 
P

Phillip Gawlowski

I removed my older ruby package from my ubuntu, built ruby from source
successfully. added the sym link from ruby1.8 -> ruby in /usr/bin/

however from the IRB I'm getting errors it can't find my gems? how do I
fix this, I assume I need to define some environment variables?

http://docs.rubygems.org/read/chapter/3

You need to install RubyGems.
 
R

Rajinder Yadav

Phillip said:

I already had gems installed? are you telling me I got to repeat the
entire process to install gem and then all the gem packages?

yadav@KubuntuX64:$ gem list

*** LOCAL GEMS ***

actionmailer (2.3.5)
actionpack (2.3.5)
activerecord (2.3.5)
activeresource (2.3.5)
activesupport (2.3.5)
cgi_multipart_eof_fix (2.5.0)
curb (0.6.0.0)
daemons (1.0.10)
fastthread (1.0.7)
gem_plugin (0.2.3)
grackle (0.1.7)
haml (2.2.15)
haml-edge (2.3.100)
hpricot (0.8.2)
json (1.2.0)
mechanize (0.9.3)
mime-types (1.16)
mongrel (1.1.5)
nokogiri (1.4.1)
oauth (0.3.6)
patron (0.4.4)
rack (1.0.1)
rails (2.3.5)
rake (0.8.7)
ruby-hmac (0.3.2)
sqlite3-ruby (1.2.5)


--
Kind Regards,
Rajinder Yadav

http://DevMentor.org

Do Good! - Share Freely
 
P

Phillip Gawlowski

I already had gems installed? are you telling me I got to repeat the
entire process to install gem and then all the gem packages?

Apparently, if your compiled-from source Ruby cannot find "rubygems". ;)

Most likely, installing RubyGems should be enough.

How did you remove Ruby? Using apt-get? Which options? Or by other means?
 
R

Rajinder Yadav

Phillip said:
Apparently, if your compiled-from source Ruby cannot find "rubygems". ;)

Most likely, installing RubyGems should be enough.

How did you remove Ruby? Using apt-get? Which options? Or by other means?

sudo aptitude remove ruby


--
Kind Regards,
Rajinder Yadav

http://DevMentor.org

Do Good! - Share Freely
 
R

Rajinder Yadav

Rilindo said:
You can try to add the path to your current gems:

export PATH=/var/lib/gems/1.8/bin:$PATH
See:

is there another location rubygems can be install? I did an ls and found
the following entries. should there not be more stuff here bases on my
gem list showing??

yadav@KubuntuX64:$ ls -l
total 20
-rwxr-xr-x 1 root root 349 2009-11-30 02:36 gpgen
-rwxr-xr-x 1 root root 351 2009-11-30 02:49 mongrel_rails
-rwxr-xr-x 1 root root 338 2009-11-30 01:09 rackup
-rwxr-xr-x 1 root root 339 2009-11-30 01:09 rails
-rwxr-xr-x 1 root root 336 2009-11-30 01:08 rake

(truncated)

--
Kind Regards,
Rajinder Yadav

http://DevMentor.org

Do Good! - Share Freely
 
P

Phillip Gawlowski

sudo aptitude remove ruby

Right, I'm a little foggy here (It's been a while since I last touched
any from of *NIX).

However, it seems that you now have a rather curious state for your Ruby.

For one, Ruby is split into several packages (ruby, irb, ruby-dev,
libruby, ri; off the top of my head), and a couple of Ruby packages
exit, too, most famously RubyGems.

However, each distribution (more or less), tweaks their offered packages
to conform to the distribution's file system layout.

These tweaks are not necessarily identical to what a build from source
provides.

So, it seems that your Ruby install is in an inconsistent state, where
Ruby, and RubyGems don't "know" about each other, since they use
different directories.

A solution would be to do a "sudo aptitude remove ruby*" to remove
anything the distro installed, re-do "sudo make install" in your Ruby
source directory, and then install RubyGems and your desired gems (it
might be enough to monitor the filesystem, and see which directories
"make install" and the RubyGems install create, and to copy your gems
into this new directory.

Or:

You remove compiled-Ruby with the hopefully existing "make uninstall",
and then reinstall Ruby from Ubuntu's repositories, and hope that fixes
everything (it should).

Aside: A tool I found handy when installing from source is Checkinstall:
http://checkinstall.izto.org/ allowing to introduce software compiled
from source to a distribution's packet management system. :)
 
P

Phillip Gawlowski

is there another location rubygems can be install? I did an ls and found
the following entries. should there not be more stuff here bases on my
gem list showing??

As many possibilities as there are Linux distributions. ;)

Usually, it is "/[var|opt]/lib/ruby/1.8/gems/". The particulars depend
on your distribution.
 
R

Rajinder Yadav

Phillip said:
is there another location rubygems can be install? I did an ls and found
the following entries. should there not be more stuff here bases on my
gem list showing??

As many possibilities as there are Linux distributions. ;)

Usually, it is "/[var|opt]/lib/ruby/1.8/gems/". The particulars depend
on your distribution.

I've given up the battle and reinstalling rubygems ;)


--
Kind Regards,
Rajinder Yadav

http://DevMentor.org

Do Good! - Share Freely
 
R

Rajinder Yadav

Phillip said:
Right, I'm a little foggy here (It's been a while since I last touched
any from of *NIX).

However, it seems that you now have a rather curious state for your Ruby.

For one, Ruby is split into several packages (ruby, irb, ruby-dev,
libruby, ri; off the top of my head), and a couple of Ruby packages
exit, too, most famously RubyGems.

However, each distribution (more or less), tweaks their offered packages
to conform to the distribution's file system layout.

These tweaks are not necessarily identical to what a build from source
provides.

So, it seems that your Ruby install is in an inconsistent state, where
Ruby, and RubyGems don't "know" about each other, since they use
different directories.

A solution would be to do a "sudo aptitude remove ruby*" to remove
anything the distro installed, re-do "sudo make install" in your Ruby
source directory, and then install RubyGems and your desired gems (it
might be enough to monitor the filesystem, and see which directories
"make install" and the RubyGems install create, and to copy your gems
into this new directory.

Or:

You remove compiled-Ruby with the hopefully existing "make uninstall",
and then reinstall Ruby from Ubuntu's repositories, and hope that fixes
everything (it should).

Aside: A tool I found handy when installing from source is Checkinstall:
http://checkinstall.izto.org/ allowing to introduce software compiled
from source to a distribution's packet management system. :)

Phillip,

thanks for helping out. A simple reinstall of rubygems and the gems is
all that was needed to restore the state. (I was trying to avoid this
being lazy).

RI is happy again, gems are being found with no issue.

--
Kind Regards,
Rajinder Yadav

http://DevMentor.org

Do Good! - Share Freely
 
W

Walton Hoops

I already had gems installed? are you telling me I got to repeat the
entire process to install gem and then all the gem packages?

yadav@KubuntuX64:$ gem list

*** LOCAL GEMS ***
I am about 75% sure you have rubygems installed through Ubuntu. I bet
if you do
'sudo apt-get remove rubygems' (I think that's right) you'll see what I
mean. This
Debian distro of rubygems won't work with the source distro of Ruby (at
least
not easily). You'll need to remove the one installed through apt and
install from source
as mentioned above.
 
R

Rick DeNatale

I removed my older ruby package from my ubuntu, built ruby from source
successfully. added the sym link from ruby1.8 -> ruby in /usr/bin/

however from the IRB I'm getting errors it can't find my gems? how do I f= ix
this, I assume I need to define some environment variables?


irb(main):003:0> require 'rubygems'
LoadError: no such file to load -- rubygems
=A0 =A0 =A0 =A0from (irb):3:in `require'
=A0 =A0 =A0 =A0from (irb):3
=A0 =A0 =A0 =A0from :0
irb(main):004:0> require 'grackle'
LoadError: no such file to load -- grackle
=A0 =A0 =A0 =A0from (irb):4:in `require'
=A0 =A0 =A0 =A0from (irb):4
=A0 =A0 =A0 =A0from :0

Despite some of the kind suggestions from others, the particular file
rubygems.rb should be in

.../lib/ruby/site_ruby/1.8/

if Ruby and rubygems are both installed. Note that this is not the
gem binary, but rather the file which allows your program to load
gems.

The ... stands in for an installation path which varies from system to
system. But should be something like /usr or /usr/local on a Debian
based system. Actually self installed stuff should be in /user/local
IIRC so as not to collide with packaged stuff.


--=20
Rick DeNatale

Blog: http://talklikeaduck.denhaven2.com/
Twitter: http://twitter.com/RickDeNatale
WWR: http://www.workingwithrails.com/person/9021-rick-denatale
LinkedIn: http://www.linkedin.com/in/rickdenatale
 

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

Members online

No members online now.

Forum statistics

Threads
473,982
Messages
2,570,190
Members
46,736
Latest member
zacharyharris

Latest Threads

Top