Forum: Ruby home of the gems?

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
6559f9b9607a89074ea5e238d31ffbc2?d=identicon&s=25 railsinator (Guest)
on 2005-12-09 03:12
(Received via mailing list)
I'm trying to understand how gems are loaded. Please help.

A little background:

I decided to do some rails development work on a debian system. I didn't
think rails was up to date, so I tried to do a 'gem update rails'. This
failed because I did not have root access. So I installed the gems
locally.
Everthing seemed fine.

I later deleted the local gem directory. Now:

   - "gem list" says there are no gems.
   - "gemwhich rails" says "can't find rails.
   - The application runs fine.

By now it is clear to me that there are gems installed in the default
location. I would like to override this with a local install. I don't
understand how the load path is determined.

Thanks for your help.

-Kelly
10d4acbfdaccb4eee687a428ca00a5d8?d=identicon&s=25 Jim Weirich (weirich)
on 2005-12-09 05:52
railsinator wrote:
> I'm trying to understand how gems are loaded. Please help.
>
> A little background:
>
> I decided to do some rails development work on a debian system. I didn't
> think rails was up to date, so I tried to do a 'gem update rails'. This
> failed because I did not have root access. So I installed the gems
> locally.
> Everthing seemed fine.
>
> I later deleted the local gem directory. Now:
>
>    - "gem list" says there are no gems.
>    - "gemwhich rails" says "can't find rails.
>    - The application runs fine.
>
> By now it is clear to me that there are gems installed in the default
> location. I would like to override this with a local install. I don't
> understand how the load path is determined.
>
> Thanks for your help.

'gem env' will give you some information about your gem environment.
You can control the details here via environment variables:

   GEM_HOME -- Path to gem repository where gems are installed by
default.
   GEM_PATH -- List of paths of gem repositories to be searched.

-- Jim Weirich
6559f9b9607a89074ea5e238d31ffbc2?d=identicon&s=25 railsinator (Guest)
on 2005-12-09 19:05
(Received via mailing list)
Thanks for getting back to me Jim. Please bear with me as I try to
understand how this works.

If I do "gem env" I get a stack trace:

kfelkins@lurch:~/bin$ gem env
/usr/local/lib/site_ruby/1.8/rubygems.rb:194:in `report_activate_error':
Could not find RubyGem sources (> 0.0.0) (Gem::LoadError)
    from /usr/local/lib/site_ruby/1.8/rubygems.rb:136:in `activate'
    from /usr/local/lib/site_ruby/1.8/rubygems.rb:37:in
`require_gem_with_options'
    from /usr/local/lib/site_ruby/1.8/rubygems.rb:31:in `require_gem'
    from
/usr/local/lib/site_ruby/1.8/rubygems/remote_installer.rb:403:in
`sources'
    from /usr/local/lib/site_ruby/1.8/rubygems/gem_commands.rb:897:in
`execute'
    from /usr/local/lib/site_ruby/1.8/rubygems/command.rb:49:in `invoke'
    from /usr/local/lib/site_ruby/1.8/rubygems/cmd_manager.rb:92:in
`process_args'
    from /usr/local/lib/site_ruby/1.8/rubygems/cmd_manager.rb:65:in
`run'
    from /usr/local/lib/site_ruby/1.8/rubygems/gem_runner.rb:9:in `run'
    from /home/kfelkins/bin/gem:17
kfelkins@lurch:~/bin$

Still, my rails app will run when I start it with script/server.

So clearly there are a set of gems installed somewhere. These were
likely
installed via the debian package management system. So how are gems
found?

kfelkins@lurch:~/bin$ echo $GEM_HOME
/home/kfelkins/gem-repository
kfelkins@lurch:~/bin$ ls -l $GEM_HOME
total 16
drwxrwxr-x  2 kfelkins genome 4096 2005-12-08 17:15 cache
drwxrwxr-x  2 kfelkins genome 4096 2005-12-08 17:15 doc
drwxrwxr-x  2 kfelkins genome 4096 2005-12-08 17:15 gems
drwxrwxr-x  2 kfelkins genome 4096 2005-12-08 17:15 specifications
kfelkins@lurch:~/bin$ cd $GEM_HOME/gems
kfelkins@lurch:~/gem-repository/gems$ ls
kfelkins@lurch:~/gem-repository/gems$ echo $GEM_PATH
 kfelkins@lurch:~/gem-repository/gems$

Thanks again.

