On Mon, Oct 18, 2010 at 11:09:47AM +0200, Martin Baehr wrote:
> On Fri, Oct 15, 2010 at 10:18:05AM -0400, Michael K. Johnson wrote:
> > > one point i hope to find is that conary gives feedback explaining why
> > > there is nothing to update.
> > That's a flaw, I think.  We haven't wired things up enough to recognize
> > lines which are no-ops.  I could see something like:
> > warning: "update conary" (line 7) had no effect
> > However, it's harder to try to come up with a way to explain the reason
> > in a more helpful way since it basically always means "the impact of
> > this operation was already represented at this point in the system
> > model" which is a very wordy thing to say...
> 
> what i'd like it to say is more like: if runtime is not installed, then
> probably that is what the user wanted to do. so suggest to use install
> instead. 

I don't see that the runtime component heuristic has sufficient
generality to be the basis of either an error or a warning.  There
is no guarantee generally that a package even has a :runtime component.

In general, "conary update foo" will normally do what you want if,
at the point in the model that you run it, "foo" is not in the install
set at all.  If it is in the install set, then it probably won't.
This is why I propose no-op as being the most likely way to recognize
this problem.  (Not that we have the wiring right now to handle that.)

> > > is the following problem solved?
> > > $ foo;
> > > command not found
> > > $ sudo conary update foo
> > > foo is uptodate
> > > $ conary q foo:
> > > foo:lib
> > > $ sudo conary sync foo
> > > (installs :devel, :devellib and other stuff i don't want)
> > > 
> > > the expected solution is that:
> > > 'conary install foo' will always install :runtime and related troves
> > > regardless of wheter foo:lib is already there or not.
> > 
> > Yes, exactly.  That is why we have install.  And, in fact, that's why I
> > documented that for system model you normally want "install", not "update":
> > $ sudo conary install foo
> > should do what you want.
> 
> it doesn't work:
> # conary q skype
> skype was not found
> # conary update skype
> The following updates will be performed:
>     Install skype=2.1.0.81-0.9-1
> continue with update? [Y/n]
> Applying update job:
>     Install skype=2.1.0.81-0.9-1
> # conary install skype
> (that does nothing now)
> # conary q skype
> skype=2.1.0.81-0.9-1
> # conary q skype --troves
> skype=2.1.0.81-0.9-1
> # conary rb 1
> The following actions will be performed:
> Job 1 of 1
>     Erase   skype=foresight.rpath....@fl:2-qa/2.1.0.81-0.9-1
> continue with rollback? [y/N] y
> Applying update job:
>     Erase   skype=2.1.0.81-0.9-1
> # conary install skype
> The following updates will be performed:
>     Install skype(:config :data :runtime)=2.1.0.81-0.9-1
> continue with update? [Y/n]

I don't follow this.  You said, "it doesn't work" and then, as
far as I can tell, demonstrated that "conary install skype" does
exactly what you want.  Can you explain what it was that conary did
after you ran "conary install skype" that differed from your
expectation?

Thanks!
_______________________________________________
Foresight-devel mailing list
Foresight-devel@lists.rpath.org
http://lists.rpath.org/mailman/listinfo/foresight-devel

Reply via email to