# [emerge] installer un slot particulier (résolu)

## swilmet

Bonjour,

Mon problème est simple, mais la seule solution que j'ai trouvé n'est vraiment pas élégante…

Je désire installer différents slots de dev-lang/vala : le slot 0.10, 0.12 et 0.14. Je précise que j'utilise l'overlay vala.

Mon premier réflexe :

```
# emerge -av vala-0.10 vala-0.12 vala-0.14

!!! 'vala-0.10' is not a valid package atom.

!!! Please check ebuild(5) for full details.

```

J'essaye alors de donner les versions précises : 0.10.4-r1, 0.12.1 et 0.13.1. Mais ça aurait été trop facile.

Comme le slot 0.14 est en testing, j'ai « dev-lang/vala » dans le fichier /etc/portage/package.accept_keywords.

Je fais donc un simple :

```
# emerge -av vala
```

Et ça m'installe le slot 0.14.

Ensuite je commente la ligne du fichier package.accept_keywords, je refais un « emerge vala » et ça m'installe le slot 0.12.

Et puis, pour installer le slot 0.10, je rajoute « >=dev-lang/vala-0.12 » dans le fichier package.mask.

C'est crade, mais ça marche. J'ai mes trois slots de vala installés.

Quand un slot particulier doit être installé via une dépendance d'un autre paquet, il n'y a pas de problème. Mais quand on veut installer un slot particulier directement, ça pose problème apparemment. D'ailleurs, dans le fichiers world il n'est pas fait référence aux différents slots.

Donc ma question : est-ce qu'il y a une solution plus propre ?Last edited by swilmet on Wed Aug 17, 2011 9:01 pm; edited 1 time in total

----------

## netfab

```

$ emerge -pv dev-lang/vala:0 dev-lang/vala:0.10 dev-lang/vala:0.12

```

pour installer les slots 0, 0.10 et 0.12.

Si tu démasques le slot en testing, même principe avec le slot 0.14.

----------

## swilmet

Ah ben voilà, c'était tout simple. Pourtant en reparcourant la doc, en cherchant « slot » dans la man page d'emerge, etc. je n'ai pas trouvé…

Merci en tout cas.

----------

## Poussin

En fait, dans la page man de emerge, tu as ça

```

emerge [options] [action] [ebuild | tbz2file | file | @set | atom] ...

```

Ce qui risque d'etre intéressant, c'est atom. En descendant un peu, tu as:

```

       atom   An  atom describes bounds on a package that you wish to install.

              See ebuild(5) for the details  on  atom  syntax.   For  example,

              >=dev-lang/python-2.2.1-r2  matches the latest available version

              of  Python  greater  than  or  equal  to  2.2.1-r2.   Similarly,

              <dev-lang/python-2.0  matches  the  latest  available version of

              Python before 2.0.  Note that in many shells you  will  need  to

              escape  characters  such  as  '<'  and  '='; use single- or dou‐

              ble-quotes around the atom to get around escaping problems.

```

allons donc voir man 5 ebuild, comme suggéré. On y trouve (entre autre):

```

 Atom Slots

                            Beginning with EAPI 1, any atom can be constrained to match a specific SLOT. This is accomplished by appending a colon followed by a SLOT:

                            x11-libs/qt:3

```

Et voilà où ça se trouvait! Tu y trouveras aussi plein d'info sur les préfix de tous genre (< >=, mais aussi des trucs moins courants comme  ~) et suffixes ( * )

----------