-Kelly
10d4acbfdaccb4eee687a428ca00a5d8?d=identicon&s=25 Jim Weirich (weirich)
on 2005-12-09 19:53
railsinator wrote:
> Thanks for getting back to me Jim. Please bear with me as I try to
> understand how this works.
>
> If I do "gem env" I get a stack trace:
>
> kfelkins@lurch:~/bin$ gem env
> /usr/local/lib/site_ruby/1.8/rubygems.rb:194:in `report_activate_error':
> Could not find RubyGem sources (> 0.0.0) (Gem::LoadError)
>     from /usr/local/lib/site_ruby/1.8/rubygems.rb:136:in `activate'
>     from /usr/local/lib/site_ruby/1.8/rubygems.rb:37:in
> `require_gem_with_options'
>     from /usr/local/lib/site_ruby/1.8/rubygems.rb:31:in `require_gem'
>     from
> /usr/local/lib/site_ruby/1.8/rubygems/remote_installer.rb:403:in
> `sources'
>     from /usr/local/lib/site_ruby/1.8/rubygems/gem_commands.rb:897:in
> `execute'
>     from /usr/local/lib/site_ruby/1.8/rubygems/command.rb:49:in `invoke'
>     from /usr/local/lib/site_ruby/1.8/rubygems/cmd_manager.rb:92:in
> `process_args'
>     from /usr/local/lib/site_ruby/1.8/rubygems/cmd_manager.rb:65:in
> `run'
>     from /usr/local/lib/site_ruby/1.8/rubygems/gem_runner.rb:9:in `run'
>     from /home/kfelkins/bin/gem:17
> kfelkins@lurch:~/bin$
>
> Still, my rails app will run when I start it with script/server.
>
> So clearly there are a set of gems installed somewhere. These were
> likely
> installed via the debian package management system. So how are gems
> found?
>
> kfelkins@lurch:~/bin$ echo $GEM_HOME
> /home/kfelkins/gem-repository
> kfelkins@lurch:~/bin$ ls -l $GEM_HOME
> total 16
> drwxrwxr-x  2 kfelkins genome 4096 2005-12-08 17:15 cache
> drwxrwxr-x  2 kfelkins genome 4096 2005-12-08 17:15 doc
> drwxrwxr-x  2 kfelkins genome 4096 2005-12-08 17:15 gems
> drwxrwxr-x  2 kfelkins genome 4096 2005-12-08 17:15 specifications
> kfelkins@lurch:~/bin$ cd $GEM_HOME/gems
> kfelkins@lurch:~/gem-repository/gems$ ls
> kfelkins@lurch:~/gem-repository/gems$ echo $GEM_PATH
>  kfelkins@lurch:~/gem-repository/gems$

Ok, it looks like you no longer have the system gem repository in your
GEM_PATH.  Gem can't find its sources gem.

Try adding the original repository to the GEM_PATH.  Perhaps something
like this:

   export GEM_PATH=/usr/local/lib/ruby/gems/1.8

(you might need to tweek the directory for your local system).

Once you add that line, gems should search both your $GEM_HOME
repository and the GEM_PATH repository.  You can add more repositories
to GEM_PATH if you wish.

-- Jim Weirich
6559f9b9607a89074ea5e238d31ffbc2?d=identicon&s=25 railsinator (Guest)
on 2005-12-09 20:05
(Received via mailing list)
I think rails can find the gems. Do you know how rails does it?

I'm not certain that rails uses gems *after* an application has been
created. Rails is installed as a collection of gems, but I guess it is
possible that when you create a rails application all of the required
libraries are copied or linked, though I doubt it.

-kelly
10d4acbfdaccb4eee687a428ca00a5d8?d=identicon&s=25 Jim Weirich (weirich)
on 2005-12-09 20:50
railsinator wrote:
> I think rails can find the gems. Do you know how rails does it?
>
> I'm not certain that rails uses gems *after* an application has been
> created. Rails is installed as a collection of gems, but I guess it is
> possible that when you create a rails application all of the required
> libraries are copied or linked, though I doubt it.

hard to say without knowing more details.  Some possibilities are:

(1) Rails comes in non-gem versions, is one of those installed?
(2) GEM_HOME is an environment variable.  Although your interactive
shell was messed up, it could be that rails is running in a different
window with its own, properly setup, GEM_HOME value. (Possibly started
before you changed it).


-- Jim Weirich
6559f9b9607a89074ea5e238d31ffbc2?d=identicon&s=25 railsinator (Guest)
on 2005-12-09 21:28
(Received via mailing list)
Thanks Jim. I'm going to go with your #1. Since this is a debian system,
my
guess is rails was installed using apt-get. I also run debian on my
personal
systems but I don't use apt-get to install rails -- I use gems.

-Kelly
This topic is locked and can not be replied to.