# [portage] "retirer" 1 paquet sans le desinstaller (résolu)

## El_Goretto

Bonjour,

Avec l'ebuild I2P de zugaina qui date de 500 avec Jean-Claude mais est mise à jour régulièrement tous les 6 mois avec 3 mois de retard, je me prends donc régulièrement la tête car pour le coup j'utilise le système d'autoupdate I2P intégré au soft. Qui marche très bien, sauf quand portage s'emmêle ou s'en mêle, selon. A ce moment là, c'est le drame.

Bref, l'idée est que je voudrais "sortir" I2P de mon système: faire en sorte que pour portage elle ne soit plus dans world.

Ma question est donc: virer l'entrée dans /var/lib/portage/world et /var/db/pkg/net-p2p/i2p-xxxx est-il suffisant?

--

edit: la solution adoptée est plus une autre façon de répondre à mon problème plutôt que faire réellement une "désinstallation soft".

----------

## Xytovl

Je n'ai jamais fait ça, mais http://www.gentoo.org/doc/fr/handbook/handbook-x86.xml?part=3&chap=5#doc_chap3 semble y répondre, ajoute le à package.provided

----------

## El_Goretto

Niet, je connais déjà package.provided, qui fait à peu près l'inverse de ce que je veux faire. Lui il fait semblant qu'un package est installé, alors que moi je veux faire semblant qu'il ne l'est pas  :Smile: 

----------

## Tom_

Au pire, installe le à la main! Et tu fais les updates à la main quand ca te plait! Ce n'est pas la méthode la plus propre je dois avouer!

----------

## xaviermiller

Et emerge --deselect ou --unselect (suis pas sur Gentoo pour le moment) ?

----------

## engil

Euh, un emerge -C && emerge --oneshot ? De cette manière il n'est pas updaté (ouch  :Razz: ) avec le World ?

----------

## xaviermiller

Alors, ma solution est plus meilleure.

Voire

```
$EDITOR /var/lib/portage/world
```

ou 

```
grep -v mon_paquet /var/lib/portage/world > /var/lib/portage/world
```

----------

## truc

```
grep -v mon_paquet /var/lib/portage/world > /var/lib/portage/world
```

Non, non, non, ça ne marche pas ça! ( je te déconseille de l'essayer telle quelle d'ailleurs...)

Moi j'suis plus de l'avis d'El_Goretto, vire le du fichier world certes, mais aussi l'entrée dans la /var/db/pkg, tu auras peut-être besoin d'ajouter quelques unes de ses dépendances à ton fichier world histoire qu'elles ne soient pas désinstallées à ton insue...

----------

## CryoGen

Copier l'ebuild qui marche et le mettre dans un overlay local en le passant en version -99.9 ? Il ne sera jamais mis à jour comme ca  :Smile: 

----------

## truc

 *CryoGen wrote:*   

> Copier l'ebuild qui marche et le mettre dans un overlay local en le passant en version -99.9 ? Il ne sera jamais mis à jour comme ca 

 

J'avoue... C'est sans doute pas plus mal! tu pourras désinstaller le bouzin en plus. donc c'est tout bénef! Bien ouej..  :Smile: 

----------

## kernelsensei

Je ne suis pas sûr de comprendre le probleme...

Tu veux gérer l'update d'un paquet manuellement ? Copie du paquet en overlay puis tu masques les version supérieures à celle actuellement installée. (un peu plus propre que le renommage en -9999)

Ou alors, au lieu de masquer, tu désinstalles et tu reinstalles a la mano  :Wink: 

----------

## El_Goretto

Mais c'est que je suis un fénéant moi, installer à la mano, pfff, trop long  :Smile: 

Ok, va  pour le tritouillage via overlay, comme ça si un jour ya une ebuild correcte, je peux re-basculer. 

Merci messieurs  :Wink: 

(sinon pour ma culture, ma proposition de manip', elle aurait marché d'après vous? Portage stocke des infos sur les ebuild installées encore autre part?)

----------

## ghoti

 *El_Goretto wrote:*   

> Ok, va  pour le tritouillage via overlay, comme ça si un jour ya une ebuild correcte, je peux re-basculer.

 

Heu mais qu'est-ce qui te gêne dans la solution de kernelsensei ?   :Shocked:   :Shocked: 

Il est tout de même plus simple de masquer des versions indésirables que de tripoter des overlays, non ?

