# [HOWTO] Portage et ses secrets

## zdra

Mise à jours : jeudi 16 juin 2005

Bonjour,

C'est une question qui revient souvent, je propose donc de regrouper ici les différentes techniques pour mettre à jours sa gentoo. Je vous invite a lire également les pages man "portage" et "emerge". Et ces liens: [Documentation] Dissection de portage, Fonctionnement de Portage, Introduction à Portage, Portage et ses fonctionnalités, Utiliser Portage, .....

I. Le minimum

```

# emerge sync

# emerge -ua world

```

 - emerge sync: Va mettre a jours (entre autres) la liste des paquets disponible pour votre architecture.

 - emerge --update --ask world: Va vous lister les paquets qui doivent être mis à jours.

II. Plus en profondeur

Vous remarquerez peut-être de temps en temps que certains paquets ne sont pas a la derniere version alors que vous venez de faire un « emerge -ua world ». C'est normal ! Faites plutot:

```

# emerge -update --deep --ask world

```

Explication: A chaques fois que vous installez un paquet (ex. emerge gnome) il va installer également toutes les dépendances du paquet « gnome » mais n'enregistre dans votre world (/var/lib/portage/world) que le paquet explicitement voulu (ici gnome-base/gnome). De ce fait un "emerge -u world" va regarder tous ces paquets que vous avez explicitement demandé d'installer et va tenter de tous les mettre à jours en respectant les nouvelles dépendances, et donc certains paquets qui sont installé car demandé par gnome ne seront pas a la derniere version si gnome dit dans ses dépendances qu'il peut se débrouiller avec l'ancienne version... Du coup l'option --deep va procéder récursivement: Pour chaque paquet du world il prend la derniere version et va également prendre la derniere version de ses dépendances (et les deps des deps, etc...).

Note: il peut encore rester des paquets qui ne sont pas a jours ! Les paquets qui ne sont ni dans le world ni demandé en dépendance d'aucun paquet du world. Bref les paquets qui sont inutile et qui peuvent être supprimer (voir plus loin).

III. Le USEflag dans tout ça ?

Disons que vous avez maintenant un nouveau graveur DVD et que vous remarquez le USEflag "dvdr" qui vous semble bien utile pour donner le support de gravure DVD a toutes les applications qui le supportent. Vous allez donc dans /etc/make.conf pour l'ajouter a votre variable USE, mais apès comment appliquer le changement aux paquets déjà installé ?

```

# emerge --newuse --verbose --ask world

```

