1 |
Apparently, though unproven, at 19:13 on Thursday 28 October 2010, Jarry did |
2 |
opine thusly: |
3 |
|
4 |
> Hi, |
5 |
> how can I unmask (generally) certain M~ masked package and |
6 |
> mask one particular version of that package? I want to use |
7 |
> that package, but skip just one "x.y.z" upgrade, and continue |
8 |
> with any future higher upgrades ("x.y.z+1"). |
9 |
> |
10 |
> So I entered tree/package in /etc/portage/package.unmask, and |
11 |
> tree/package_x.y.z into /etc/portage/package.mask. But this |
12 |
> does not work, that "x.y.z" version still wants to be installed... |
13 |
|
14 |
portage is fighting you. |
15 |
|
16 |
unmask has priority over mask, so unmasking everything and masking a specific |
17 |
version will not work - the first rule will prevail. |
18 |
|
19 |
You must come up with some prefix operators for unmask that will exclude the |
20 |
one you want to mask. For example, say you wanted to mask version 4: |
21 |
|
22 |
unmask: |
23 |
<cat/package-4 |
24 |
>cat/package-4 |
25 |
|
26 |
mask: |
27 |
=cat/package-4 |
28 |
|
29 |
But this is fragile and will break way too often. What if you later also want |
30 |
to mask version 7? portage doesn't give you a boolean AND or any way I know of |
31 |
to specify a range of versions. So you have to keep an eye on it manually, and |
32 |
tweak as necessary. Or you could just list exactly every version for which |
33 |
there's an ebuild and add it to the appropriate package.* file |
34 |
|
35 |
This is a definite shortcoming in portage, it warrants a feature request at |
36 |
b.g.o. |
37 |
|
38 |
-- |
39 |
alan dot mckinnon at gmail dot com |