Malgré tes affirmations, tu n'es pas assez fainéant amha !  :Wink:   :Laughing: 

 *Quote:*   

> (sinon pour ma culture, ma proposition de manip', elle aurait marché d'après vous?

 

Pour f**tre le b**del, c'est sûrement aussi efficace que d'installer à la mano !  :Wink: 

----------

## El_Goretto

@ghoti: on s'est mal compris, le tritouillage de l'overlay (ok, en 2.0 avec un peu plus de style) c'est la manip' de KS  :Smile: 

Je veux dire, non, c'est pas sale, non, je veux dire, c'est ce que je veux faire. C'est ce que je fais faire!

Pas taper! ^^

----------

## ghoti

Bah finalement, on dirait bien que c'est moi qui avait compris le post de K_S de travers !   :Embarassed: 

Bon, c'est l'heure de mes pilules ...  :Sad: 

----------

## boozo

 *Xytovl wrote:*   

> Je n'ai jamais fait ça, mais ajoute le à package.provided

 

Je pense également que cette solution est meilleure amha (ou alors j'ai râté qqch même dans ta remarque) - le package est "injecté" (c'est l'ancienne appellation --inject) par portage mais il n'est pas géré par lui au niveau des màj du world/system - le cas repris en exemple dans la doc pour les noyaux ou les drivers des CG qui pose souvent problème à stabiliser/figer sur une version est très emblématique.

En tous cas je l'utilise à cet usage sans pb ainsi qu'à d'autres pacakges spécifiques et des vieux patch depuis que guilc m'avait montré la fonctionnalité y'a quelques années et portage ne s'en mèle pas   :Wink: 

En revanche, l'usage reste donc très ciblé (comme pour gensync i.e.) et faut vraiment faire gaffe à ce qu'on met dedans si on joue avec notamment aux dépendences car c'est surtout là que les pb peuvent se poser avec les update ^^

Edit: au fait, attention au path... va pas au même endroit que les autres hein ?   :Wink: 

----------

## tmasscool

Pourquoi ne pas simplement masquer les versions du package qui ne t'intéressent pas dans /etc/portage/package.mask ? 

C'est à ça que cela sert, non ?

----------

## El_Goretto

Bon, voilà, on pense savoir et on ne relit pas les manpages:

 *man portage wrote:*   

> package.provided
> 
> [...]
> 
> Portage  will  not attempt to update a package that is listed here unless another package explicitly requires a version that is newer than what has been listed.

 

Ok, cependant c'est loin d'être silencieux, comme façon de faire (le warning en rouge gras, ça tache):

```
# emerge -pvutDN world

These are the packages that would be merged, in reverse order:

Calculating dependencies... done!

Total: 0 packages, Size of downloads: 0 kB

WARNING: A requested package will not be merged because it is listed in

package.provided:

  net-p2p/i2p pulled in by 'world'

This problem can be solved in one of the following ways:

  A) Use emaint to clean offending packages from world (if not installed).

  B) Uninstall offending packages (cleans them from world).

  C) Remove offending entries from package.provided.

The best course of action depends on the reason that an offending

package.provided entry exists.

```

Ce type de manip' est vraiment faite pour les installations manuelles d'un composant non existant. Pas pour "sortir" un composant existant comme dans mon cas. Puisque si je me lance dans les manip' proposées, c'est aussi sale que ce que je suggérais au départ  :Smile: 

Bref, go for copie en overlay local + mask et roule.

----------

## boozo

 *El_Goretto wrote:*   

> (snip)
> 
> Ce type de manip' est vraiment faite pour les installations manuelles d'un composant non existant. Pas pour "sortir" un composant existant comme dans mon cas. Puisque si je me lance dans les manip' proposées, c'est aussi sale que ce que je suggérais au départ

 

Je ne pense pas qu'un noyau puisque c'est l'exemple archétype puisse être considéré comme un composant "non existant"   :Shocked: 

Passer par là signale juste à portage qu'il doit l'ignorer s'il le trouve qqpart quand il cogite - je vérifierais pourquoi chez moi je n'ai pas ce genre de warn ?! sinon que je ne suis pas en portage2.2 peut-être ? ou juste par curiosité

Bon après c'est comme tu veux hein   :Wink: 

----------

## El_Goretto

Non existant = non existant dans world/sur le système au moment de l'injecter dans provided.

C'est la grande différence.

----------