Et voilà une option supplémentaire (qu'on peut ajouter aux précédentes) pour que portage vérifie également si un USEflag n'a pas changé sur un des paquets. Il va donc proposer de re-emerger tout les paquets qui ont un flag de changé (non pas possible d'échaper à une compilation de tout le paquet même pour un simple flag qui change presque rien). Comme pour l'option --update, --newuse n'est appliqué que sur les paquets du world, ou tous si l'option --deep est ajoutée.

IV. Et comment supprimer des paquets ?

Supprimer un paquet est facile:

```

# emerge -C <paquet>

```

Mais il faut faire attention ! Aucune vérification n'est faite si vous supprimez un paquet indispensable au bon fonctionnement d'autres paquets. Par exemple "emerge -C python" vous mettra dans une sale situation car emerge est fait en python...

De plus si le paquet se trouvait dans le world portage l'y enlevera. Mais il ne fera que ça, il ne supprimera pas toutes les dépendances du paquet qui sont maintenant inutile également... Par exemple si vous en avez marre de kde, vous faites "emerge -C kde" et presque rien ne se passe ! kdelibs, kdebase est toujour là ! Comment alors faire le netoyage ?

```

# emerge depclean --ask

```

Cette commande est dangereuse !! Ca va supprimer tout les paquets qui sont devenu inutile au respect de votre world. On a vu que "kde" a été supprimé de world. Donc maintenant il est fort possible que kdebase qui n'est pas inscrit dans world (car a été installé par dépendance a kde) devienne inutile et sera alors supprimé.

V. Que faire si suite à tout ça un programme ne démarre plus ?

Il vous arrivera peut-être que des programmes ne marchent plus en vous donnant comme erreur qu'une shared library (.so) est introuvable. Il vous faut alors recompiler ce programme pour qu'il se "link" avec la nouvelle version de la library. Pour se faire il y a un outil facile:

```

# revdep-rebuild --ask

```

Qui va chercher tout les paquets qu'il faut recompiler pour qu'ils fonctionnent.

VI. Il reste encore des paquets non désiré !

"emerge depclean" ne supprime pas tout ! Et non les slots peuvent jouer des tours. Prenons un exemple:

 - foo est dans le world et demande en dépendance >=bar-2.0. Donc n'importe quel version de bar >= a 2.0 est bonne pour foo.

 - Disons que bar est un paquet qui s'install dans des slots différents. C'est à dire qu'une mise à jours ne supprime pas l'ancienne version mais plutot que chaque version coabite en meme temps (gentoo-sources par exemple vous donne les sources kernel de chaque version sans supprimer les anciennes).

 - Vous avez donc bar-2.0 et bar-2.1 d'installé en même temps et comme foo dépent de >=2.0 une seul des 2 versions suffi mais depclean gardera les 2 !!!

Pour faire du ménage dans les slots j'ai pas d'autre solutions qu'un script que Scout m'a fait :

```

#!/bin/bash

rm -f /tmp/fifo1 /tmp/fifo2

mkfifo /tmp/fifo1

equery -q list | egrep '.*/.*' | sort > /tmp/fifo1 &

mkfifo /tmp/fifo2

emerge -pe world | egrep -o '].*$' | awk '{print $2}' | sort > /tmp/fifo2 &

echo "`comm -3 /tmp/fifo1 /tmp/fifo2`"

rm /tmp/fifo1 /tmp/fifo2

```

Le principe est simple: il prend la liste des paquets du installé et la compare avec la liste des paquets minimaux qu'il faut pour respecter le world (emerge -ep world)... Donc les paquets affiché peuvent être supprimé. Pour l'utiliser, enregistrer le script sous le nom de "deepclean" par exemple et rendez le executable. Puis:

```
emerge -C --ask `./deepclean`
```

A noter donc qu'il remplace le "emerge depclean" mais est plus violent...

VII. Dans quel ordre faire tout ça ?

L'ordre a de l'importance, je vous conseil donc pour un netoyage complet des programmes installé:

1) éditer /var/lib/portage/world et y supprimer a la main les programmes dont vous n'avez plus besoin.

2) emerge -uDNav world Pour mettre tout à jours

3) emerge -C --ask `./deepclean` Pour supprimer tout ce qui est devenu inutile

4) revdep-rebuild 

5) revenir en 2 tant que 3 et 4 ne propose rien à faire. Car il peut y avoir des jeux subtile de useflag qui ne sont plus fournis par des paquets supprimé.

VIII. Que faire si tout est cassé ?

Si vous «bidouillez» beaucoup votre gentoo il y a quand même quelques bonnes rêgles a garder en tête :

1/ Avant la mise à jour d'un composant clé, (glib, gcc, python...) vérifier au préalable sur le forum, parmis les bugs si des problèmes sont apparus, ça évite les (très) mauvaises surprises)

2/ En lien avec la première remarque, compiler au préalable les composants de la toolchain et reconstruire celle-ci de manière consistante (cf tcupdate.sh sur le forum).

3/ Dès que le moindre programme listé dans sys-* apparaît dans depclean, être ultra méfiant. Si besoin est, l'ajouter à world à la main.

4/ Pour avoir plus facile en cas de problème, c'est une bonne idée d'utiliser quickpkg pour backuper les paquets sensible que vous compilez ! Ca peut être fait automatiquement par en ajoutant a la variable l'option buildsyspkg aux FEATURES de votre /etc/make.conf. Ca va créer un backup lorsque vous mettez à jours un paquet du system.

