1 |
Paul Stear posted on Mon, 07 Feb 2011 13:27:06 +0000 as excerpted: |
2 |
|
3 |
> On Monday 07 February 2011 12:27:16 Paul Stear wrote: |
4 |
>> Hi, |
5 |
>> I am now using a new motherboard and processor - change from amd duo to |
6 |
>> intel quad. |
7 |
>> All seems to be working well except my previous post ref eth3. |
8 |
>> However, I am having problems updating my programs. |
9 |
>> eix-sync went well and portage updated to 2.1.9.37 |
10 |
>> I then do an emerge -auvtDN --keep-going world and I get hundreds of |
11 |
>> blocked packages for kde e.g. |
12 |
>> [blocks B ] kde-base/kwrite:4.5[-kdeprefix] ("kde-base/kwrite:4.5[- |
13 |
>> kdeprefix]" is blocking kde-base/kwrite-4.6.0) |
14 |
>> |
15 |
>> I seem to have the current kde 4.5.5 required by @selected e.g. |
16 |
>> |
17 |
>> (kde-base/kdebase-meta-4.5.5, installed) pulled in by |
18 |
>> kde-base/kdebase-meta required by @selected |
19 |
>> kde-base/kdebase-meta:4.5 required by @selected |
20 |
>> |
21 |
>> What is @selected, I have never heard of this before, do I need to |
22 |
>> change something? I can't seem to find this referenced in any |
23 |
>> documentation. |
24 |
|
25 |
The portage 2.2 series has had sets support for quite some time, but it's |
26 |
new to the 2.1 series... new enough this is the first I'd heard of sets |
27 |
support being unmasked to ~arch (I've been running the masked 2.2 series), |
28 |
tho I've not synced since Feb 4. |
29 |
|
30 |
You'll want to read up on sets support. In short, the @ prefix indicates |
31 |
a set, with @system and @world special-cased for backward compatibility to |
32 |
be usable without the @ (so as simply system and world, the way it has |
33 |
worked for years) as well. @selected is /just/ the stuff in world, |
34 |
excluding system, while @world continues to include @system as well, just |
35 |
like it always did before the @ notation. |
36 |
|
37 |
What sets makes possible, tho, is essentially, subsets of the world file |
38 |
treated as a single unit, aka "set". An example of how it can be used are |
39 |
the kde sets, long kept in the overlay until an unmasked portage with sets |
40 |
support hit the tree (sets support was masked for quite some time due to |
41 |
controversy over the exact format, as paludis apparently implemented sets |
42 |
first and a bit differently), but, now with an at least ~arch portage with |
43 |
sets, presumably the kde sets will be (are? as I said I've not synced in a |
44 |
few days) in-tree as well, and one could emerge @kdebase, for instance, to |
45 |
get the whole set of packages found in the kdebase monolithic tarball from |
46 |
upstream. |
47 |
|
48 |
Or take this as a sysadmin example: I have no world file at all. |
49 |
Instead, portage tracks the sets I have installed in the world_sets file, |
50 |
and I edit individual sets by function, kept in /etc/portage/sets, |
51 |
instead. Here's my listing. (JED are my initials, used here to ensure |
52 |
that any sets I create manually don't get confused with possible tree |
53 |
sets. My kde sets are similar to the ones from the overlay, but with a |
54 |
few packages commented as unneeded, so they don't get installed.) The |
55 |
contents of a couple of the sets files follow, as examples: |
56 |
|
57 |
$>>cat /var/lib/portage/world_sets |
58 |
@jed.admin |
59 |
@jed.bible |
60 |
@jed.dev |
61 |
@jed.fonts |
62 |
@jed.kde.base.kdeartwork |
63 |
@jed.kde.base.kdebase.apps |
64 |
@jed.kde.base.kdebase.runtime |
65 |
@jed.kde.base.kdebase.workspace |
66 |
@jed.kde.base.kdegames |
67 |
@jed.kde.base.kdegraphics |
68 |
@jed.kde.base.kdemultimedia |
69 |
@jed.kde.base.kdeoptional |
70 |
@jed.kde.base.kdepim |
71 |
@jed.kde.base.kdetoys |
72 |
@jed.kde.base.kdeutils |
73 |
@jed.kde.misc |
74 |
@jed.kde.plasmoids |
75 |
@jed.media |
76 |
@jed.misc |
77 |
@jed.net |
78 |
@jed.portage |
79 |
@jed.utils |
80 |
@jed.xorg |
81 |
|
82 |
$>>ls -1 /etc/portage/sets |
83 |
jed.admin |
84 |
jed.bible |
85 |
jed.dev |
86 |
jed.fonts |
87 |
jed.kde.base.kdeartwork |
88 |
jed.kde.base.kdebase.apps |
89 |
jed.kde.base.kdebase.runtime |
90 |
jed.kde.base.kdebase.workspace |
91 |
jed.kde.base.kdegames |
92 |
jed.kde.base.kdegraphics |
93 |
jed.kde.base.kdemultimedia |
94 |
jed.kde.base.kdeoptional |
95 |
jed.kde.base.kdepim |
96 |
jed.kde.base.kdetoys |
97 |
jed.kde.base.kdeutils |
98 |
jed.kde.misc |
99 |
jed.kde.plasmoids |
100 |
jed.media |
101 |
jed.misc |
102 |
jed.net |
103 |
jed.portage |
104 |
jed.qt4.4.7.0 |
105 |
jed.qt4.4.7.1 |
106 |
jed.qt4.main |
107 |
jed.utils |
108 |
jed.xorg |
109 |
|
110 |
$>>cat /etc/portage/sets/jed.xorg |
111 |
media-video/xvattr |
112 |
x11-apps/mesa-progs |
113 |
x11-apps/xdpyinfo |
114 |
x11-apps/xev |
115 |
x11-apps/xfontsel |
116 |
x11-apps/xkill |
117 |
x11-apps/xmodmap |
118 |
x11-apps/xvidtune |
119 |
x11-apps/xwininfo |
120 |
x11-base/xorg-server |
121 |
x11-misc/sux |
122 |
x11-themes/gentoo-xcursors |
123 |
x11-themes/xcursor-themes |
124 |
|
125 |
$>>cat /etc/portage/sets/jed.kde.base.kdeoptional |
126 |
|
127 |
#kde-base/kdelirc |
128 |
kde-base/kfloppy |
129 |
#kde-base/kppp |
130 |
#kde-base/policykit-kde |
131 |
|
132 |
$>> |
133 |
|
134 |
See? Each set is basically a subset of the much longer list formerly in |
135 |
my worldfile. Put all the worldfile packages in sets, list them in the |
136 |
world_sets file, and the worldfile itself can be emptied! =:^) |
137 |
|
138 |
Note the comment hashes in that last one. Every time kde 4.x bumps (so |
139 |
4.5 to 4.6, but not 4.5.4 to 4.5.5, for example), I diff my jed.kde.* |
140 |
files against the ones (that were) in the overlay, seeing what got added |
141 |
or removed, and doing the same to my sets. Thus, I comment lines for |
142 |
packages I don't want to install, instead of removing them, so the side-by- |
143 |
side diffs line up better and it's easier to see what changed between the |
144 |
two versions. |
145 |
|
146 |
As I said, I don't (normally) have anything in my world file at all -- |
147 |
it's now all in the individual sets I've setup. I set it up this way when |
148 |
I was setting up my netbook, a bit over a year ago (sets have been |
149 |
available in the 2.2 series that long), as sorting my (previous) world |
150 |
file into sets based on functional categories, and then going thru each |
151 |
one to see what changes I wanted to make to that category as opposed to |
152 |
the list on my workstation, was far easier than trying to tackle the |
153 |
original huge world file in one go. |
154 |
|
155 |
However, now that I have it setup that way, I do use the world file as a |
156 |
sort of "package purgatory", when I'm testing something new. My default |
157 |
emerge scripts always use -1, so the package isn't added to my world file |
158 |
immediately. I can then test the package a bit and if I'm sure I want to |
159 |
keep it, I add it to the appropriate set. If however I want to test it a |
160 |
bit more, I add it to the world file instead. That way, portage knows I |
161 |
want to track upgrades if they appear, and won't remove the package when I |
162 |
--depclean (which I do after every update session, keeping the cruft from |
163 |
building up), but the package is still in the "purgatory" of the world |
164 |
file, so I know it's still in testing. After a few days or weeks, I'll |
165 |
then either emerge -C the package, thus removing it from the world file, |
166 |
or move the entry to the appropriate set, depending on whether I've |
167 |
decided to keep the package permanently or not. |
168 |
|
169 |
> Sorry to reply to my own post but it seems that my world file had all of |
170 |
> the kde programs listed with ":4.5" |
171 |
> I don't know how this has happened but I removed the :4.5 from the lines |
172 |
> and now if I run an emerge I get the following:- |
173 |
> |
174 |
> Total: 268 packages (24 upgrades, 12 new, 228 in new slots, 4 |
175 |
> reinstalls, 230 uninstalls), Size of downloads: 424,321 kB |
176 |
> Conflict: 459 blocks |
177 |
> |
178 |
> Would you like to merge these packages? [Yes/No] |
179 |
> |
180 |
> Why would 228 packages be installed in new slots? |
181 |
|
182 |
Gentoo/kde (which is where most of those 228 new-slots are, if you look) |
183 |
uses the slots for (at least) two reasons. |
184 |
|
185 |
First, there's the (unsupported and normally use.masked, but used for |
186 |
testing) kdeprefix USE flag, which allows multiple slots to be installed |
187 |
at the same time, thus allowing testing of unstable versions while the |
188 |
stable version remains actually installed and used for normal tasks. The |
189 |
reason this is unsupported is that there's a number of complications and |
190 |
breakages introduced by this flag, as kde4 really isn't designed to work |
191 |
this way. The problems can normally be worked around, but the hassle and |
192 |
technical knowledge level for doing so is such that they don't support it |
193 |
for normal users, thus the flag is use.masked and unmasking/activating it |
194 |
unsupported, but it remains available for those, primarily gentoo/kde devs |
195 |
using it as I said for testing, that want to risk it and can tolerate a |
196 |
bit of breakage and hassle in ordered to do so. |
197 |
|
198 |
Second, slot-specified dependencies vastly simplify things, as it's then |
199 |
possible to depend on, for example, kdelibs:4.6 instead of specifying all |
200 |
the individual 4.6 versions (including 4.5.98, etc, prereleases, in the |
201 |
4.6 slot but that =kdelibs-4.6* wouldn't work with). |
202 |
|
203 |
Complicating things especially for the listing is that the various slots |
204 |
generally block each other, as well, tho as explained above, unmasking and |
205 |
setting USE=kdeprefix would eliminate most of the blockages... at the |
206 |
expense of various other breakages, thus the use.mask and blockages in the |
207 |
first place. |
208 |
|
209 |
Granted, hundreds of package-blocks looks overwhelming at first, but once |
210 |
you understand what's actually happening and why, fortunately, it's |
211 |
generally much simpler to fix than all those hundreds of blocks would seem |
212 |
to suggest at first glance. In your case, it was a simple matter of |
213 |
removing those slot-specifiers in your world file. =:^) |
214 |
|
215 |
-- |
216 |
Duncan - List replies preferred. No HTML msgs. |
217 |
"Every nonfree program has a lord, a master -- |
218 |
and if you use the program, he is your master." Richard Stallman |