# [PORTAGE] Fichier package.keywords perdu ( résolu )

## z3l

J'ai cassé mon fichier /etc/portage/package.keywords en faisant une fausse manip:

<mode boulet>

```

echo dev-python/django ~x86 > /etc/portage/package.keywords

au lieu de 

echo dev-python/django ~x86 >> /etc/portage/package.keywords

```

et bien sûr le dernier backup est bien trop vieux...

</mode boulet>

Y'a t-il un moyen de retrouver le nom des ebuilds installés et masqués qui l'ont été grâce uniquement à ce fichier ?

Une petit ligne magique à base d'eix ?Last edited by z3l on Wed Jan 23, 2008 11:37 am; edited 1 time in total

----------

## kernelsensei

Salut,

tu peux toujours te baser sur la sortie de emerge -auvDN world pour déterminer quelle influence avait ton ancien package.keywords sur ton système.

Par contre c'est pas super fiable si tu veux retrouver ton ancien package.keywords, il se peut que des paquets qui étaient en ~ soient passés en stable et donc tu ne remarqueras rien avant la prochaine version ~ du paquet.

----------

## ghoti

Pas mieux comme solution.

Par contre, tu pourrais éviter ce genre de problème à l'avenir en utilisant l'option "noclobber" de la commande "set" :

suffit de mettre la ligne "set -o noclobber" dans ton .bashrc

A partir de ce moment, le simple ">" ne pourra plus créer qu'un nouveau fichier (si le nom du fichier existe, il y aura un message d'erreur)

Si tu veux vraiment écraser un fichier existant, il faudra utiliser ">|"

Le ">>" conserve son fonctionnement habituel.

----------

## z3l

J'ai résolu mon problème et en profite pour faire un petit retour d'informations pour ceux à qui ça arriverait :

J'ai pu retrouver les informations constituant mon fichier package.keywords grâce à :

La façon la plus simple, mais aussi la plus longue et la plus pénible est de faire un :

```

emerge -pe world

```

et d'ajouter chaque paquet bloqué ( en haut de la liste ) et tous les ebuilds avec un [...D] dans le fichier 

/etc/portage/package.keywords

Une autre méthode plus rapide est de faire :

```

find /var/db/pkg -name "*.ebuild" | xargs grep KEYWORDS | grep '~x86[^-]'

```

Cela trouve presque tous les paquets en question, un petit emerge -pe world est quand même nécessaire pour le reste.

Toutes ces informations proviennent de ce post :

https://forums.gentoo.org/viewtopic-t-650147.html

Une autre chose qui peut être utile pour comprendre ce que l'on fait est :

http://fr.gentoo-wiki.com/FAQ_Comment_fonctionne_emerge

----------

## Temet

Perso c'est exactement la raison pour laquelle je n'utilise jamais de "echo" mais que j'ouvre le fichier avec vim.

----------

## GentooUser@Clubic

C'est quand même plus rapide & pratique echo, pour ce type d'accident y'a pas une option ZSH qui permet de les prévenir ?

Moi ça m'est arrivé ya quelque-temps mais c'était avec package.use, beaucoup plus facile a récupérer.

----------

## NEOxAKIRA

il vaut mieux faire une sauvegarde de ses fichiers de conf important à chaque boot ou arret de l'ordinateur si on à peur de faire des boulettes...

D'ailleurs j'ai une question concernant echo : comment ajoutons des tabulations à l'aide d'echo ?

(histoire que tout mes use soient aligné dans package.use)

----------

## xaviermiller

```
man echo
```

```
echo "\t"
```

----------