-- Merci à palatin pour ces conseils --

Pour reconstruire votre fichier world il a « regenworld » qui va, sur base de vos logs, recontruire la list des paquets installé sur votre système. N'ésitez pas à backuper votre fichier /var/lib/portage/world avant cette oppération.

Si c'est portage qui est cassé, vous trouverez des informations pour le reconstruire làbà : /usr/portage/sys-apps/portage/files/README.RESCUE

Le dossier /usr/portage est géré par sync (sauf le distfiles il me semble) et donc si il y a un problème dedans un simple «emerge sync» devrait tout réparer.

En cas de gros probème qui vous met dans l'incapacité d'utiliser emerge (gcc ou python de cassé) et que vous n'avez pas suivi le conseil 4/ alors il vous reste encore une chance: récupérez une archive stage3 de l'installation de gentoo. Vous pouvez y récupérer les fichiers manquant. C'est souvent un .so de /lib ou /usr/lib qui pourait poser probème, simplement le copier de l'archive vers votre dossier /lib peut souvent sauver la situation ! Si ça marche et que vous arrivez denouveau a utiliser portage, commencez par réinstaller le programme qui marchait pas.

IX. Utilisez /etc/portage

Si vous voulez installer un paquet instable, ajouter un USEflag uniquement pour un paquet, démasquer un paquet, etc... Faites le toujours dans les fichiers /etc/portage !

```

# ACCEPT_KEYWORD="~x86" emerge foobar

```

C'est à proscrire car ici le keyword ne sera plus prit en compte pour les updates suivantes et donc il sera vite downgradé. De même pour un USEflag il ne sera pas pris en compte plus tard et donc au prochain --newuse le paquet sera rebuildé sans le useflag.

Pour en savoir plus sur les fichiers /etc/portage/package.* lisez ce mignifique post: Quoi de neuf dans le 2.0.50 ?

X. Quels sont les outils disponible ?

