Gentoo Archives: gentoo-user

From: kwkhui@××××.net
To: gentoo-user@l.g.o
Subject: Re: [gentoo-user] emerge --update : how to keep it going?
Date: Sun, 02 Dec 2012 15:00:43
Message-Id: 20121202225847.1a6e635d@gentoo-main.kwkh-home
In Reply to: Re: [gentoo-user] emerge --update : how to keep it going? by Alan McKinnon
1 On Sun, 2 Dec 2012 16:12:02 +0200
2 Alan McKinnon <alan.mckinnon@×××××.com> wrote:
3
4 > On Sat, 01 Dec 2012 19:58:45 +0000
5 > Graham Murray <graham@×××××××××××.uk> wrote:
6 >
7 > > Volker Armin Hemmann <volkerarmin@××××××××××.com> writes:
8 > >
9 > > > --keep-going does not help you, if the emerge does not start
10 > > > because of missing dep/slot conflict/blocking/masking whatever...
11 > >
12 > > Though it would be nice if there was some flag, probably mainly of
13 > > use with either ' -u @world' or --resume, to tell portage to get on
14 > > and merge what it can and leave any masked packages or those which
15 > > would generate blockers or conflicts.
16 > >
17 >
18 > That is a terribly bad idea, and you need to have a fairly deep
19 > understanding of IT theory to see it (which is why so few people see
20 > it). I don't know which camp you are in.
21 >
22 > The command is to emerge world, and it's supposed to be determinate,
23 > i.e. when it's ready to start you can tell what it's going to do, and
24 > that should be what you told it to do, no more and no less[1]
25 >
26 > the command is
27 > "emerge world"
28 > not
29 > "emerge the-bits-of-world-you-think-you-can-deal-with"
30 >
31 > If portage cannot emerge world and fully obey what root told it to do,
32 > then portage correctly refuses to continue. It could not possibly be
33 > any other way, as eg all automated build tools (puppet, chef and
34 > friends, even flameeyes's sandbox) break horribly if you do it any
35 > other way. Life is hard enough dealing with build failures without
36 > adding portage do somethign different to what it was told into the
37 > mix.
38 >
39 > [1] "determinate" excludes build failures, as those are not
40 > predictable. Dep graph failures happen before the meaty work begins.
41 >
42 >
43 >
44
45 While there are good reasons not to implement it in portage itself, you
46 can implement it with a bit of help from shell scripts telling portage
47 what to do.
48
49 Do an "emerge -uDpv world", use sed or awk or whatever to replace the
50 beginning [ebuild ...] and whatever come after the package
51 name&version, and finally loop "emerge -1 =${package}" for each package
52 in that list. Now provided you discard the return value of emerge, if
53 such ${package} will give you something that portage doesn't think is a
54 good idea (e.g. unsatisfiable dependencies), the loop will go on to the
55 next package instead of completely halting.
56
57 The shell script is thus left as an exercise.
58
59 The usual warning applies:- it can be done doesn't necessarily mean it
60 is a good idea to do it.
61
62 Kerwin.

Attachments

File name MIME type
signature.asc application/pgp-signature