please correct me if i am mistaken. if i'm using a gems installrf app
that has gem dependencies, rubygems will prevent it from working unless
those other gems are installed? even if those other apps are install
manually?
thanks,
t.
please correct me if i am mistaken. if i'm using a gems installrf app
that has gem dependencies, rubygems will prevent it from working unless
those other gems are installed? even if those other apps are install
manually?
thanks,
t.
Trans said:
please correct me if i am mistaken. if i'm using a gems installrf app
that has gem dependencies, rubygems will prevent it from working unless
those other gems are installed? even if those other apps are install
manually?
Just to be clear ... there are two kinds of dependencies.
There are the declared dependencies in the gem metadata that are used to
identify additional gems that might be needed at install time. A --force
flag on the gem command will override these declared dependencies and
allow you to install even if the other gems are not available.
The other kind of dependency is a require_gem statement in the runtime
code. If a require_gem statement cannot find a gem that matches the name
and requested version constraint, then an exception will be generated.
However, most applications should *not* be using require_gem, even if they
are installed by gems. You should use require_gem _only_ if you wish to
require a particular version of a library.
--
-- Jim Weirich jim@weirichhouse.org http://onestepback.org
-----------------------------------------------------------------
"Beware of bugs in the above code; I have only proved it correct,
not tried it." -- Donald Knuth (in a memo to Peter van Emde Boas)
Thanks Jim,
That's what I thought. But when I was trying to run Nitro, rubygems
reported that nano/mega wasn't installed. But they were manually
installed. When I installed the gems the errors went away. So then I
egrep the nitro gem dir and there is no 'require_gem'. In fact I
egrepped my enitre gems dir and only Rake has two uses of require_gem.
So I don't understand.
T.