# Utilité de --oneshot

## drieu

Bonjour,

J' ai eu le conflit suivant :

```

x11-proto/glproto:0

  (x11-proto/glproto-1.4.17::gentoo, ebuild scheduled for merge) pulled in by

    >=x11-proto/glproto-1.4.17 required by (x11-base/xorg-server-1.15.0::gentoo, ebuild scheduled for merge)

  (x11-proto/glproto-1.4.16::gentoo, installed) pulled in by

    (no parents that aren't satisfied by other packages in this slot)
```

Je l'ai résolu en faisant :

```
 emerge --oneshot =x11-proto/glproto-1.4.17
```

Cependant, j'ai du mal à voir l'utilité de l' option --oneshot lors d'une résolution de conflit.

En lisant, la documentation, j'ai vu que le package qui est compilé avec --oneshot n'était pas

ajouté dans l'arbre de dépendance autrement dit dans /var/lib/portage/world

Cependant lorsque je regarde ce fichier, je ne vois que des noms de package sans numéro de version.

Donc si j'utilise l'option --oneshot, j'aurai une ligne x11-proto/glproto dans /var/lib/portage/world.

En quoi cela gène t'il ?

----------

## aCOSwt

 *drieu wrote:*   

> j'ai du mal à voir l'utilité de l' option --oneshot lors d'une résolution de conflit.

 

Et tu as bien raison, car --oneshot n'y est strictement pour rien dans la résolution du conflit.

Tu aurais emerge glproto tout court, ton conflit aurait aussi été résolu.

 *drieu wrote:*   

> En lisant, la documentation, j'ai vu que le package qui est compilé avec --oneshot n'était pas
> 
> ajouté dans l'arbre de dépendance autrement dit dans /var/lib/portage/world
> 
> Cependant lorsque je regarde ce fichier, je ne vois que des noms de package sans numéro de version.

 

- Si tu emerge package alors tu verras package dans le fichier.

- Si tu emerge =package-V.R.B alors tu verras package-V.R.B dans le fichier

- Si tu emerge --oneshot package alors... package n'apparaîtra pas dans le fichier. 

Si ton package est listé dans /var/lib/portage/world, il ne sera jamais désinstallé par un emerge --deplean.

=> si il ne s'agit que d'une dépendance alors ce package encombrera toujours ton système même si plus aucun autre package ne dépend de lui,

=> Même si tu n'en a plus besoin, il (et ses dépendances) seront systématiquement mises à jour lors d'un emerge world.

=> --oneshot est toujours pertinent lorsque tu veux reconstruire une dépendance

--noreplace =package-V.R.B est utilisé essentiellement pour les sys-kernel/*sources afin d'éviter qu'une mise à jour de world + depclean ne nettoye inconsidérement les sources de tes noyaux utiles.

----------

## drieu

Un grand merci pour ta réponse claire et consise   :Wink: 

----------

