Portage-Tree abfragen
In Gentoo ist es häufig auch interessant zu wissen, woher eine Datei kommt, wie das Paket eines bekannten Programmes heißt usw. Im Paket app-portage/gentoolkit
gibt es dazu ein nettes Hilfsprogramm equery
1. Zu welchem Paket gehört eine bestimmte Datei?
Das bekommt man heraus mit:
Beispiel:
# equery belongs lsusb
[ Searching for file(s) lsusb in *... ]
sys-apps/usbutils-0.71-r1 (/usr/sbin/lsusb)
oder, falls der Name nur in Auszügen bekannt ist:
equery belongs -f <Datei>
Anmerkung:
<Datei>
ist dabei eine Regular Expression. Ohne weitere Angaben werden damit Dateien gefunden in deren Namen oder Pfad das Suchwort vorkommt.
2. Welche Dateien gehören zu einem bestimmten Paket?
Beispiel:
# equery files gentoolkit
[ Searching for packages matching gentoolkit... ]
* Contents of app-portage/gentoolkit-0.2.1:
/etc
/etc/eclean
/etc/eclean/distfiles.exclude
/etc/eclean/packages.exclude
/etc/revdep-rebuild
/etc/revdep-rebuild/99revdep-rebuild
/usr
/usr/bin
/usr/bin/eclean
/usr/bin/eclean-dist -> eclean
/usr/bin/eclean-pkg -> eclean
/usr/bin/equery
[...]
3. Welche Pakete gibt es?
Wenn man den Namen eines Paketes nicht genau kennt bzw. nur einen Teil des Namens weiß, kann man nach dem Paket suchen:
equery list <optionen> <Namensfragment>
Die wichtigsten <optionen>
:
-i | findet nur installierte Pakete (default) |
-p | findet nur nicht installierte Pakete |
-o | findet nur Pakete aus dem Portage-Overlay |
-f | Regexp-Suche |
Beispiel:
Alle existierenden Pakete auswrfen in denen atari vorkommt:
# equery list -i -p atari
[ Searaching for package 'atari' in all categories among: ]
* installed packages
[I--] [ ] games-emulation/atari800-1.3.6 (0)
* Portage tree (/usr/portage)
[-P-] [ ] games-emulation/hatari-0.45 (0)
[-P-] [M~] games-emulation/hatari-0.80 (0)
[-P-] [M~] sys-fs/atari-fdisk-0.7.1.5.1 (0)
Anmerkung:
Werden mehrere Optionen wie im obigen Beispiel (-i -p
) verwendet, müssen diese nacheinander einzeln geschrieben werden. Die zusammengefasste Schreibweise (-ip
) versteht equery
(noch) nicht!
4. Welches Paket verwendet ein bestimmtes USE-Flag?
Wenn man wissen möchte welches von den bereits installierten Paket gebrauch von einem bestimmten Use-Flag macht (z.b. weil man das Flag gerade geändert hat) macht man das mit:
Braucht man diese Info von allen Paketen des Portage-Trees (also nicht nur von den installierten) schreibt man:
equery hasuse -p <use-flag>
Als witere Optionen existieren noch -I
(sucht in allen nicht installierten Paketen) und -o
(sucht nur im Portage-Overlay).
Beispiel
...kommt noch.