# richtige Paket finden mit emerge

## mcpi

hallo freaks,

hab da mal ne frage: wie finde ich mit emerge (oder einem anderen tool?) heraus, in welchem paket ein bestimmtes programm enthalten ist:

beispiel:

wenn ihr gentoo neu installiert und einen make xconfig machen wollt, fehlt das programm wish.

nun emerge -p wish bringt nix

emerge -s wish bringt nur einen treffer und der ist falsch (Simple Web Indexing System for Humans - Ehanced)

wish ist im paket tk enthalten. hätte ich nicht ein paar suchen im web angestellt, wäre ich da nie drauf gekommen. wir mache ich das unter gentoo?

genial wäre soetwas wie emerge -s wish <--|

==> please install tk-x.x.x

thanx for help.

pierre

----------

## haceye

Hi,

Soweit ich weiß gibt es dafür keine Lösung. emerge kann ja auch nicht vorher wissen, was nach dem runterladen->kompilieren->installieren für Dateien rauskommen. Man müsste also so eine Liste für jedes Packet haben.

Vielleicht kannst du mit 

```
emerge -S datei
```

 manchmal etwas mehr herausbekommen, wobei das wirklich selten der Fall sein dürfte.

Mir ist so ein Problem jetzt noch nie untergekommen, da ja viele solcher Probleme mit optionalen Tools für ein Packet (wie jetzt z.B. tk für die kernel-sources) durch USE-Flags gelöst werden.

Da würdest du dann - analog zu deinem Beispiel - für die kernel-quellen eine USE Variable X haben, die dann tk gleich mitinstallieren würde.

ciao David

----------

## mcpi

nun bei rpm und auch bei debian geht das mit dem suchen mittlerweile ganz gut.

warum nicht so etwas basteln, was suse als krückenlösung macht.

auf der 1. cd gibt es zwei dateien index.tgz und archive.tgz.

macht ihr ein zcat auf archive.tgz | grep wish | grep bin  ==> und schon bekomme ich heraus, dass wish im tk paket enthalten ist.

gut ich heule jetzt hier nicht irgend einer kommerziellen linux lösung nach, sondern suche einen einfachen/smarten weg, wie ich solche probleme in zukunft schnell lösen kann.

die sache mit den use parametern ist kein schlechter tip, nur hätte ich da das selbe problem gehabt, woher soll ich wissen, dass für make xconfig - tk in meiner use variable enthalten sein muss?!?

außerdem bin ich der meinung ist es besser seine USE-variabel nur mit den wirklich benötigten optionen vollzustopfen, sonst haben tools eventuell support für dinge die ich gar nicht benötige.

aber danke für deine post und deinen lösungsvorschlag

grüsse, pierre

----------

## ts77

wie wäre es mit qpkg -f <filename> ?

ist glaub ich in gentoolkit oder so mit drin.

```

athlon-gt root # qpkg -l tk|grep wish

/usr/bin/wish -> wish8.4

/usr/bin/wish8.4

/usr/share/man/man1/wish.1.gz

athlon-gt root # qpkg -f /usr/bin/wish

dev-lang/tk *

athlon-gt root # man qpkg

athlon-gt root # qpkg -fp wish

app-editors/quanta *

dev-lang/tk *

x11-themes/gnome-themes *

```

----------

## aleph-3

ein qpkg --help hilft da weiter

auszug

```

  -f,  --find-file      finds package that owns file <file>

  -fp, --find-pattern   finds to package that owns file matching *<pattern>*

```

----------

## mcpi

YEP DAS war die lösung. 

VIELEN DANK! auch wenn ich am anfang wieder vor dem problem stand, wo ist denn nun wieder qpkg enthalten. aber die vermutung von ts77 war korrekt, qpkg ist im gentoolkit enthalten.

somit löst ein  

qpkg -fp wish

dev-lang/tk *

x11-themes/gnome-themes *

sowohl das rätzels, was für ein paket ich benötige, als auch gleich, was dies für abhängigkeiten mit sich bringt.

grüsse, pierre  :Laughing: 

----------

## haceye

 *mcpi wrote:*   

> YEP DAS war die lösung. 

 

Nein, ist es leider nicht, da qpkg ja nur die Dateien der installierten Packete durchsucht. Zu dem Zeitpunkt, als du "make xconfig" durchführen wolltest hattest du ja tk noch nicht installiert. Und da hättest du mit 

```
qpkg -fp wish
```

 auch nichts gefunden.

Bei mir gibt das nämlich z.B. was anderes aus, als bei dir:

```
shark@gentoo shark $ qpkg -fp wish

app-editors/quanta *

dev-lang/tk *

x11-themes/gnome-themes *

```

ciao David

----------

## ts77

sorry aber nach der man-page halte ich das für Unsinn:

```

       qpkg  is GenToolKit's "query package" tool, using it, you can find packages owning files on your filesystem, check

       the integrity of installed packages, and do other queries against installed or uninstalled packages.

```

man beachte die letzte Zeile.

----------

## haceye

Hi,

Dann scheint da wirklich ein Feature in der Manpage beschrieben zu sein, dass es nicht gibt (und ich mir bei dem Layout von Portage auch nicht vorstellen kann).

Kleiner Beweis:

```

root@gentoo shark # qpkg -fp splat

app-admin/splat *

gnome-extra/gnome-games *

media-gfx/gimp *

root@gentoo shark # emerge -C splat > /dev/null

root@gentoo shark # qpkg -fp splat

gnome-extra/gnome-games *

media-gfx/gimp *

```

Sorry, ich will euch ja nicht den Spaß verderben, aber ich glaub das geht wirklich nicht.   :Wink: 

ciao David

EDIT: Hab mir grad den ManPage-Ausschnitt nochmal genauer angeschaut. Da steht ja nicht, dass man jedes Query auch gegen nicht installierte Packages laufen lassen kann.

----------

## Genone

Noch nie installierte Pakete werden von "qpkg -f" (oder auch "epm -qf") nicht erfasst, das ist technisch auch schwer bis gar nicht möglich (wenn man es richtig machen will). Das es bei deinstallierten Paketen gehtt liegt vermutlich an daran, dass in /var/db/pkg noch die CONTENTS Datei rumliegt, in der die zu einem Paket gehörenden Dateien aufgelistet sind.

PS: Dass es mit rpm und apt geht hat den einfachen Grund, dass dort Binärpakete verwendet werden, die überall gleich sind. Bei portage werden aber bekanntermassen die Pakete auf jedem Rechner neu kompiliert und müssen nicht immer gleich sein, je nach USE und CFLAGS Variablen und installierten Paketen können die extrem unterschiedlich sein.

----------

