# [solved] Wie "packages.keywords/~x86-dateien" aufräumen

## Eisbrecher

Schönen guten abend,

ich habe im Laufe der Zeit immer mal wieder Programme ausprobiert, die ich mit dem ~x86-Keyword kompilieren musste. Da haben sich inzwischen schon einige Pakete angesammelt, die nicht mehr installiert sind. Gibt es eine bequeme Möglichkeit, die Dateien im Verzeichnis /etc/portage/packages.keywords/ mal auszumisten? Also alle Einträge entfernen, bei denen das Paket nicht mehr installiert ist? Ebenfalls entfernen würde ich gerne die Einträge entfernen, bei denen eine Version mit mit ~x86 zur Zeit nicht mehr existiert.

Hat jemand eine Idee?

Minimale Grundlagen in Bash-Programmierung habe ich. Meine Idee wäre gewesen ein Skript zu schreiben, das die Dateien Zeilenweise ausliest, den Paketname als String ausschneidet/speichert und dann prüft, ob das Paket noch installiert ist.

Aber mir fehlt noch eine Idee, wie ich die blau markierten Punkte umsetzen könnte.

Was meint ihr dazu?

Gruß

EisbrecherLast edited by Eisbrecher on Thu Jul 05, 2007 7:43 pm; edited 1 time in total

----------

## s.hase

Hi!

Da wäre eventuell eix für Dich hilfreich. Mit

```

eix-test-obsolete

```

kannst du Dir z.B. alle nicht mehr installierte Pakte in packages.keyword anzeigen lassen. Entfernt werden die Pakte aber nicht automatisch, dass müsstes Du dann schon selber machen. Ob es auch geht wenn packages.keyword ein Ordner ist ist kann ich Dir aber leider nicht sagen. Vielleicht einfach mal testen.

Gruss

Sebastian

----------

## Eisbrecher

Hey super. eix hatte ich schon installiert. Aber dieses Kommando kannte ich noch nicht. Genau sowas habe ich gesucht. Danke  :Smile: 

----------

## s.hase

Ist schon sehr hilfreich das Tool. Was mir noch fehlt ist das eix-test-obsolete auch nicht mehr benötigte Use-Flags in der packages.use anzeigen kann. Dann wäre es echt perfekt!

----------

## Eisbrecher

Ist das nicht der folgende Punkt?

```
Redundant in /etc/portage/package.use:
```

Zumindest habe ich das so verstanden  :Wink: 

----------

## s.hase

Leider nein, da landen nur die Packages drin die z.B. nicht mehr installiert sind, aber nicht z.B. Use-Flags die rausgefallen oder inzwischen Standard im aktuellen Profil sind.

----------

## mv

 *s.hase wrote:*   

> Leider nein, da landen nur die Packages drin die z.B. nicht mehr installiert sind, aber nicht z.B. Use-Flags die rausgefallen oder inzwischen Standard im aktuellen Profil sind.

 

Das ist richtig. eix hat keinen Mechanismus, mit dem die momentan aktiven Use-Flags festgestellt werden können - das ist ziemlich aufwändig zu implementieren, und der portage-Standard dazu ändert sich alle naselang.

----------

## Finswimmer

Gibt es da nicht was.

Gefunden.

gcac

http://sourceforge.net/projects/gcac

----------

## ocin

dep kann das auch 

emerge udept

dep --help

----------

## l3u

Ich hab da auch mal was gebastelt: http://nasauber.de/downloads/gentoo/#check_keywords

----------

## Frank99

Hallo Libby,

ich habe dein Script eben mal gestestet, allerdings werden einige Einträge fälschlicherweise als "not masked" erkannt obwohl die installierten Versionen  definitiv gemasked sind:

     beryl: x11-misc/beryl-manager (not masked)

     gkrellm: x11-plugins/gkrellm-bluez (not masked)

     kde: kde-base/artsplugin-akode (not masked)

     koffice: app-i18n/koffice-i18n (not masked)

     misc: dev-perl/Log-Log4perl (not masked)

     mozilla: app-office/mozilla-sunbird (not masked)

     mythtv: x11-themes/mythtv-themes-extra (not masked)

     nvidia: x11-drivers/nvidia-drivers (not masked)

     overlay: x11-themes/xxv-xstyle (not masked)

     vdr: dev-perl/XML-Simple-DTDReader (not masked)

     vmware: app-emulation/vmware-workstation (not masked)

     xen: app-emulation/xen-tools (not masked)

Von app-emulation/vmware-workstation und x11-drivers/nvidia-drivers sind die Hard Masked Versionen installiert.

Benötigst du noch weitere Infos?

Danke,

Frank

----------

## zworK

Ich habe zum Aufräumen bisher immer portpeek benutzt und bin zufrieden. Die anderen hier genannten Tools werde ich bei Zeit mal testen.

----------

## mv

Soweit ich das sehe, kann eix alles, was gcac und portpeek können (und testet noch viel mehr, je nach Konfiguration).

Insbesondere testen auch gcac und portpeek bzgl. package.use nur, ob die Pakete installiert sind und nicht, ob die use-Flags aufgrund der Einträge wirklich den Status ändern. Der Grund liegt klar auf der Hand: Das Feststellen der aktiven Useflags ist aufwändig und müsste ständig neu implementiert werden...

----------