Il y a tout d'abord l'incontournable app-portage/gentoolkit qui fourni :

 - equery : je vous laisse visiter le man ou le "equery --help"

 - euse : pour pas mal de manipulations sur les useflag (euse --help pour plus d'info)

 - glsa-check : plutôt expérimental d'apres la notice... C'est pour gerer les MAJ de sécurité.

 - revdep-rebuild : on en a déjà parlé (visitez le man)

En plus de tout ça il y a le paquet app-portage/eix qui fourni un outil rapide pour la recherche de paquet... L'avantage est surtout qu'il index l'arbre portage pour faire des recherches plus rapide après.

Ce script peut vous être utile pour avoir des logs de ce qui se passe pendant un emerge.

XI. Installer des paquets perso

Il est parfois pratique d'installer un ebuild que vous trouvez souvent sur bugzilla et qui n'est pas encore intégré dans portage. Donc si vous aimez les risques et voulez installer des paquets qui ne sont pas encore considéré comme assé stable vous pouvez alors utiliser le PORTDIR_OVERLAY. C'est un variable a déclarer dans votre /etc/make.conf et qui défini le dossier dans lequel vous avez mis un arbre portage personnel. Souvent on le met dans /usr/local/portage. Ne mettez pas (et ne modifiez pas) d'ebuild dans /usr/portage car tous les nouveaux fichier et les modifié seront remis à l'origine au prochain "emerge sync".

Donc dans /usr/local/portage vous créez un dossier pour la catégorie dans laquel votre ebuild doit être (je sais pas si on est obligé de respecter les catégories par défaut de gentoo). Dans ce nouveau dossier vous mettez un dossier avec le nom du paquet, et enfin mettez l'ebuild dedans. Pour que portage prenne en compte votre nouveau paquet et qu'il crée les MD5 utilisez «ebuild ... digest»

```

# cd /usr/local/portage

# mkdir -p <categorie>/<nom paquet>

# cd <categorie>/<nom paquet>

# cp /path/<nom paquet>-<version>.ebuild . 

# ebuild <nom paquet>-<version>.ebuild digest

# emerge -av <nom paquet>

```

Ce document est publié sous la licence Creative Commons, merci d'en respecter les rêgles. 

Voilà c'est tout pour le moment, n'ésitez pas a me dire ce que je peux ajouter/corriger  :Wink: Last edited by zdra on Thu Jun 16, 2005 11:35 am; edited 14 times in total

----------

## kwenspc

sympa  :Cool: 

direct dans les bookmarks!

tiens pour le "TODO" il y déjà une bonne piste sur ce "très frais" thread : https://forums.gentoo.org/viewtopic-t-346734.html

----------

## Adrien

Excellent zdra!!  :Very Happy: 

Merci pour le howto, en plus vu comme ça revient souvent en ce moment les questions sur emerge!!  :Wink: 

----------

## -KuRGaN-

Bonne idée ce thread, parce que bon c'est quand même assez complexe à utiliser portage au début. Bon je sais, il y a le man portage mais un beau how-to bien présenté comme ça c'est quand même plus appétissant  :Smile: 

Tu devrais parler des fichier portage.use et autres aussi.

Il y a un thread de TGL je crois concernant les nouveautés de portage 2005.0 mais je n'arrive plus à le retrouver, il y avait pas mal de choses intéressantes dedans.

----------

## boozo

'alute

je dirais : pertinent, explicite, fonctionnel, à la fois exhaustif et concis soit en un mot synthétique !

merci pour cet effort de transmission et de synthèse zdra  :Wink: 

----------

## Trevoke

Oublie pas la commande 'regenworld' ...

----------

## lbr

Bonne synthèse ...

Il serait intéressant d'ajouter un chapitre ou une petite phrase sur le etc-update : qui ne s'est pas fait avoir ... 

Remarque :

Moi je ne fais pas emerge -uav world mais juste emerge -av world

(sans le update) et ca ne m'émerge que ce qu'il faut quand même (pas tout world, quoi  :Smile:  )

----------

## zdra

Pour les /etc/portage/* il y a le magnifique lien a ajouter: https://forums.gentoo.org/viewtopic.php?t=133161 (il était dans la liste des HOWTO  :Wink: )

Trevoke > oui regenworld va venir dans la partie en TODO je crois mais en fait j'attend que le post donné par kwenspc soit bouclé pour y reprendre toutes les idées puisque c'est exactement le sujet... Il y a aussi des info làbà https://forums.gentoo.org/viewtopic-t-346940.html que jv repecher que j'aurai le temps (sans doutes se soir)Last edited by zdra on Thu Jun 09, 2005 3:46 pm; edited 1 time in total

----------

## Dais

genre parler de esearch ou eix ? (eix roxor ! juste un équivalent de esync et il sera parfait  :Razz: )

----------

## ercete

j'en rêvais, merci zdra !

----------

## -KuRGaN-

et moi qui cherchai partout ce thread de tgl lol !!!!!!!!!! comme quoi faut pas trop abuser de la fonction search  :Wink: 

----------

## ghoti

Bravo!

Dis-donc tu es plutôt productif, toi!

Qui a dit qu'à Bxl c'étaient rien que des "loerik"  :Laughing:   :Laughing: 

(Pour les non belges, "loerik" = "fainéant" en argot bruxellois)

----------

## fb99

Très bon howto zdra, ça va nous accordé un peu de repos sur les questions récurrentes   :Very Happy: 

Sinon voilà quelque bon liens que j'avais dans mes bookmarks :

super explication de scout:

[Documentation] Dissection de portage

bon howto de notre voisin gentoofr, n'hésitez pas à aller y faire un tour il y a de bonnes docs:

Fonctionnement de Portage

la doc officielle, pour ceux qui si sont pas encore collé:

Introduction à Portage

Portage et ses fonctionnalités

Utiliser Portage

.....

enjoy  :Wink: 

----------

## kernelsensei

 *Dais wrote:*   

> genre parler de esearch ou eix ? (eix roxor ! juste un équivalent de esync et il sera parfait )

 

tu veux dire un truc qui affiche les modifs ? ou bien juste un truc qui sync puis update la db ?

car moi j'ai ca :

```
emerge --sync && update-eix
```

 dans un script place dans /bin

----------

## zdra

fb99> bonne idée j'ajoute ces liens  :Smile: 

----------

## spider312

Je suis plutôt adepte du 

```
alias esync='emerge sync && zugaina-webrsync && update-eix'
```

  :Laughing: 

----------

## Dais

 *kernel_sensei wrote:*   

>  *Dais wrote:*   genre parler de esearch ou eix ? (eix roxor ! juste un équivalent de esync et il sera parfait ) 
> 
> tu veux dire un truc qui affiche les modifs ? ou bien juste un truc qui sync puis update la db ?
> 
> car moi j'ai ca :
> ...

 

Bah qui fait les 3, donc vraiment comme esync. C'est sûr que emerge sync && update-eix dans un script ferait l'affaire, MAIS il affiche pas les ajouts  :Razz: 

Pour l'instant, je fais le bourrin: esync && update-eix  :Laughing: 

----------

## Enlight

 *kernel_sensei wrote:*   

>  *Dais wrote:*   genre parler de esearch ou eix ? (eix roxor ! juste un équivalent de esync et il sera parfait ) 
> 
> tu veux dire un truc qui affiche les modifs ? ou bien juste un truc qui sync puis update la db ?
> 
> car moi j'ai ca :
> ...

 

hmmm un alias suffirait, non? de plus il me semble que /bin çaimal(tm) quand c'est un script à toi, tu devrais pas plutôt le placer dans /usr/local ou dans /opt???

----------

## ercete

Parti VII

 *Quote:*   

> 3) emerge -C --ask `./deepclean` Pour supprimer tout ce qui est devenu inutile 

 

je penses que c'est plutôt

```
emerge -C --ask depclean
```

me trompes-je ?

----------

## spider312

 *raoulchatigre wrote:*   

> Parti VII
> 
>  *Quote:*   3) emerge -C --ask `./deepclean` Pour supprimer tout ce qui est devenu inutile  
> 
> je penses que c'est plutôt
> ...

 Oui, tu te trompes

Là il s'agit de récupérer le résultat du script ./deepclean (une liste de paquets) et de l'envoyer dans emerge -C (donc de les désinstaller)

Quand tu veux critiquer (surtout quand tu veux que ce soit constrictif) essaye au moins de bien lire ... *Quote:*   

> emerge -C --ask `./deepclean`
> 
> A noter donc qu'il remplace le "emerge depclean" mais est plus violent...
> 
> 

 

----------

## zdra

C'est vrai que l'appeller deepclean le script peut porter à confusion... mais justement moi j'aime bien ce nom pcq ça fais un "depclean" en plus "deep"  :Laughing: 

----------

## marvin rouge

yope ! merci zdra, c'est clair et bien foutu.

suggestion: si portage est tout cassé, il est possible aussi d'aller voir /usr/portage/sys-apps/portage/files/README.RESCUE qui indique comment réinstaller sys-app/portage à partir d'un tarball.

+

EDIT: correction du chemin (voir post de zdra ci dessous)Last edited by marvin rouge on Fri Jun 10, 2005 7:16 am; edited 2 times in total

----------

## zdra

Je connaissais pas, j'ajoute  :Smile:  D'ailleur le fichier est /usr/portage/sys-apps/portage/files/README.RESCUE  :Wink: 

----------

## profy

En tand que noob, j'ai quelques suggestions  :Smile: 

Je verrais bien en plus dans ce HOWTO comment :

  - désinstaller et réinstaller proprement un paquet avec de nouveau paramétres (j'ai lu quelque part qu'il fallait effacer config.cache, et je le trouve pas).

  - rechercher et installer des paquets non encore testés, en cas de necessité, peuvent t'il se mettre a jour avec la version testé par la suite ?

Sympa ce petit HOWTO, merci  :Smile: 

----------

## zdra

 *profy wrote:*   

> 
> 
>   - désinstaller et réinstaller proprement un paquet avec de nouveau paramétres (j'ai lu quelque part qu'il fallait effacer config.cache, et je le trouve pas).
> 
> 

 

Quel parametre ? USEflag ? Cflag ?

 *profy wrote:*   

> 
> 
>   - rechercher et installer des paquets non encore testés, en cas de necessité, peuvent t'il se mettre a jour avec la version testé par la suite ?
> 
> 

 

Le portage overlay ? ah oui c'est vrai que je peux ajouter un ptit mot dessu  :Wink: 

----------

## ultrabug

 *Quote:*   

> En cas de gros probème qui vous met dans l'incapacité d'utiliser emerge (gcc ou python de cassé) et que vous n'avez pas suivi le conseil 4/ alors il vous reste encore une chance: récupérez une archive stage3 de l'installation de gentoo. Vous pouvez y récupérer les fichiers manquant. C'est souvent un .so de /lib ou /usr/lib qui pourait poser probème, simplement le copier de l'archive vers votre dossier /lib peut souvent sauver la situation ! Si ça marche et que vous arrivez denouveau a utiliser portage, commencez par réinstaller le programme qui marchait pas.
> 
> 

 

Si je peux me permettre, je conseillerais d'abord de :

1- Mettre le FEATURES="buildpkg" dans /etc/make.conf

-> pour que tout ce que j'emerge bien soit sauvegardé en binaire dans /usr/portage/packages/All

Ensuite, si on a pas de binaire et tout est cassé :

1- Aller sur http://dev.gentoo.org/~avenj/bins/i686/ et télécharger les binaires qu'il nous manque.

2- copier les fichiers tbz2 dans /usr/portage/packages/All

3- emerge -K <nom du paquet>

et hop  :Smile: 

----------

## yoyo

Oui mais non   :Wink: 

 *ultrabug wrote:*   

>  *Quote:*   En cas de gros probème qui vous met dans l'incapacité d'utiliser emerge
> 
> [snip] 
> 
> [snip]
> ...

 

----------

## ultrabug

 *yoyo wrote:*   

> Oui mais non  
> 
>  *ultrabug wrote:*    *Quote:*   En cas de gros probème qui vous met dans l'incapacité d'utiliser emerge
> 
> [snip] 
> ...

 

lol ouais  :Smile:  bah rajouter ca si tout cassé mais emerge marche voila

----------

## profy

zdra wrote *Quote:*   

> 
> 
> Quel parametre ? USEflag ? Cflag ?
> 
> 

 

le USE flag dans mon cas, mais sans doute un --newuse suffit non ?

zdra wrote *Quote:*   

> 
> 
> Le portage overlay ? ah oui c'est vrai que je peux ajouter un ptit mot dessu 
> 
> 

 

Apparement ca s'apelle portage overlay oui  :Smile: 

----------

## zdra

Pour les USEflag je crois que le point III tu howto devrait répondre à toutes tes questions non ?

----------

## fb99

 *ultrabug wrote:*   

> 
> 
> 1- Mettre le FEATURES="buildpkg" dans /etc/make.conf
> 
> et hop 

 

pas besoin de tout sauvegarder imagine la place que tu vas occuper mais un truc sympa c'est l'option buildsyspkg du make.conf, elle ne créée que des binaires pour les ebuild système donc tout ce qui t'es nécessaire pour tout réparer.

----------

## zdra

Répondre voilà j'ai vite ajouté un mot pour installer les ebuild perso  :Smile: 

Hum oui faudrait peut-etre aussi que j'ajoute qqch sur quickpkg et la feacture buildpkg... parcontre je trouve pas de buildsyspkg dans le man de make.conf...

----------

## ultrabug

 *fb99 wrote:*   

>  *ultrabug wrote:*   
> 
> 1- Mettre le FEATURES="buildpkg" dans /etc/make.conf
> 
> et hop  
> ...

 

+1 merci je note  :Smile: 

----------

## profy

 *Quote:*   

> Il est parfois pratique d'installer un ebuild que vous trouvez souvent sur bugzilla

 

Je cherche par exemple une ebuild pour la dernière version de webmin (1.210), je ne trouve rien sur bugzilla https://bugs.gentoo.org/ est ce normal ? On peut trouver des ebuild ailleur ?

----------

## zdra

si il n'y a rien sur le bugzilla tu peux poster un bug pour signaler la nouvelle version  :Wink: 

Sinon il y a des sites comme: http://www.breakmygentoo.net/

----------

## profy

et voila j'ai posté pon premier bug  :Very Happy:  , j'ai envoyé a devrel pour signaler la nouvelle version.

----------

## fb99

 *zdra wrote:*   

> Répondre voilà j'ai vite ajouté un mot pour installer les ebuild perso 
> 
> Hum oui faudrait peut-etre aussi que j'ajoute qqch sur quickpkg et la feacture buildpkg... parcontre je trouve pas de buildsyspkg dans le man de make.conf...

 

ben en fait en faisant quelque recherche, j'ai vu que c'était une nouveauté de portage 2.050 qui a été inventé en fait par notre amis TGL cf ce thread

et si on veut en être plus spécifique dans la sauvegarde de paquet on peut rajouté cette cette ligne dans le make.conf (ça nous vient aussi de TGL), par exemple:

```
BUILD_PKG="system !sys-kernel x11-base/xfree net-www/mozilla media-gfx/gimp"
```

donc un grand merci à TGL pour cette features  :Wink: 

et comme elle n'est apparue que par la suite je pense qu'ils ont oublié de l'ajouter aux manpages ce serait bien de le leur indiquer quelqu'un c'est comment faire   :Idea:  ?

----------

## anigel

Bonne synthèse !

Un petit ajout concernant GLSA-check, sans vouloir me faire de l'auto-publicité, je l'utilise depuis longtemps, et j'ai communiqué une petite astuce pour l'utiliser. Ca peut permettre de tenir a jour son systeme au niveau sécurité, sans forcément jouer du emerge -uDpv 3 fois par semaine (eh oui : nouvelle version ne signifie pas toujours correction de problème ^^).

C'est ici.

----------

## ercete

@spider321 : autant pour moi, à ces heures là je ferais mieux d'aller me coucher  :Embarassed: 

 *Quote:*   

>  - revdep-rebuild : on en a déjà parlé (visitez le man) 

 

Heu chez moi le 

```
man revdep-rebuild
```

 il donne pas grand chose, et mes manpages ont l'air à jour,

d'ailleurs : http://gentoo-wiki.com/MAN_revdep-rebuild est pas beaucoup plus avancé... snif

Y'a 

```
revdep-rebuild --help
```

 qui en dis un peu plus !

----------

## fb99

je ne te cite que le lien que tu as dit *Quote:*   

>  Digest du ebuild
> 
> Une fois que le ebuild est en place il sera nécessaire de faire un digest du fichier. Digest implique le téléchargement du fichier et sa vérification md5. Pour faire cela lancer une commande similaire à :
> 
> ebuild /usr/local/portage/category/program/program.ebuild digest
> ...

 

et je pense que ça ira sinon c'est package.keywords mais je pense que c'est une faute de frappe

enjoy  :Wink: 

----------

## antoine

J'ai un petit problème avec le script deepclean.

En effet, j'ai une "*" qui se met dans la première ligne.

J'ai modifié le script pour que ça fonctionne chez moi : 

```
#!/bin/bash

rm -f /tmp/fifo1 /tmp/fifo2

mkfifo /tmp/fifo1

equery -q list | egrep '.*/.*' | sort > /tmp/fifo1 &

mkfifo /tmp/fifo2

emerge -pe world | egrep -o '].*$' | awk '{print $2}' | sort > /tmp/fifo2 &

echo "`comm -3 /tmp/fifo1 /tmp/fifo2`"

rm /tmp/fifo1 /tmp/fifo2

```

C'est au niveau du equery qu'il y a un problème car il affiche une ligne d'info avec une "*". J'ai donc rajouté un "egrep" et j'ai retiré le "awk" qui ne servait à rien.

Est-ce que vous avez le même problème ?

Sinon, merci à toi zdra pour ce poste très intéressant.  :Smile: 

----------

## TGL

 *fb99 wrote:*   

> si on veut en être plus spécifique dans la sauvegarde de paquet on peut rajouté cette cette ligne dans le make.conf (ça nous vient aussi de TGL), par exemple:
> 
> ```
> BUILD_PKG="system !sys-kernel x11-base/xfree net-www/mozilla media-gfx/gimp"
> ```
> ...

 

Merci pour les remerciements, mais malheureusement ce BUILD_PKG n'a jamais été intégré à Portage. :Crying or Very sad:    Ne jamais sous-estimer la capacité des mainteneurs de portage à laisser pourrir indéfiniment les contributions de plus de 3 lignes qui ne fixent pas des bugs ambarassants...

Enfin bref, j'ai évidemment toujours le patch. Perso je me le maintiens pour la version CVS HEAD puisque c'est celle que j'utilise, mais si y'a des gens que ça intérresse, je devrais facilement pouvoir le porter pour la 2.0.51 actuelle.

----------

## fb99

 *TGL wrote:*   

>  malheureusement ce BUILD_PKG n'a jamais été intégré à Portage. .

 

il faut aller leur taper sur les doigt peut-être qu'il estime que c'est un contribution minime, mais c'est une contribution qui permet un gain de temps, parce quickpkg sur tout les paquets qu'un gars veut sauvegarder puis ensuite quand y'a une version efface les autres ça prend pas 2 sec et en plus moi je trouvais ça chouette. Alors fait peter le script si tu l'as amélioré depuis l'ancien thread

merci enjoy +  :Wink: 

----------

## zdra

Voilà donc j'ai enlevé le BUILD_PKG du tuto puisque c'est pas encore implémenté dans portage. Et j'ai mis à jours le script comme proposé par antoine car en effet il y avait une 1er ligne en trop...

----------

## antoine

C'est bizarre chez moi BUILD_PKG fonctionne.

J'ai fait un emerge -e system ce matin et maintenant j'ai tout les paquets binaires correspondants /usr/portage/packages/All.

C'est peut-être parce que je suis en ~x86 ?

J'ai la version 2.0.51.22-r1 de portage.

----------

## TGL

Ce qui marche, ce sont les FEATURES "buildpkg" (binaires pour tous les paquets) et "buildsyspkg" (binaires pour les paquets système). Tu dois utiliser un de ces deux flags je pense. Mais par contre, le "BUILD_PKG", qui permettrait un choix plus fin sur les binaires à garder, lui je confirme qu'il n'est ni dans les .51.x, ni dans le CVS.

----------

## antoine

 *TGL wrote:*   

> Ce qui marche, ce sont les FEATURES "buildpkg" (binaires pour tous les paquets) et "buildsyspkg" (binaires pour les paquets système). Tu dois utiliser un de ces deux flags je pense. Mais par contre, le "BUILD_PKG", qui permettrait un choix plus fin sur les binaires à garder, lui je confirme qu'il n'est ni dans les .51.x, ni dans le CVS.

 

Ok je comprend maintenant  :Very Happy: 

----------

