esearch, search the portage database using an index file

   Home    Programmieren    Projekte    esearch    Musik    Linux    Links    About   
   deutsch    manpage   
 
          

esearch - deutsch

1. Beschreibung

esearch ist ein kleines Script für die Linux-Distribution Gentoo. Es funktioniert genauso wie emerge -s bzw. emerge -S, durchsucht also die Paketdatenbank. Der Vorteil von esearch gegenüber emerge ist, dass es einen Suchindex verwendet. Dadurch ist es beim Suchen viel schneller:

shark (~) $ time emerge -s mozilla > /dev/null

real    0m11.740s
user    0m1.400s
sys     0m0.140s

shark (~) $ time esearch mozilla > /dev/null

real    0m0.108s
user    0m0.095s
sys     0m0.010s

Der Nachteil ist, dass man den Suchindex natürlich erstellen muss (eupdatedb) und das dauert eine Weile.

2. Aktuelles

  • 26 Sep 2004
    Version 0.7 mit einer Menge neuen Features!
    • Eine -v/--verbose Option für esearch, die noch mehr Informationen über ein Paket ausgibt. Vielen Dank an Carlos Silva, von dessen emerge-patch (#11739) ich einigen Code verwendet habe, Danke!
    • Ein Patch von Thomas Buntrock, der eine -s/--nospinner Option für esync bereitstellt. (#57030).
    • Sandro Bonazzola hat die Manpages ins italienische übersetzt, vielen Dank.
    • Bug #58399 gefixed. Python compiliert manchmal den eupdatedb index nicht.
    • Ein Patch von Fernando Altomare Serboncini, ändert das Verhalten von esearch -c: Es zeigt jetzt auch die Kategorie.
    • Ein Patch von Steve Acheson, der eine -I/--instonly Option für esearch bereitstellt. Wenn sie aktiviert ist, werden nur noch installierte Pakete gefunden.
    Vielen Dank an all die Leute, die geholfen haben esearch besser zu machen!
  • Version 0.6.3: 25. Juli 2004
    • Manpages für esync und eupdatedb.
    • Das License Feld wird in Zukunft auch indiziert und angezeit.
    • Mit Hilfe einiger Leute aus dem italienischen Gentoo Forum konnte ein Fehler gelöst werden, der esearch veranlasste "bad digest" Fehler anzuzeigen.
    • Die Ebuilds in der esearch -e Ausgabe werden ab sofort nicht mehr alphabetisch, sondern nach Versionen sortiert.
  • 2. Juli 2004
    Version 0.6.2:
    • Patch von Tavis Ormandy der einen Security Bug im Temp-File Handling fixed.
    • Patch von Roman Kreisel, der esync eine -v/--verbose Option hinzufügt. Mit -v zeigt esync die Ausgabe von emerge sync an.
  • 10. Mai 2004
    Version 0.6.1:
    • Unterstützung für emerge-webrsync!
    • esync benutzt XTerm Titel um anzuzeigen, was es gerade macht.
    • Die -n/--nocolor Option für esync, um Farbcodes zu unterdrücken.
    • Jede Menge Bugfixes, danke an all die Personen, die mir Bugreports und Mails mit Feature Requests geschickt haben!
  • 06. Feb. 2004
    Version 0.6:
    • Beim benutzen von esearch -e ^package$` zeigt esearch jetzt die aktuelle Version des Pakets als Standard an, so dass man nur noch Enter drücken muss.
    • Neue Option --directory/-d für esearch und eupdatedb, um den Index in einem anderen Verzeichnis als /var/cache/edb/ abzuspeichern.
    • Eine Menge Updates und Fixes, siehe ChangeLog
  • 11. Jan. 2004
    Version 0.5.3:
    • Patch von Lars Gustäbel, der die Ausgabe extrem beschleunigt, wenn viele Pakete gefunden wurden (z.B. esearch ^)
    • Ein neues Script namens esync, das zuerst emerge sync und dann eupdatedb ausführt, und dann die Updates anzeigt.
    • Kleinere Fixes, siehe ChangeLog.
  • 20. Okt. 2003
    Version 0.5.2, neue Funktionen:
    • Die neue Option (--own=pattern, -o pattern) erlaubt es die Ausgabe nach einem benutzerdefiniertem Schema auszugeben. Für Details siehe manpage.
    • Mehrere Suchausdrücke sind möglich, z.B. esearch ^xmms$ ^mozilla$
    • Eine neue Option für eupdatedb --quiet/-q um nur die Zusammenfassung anzuzeigen, fixed Bug #32853.
  • 23. Okt. 2003
    Version 0.5.1, 2 Bugs wurden gefixed und es gibt absofort eine manpage, esearch(1).
  • 19. Okt. 2003
    Version 0.5, getopt-Support für eupdatedb (--help/--verbose/--nocolor), --ebuild Option für esearch um die Ebuilds der gefundenen Pakete anzuschauen, Bugfixes.
  • 02. Okt. 2003
    Version 0.4.2, Bugfixes. Prozentanzeige wegen Fehlern durch Countdown ersetzt.
  • 30. Sept. 2003
    Version 0.4.1, näheres im ChangeLog.
  • 19. Sept. 2003
    Ab sofort ist esearch offiziell in portage aufgenommen. Es ist unter dem Paketnamen app-portage/esearch erreichbar und somit auch per emerge esearch installierbar.
  • 18. Sept. 2003
    Version 0.4 ist erschienen, ab sofort wird die esearch-datenbank nicht mehr in den Arbeitsspeicher geschrieben, sondern direkt in die Datei. Das beschleunigt den Indexing-Prozess.
  • 17. Sept. 2003
    Version 0.3.1, näheres im ChangeLog.

3. Beispiel

Die Ausgabe sieht exakt gleich aus wie bei emerge -s/-S:

root (~) # eupdatedb
 * indexing: 0 ebuilds to go
 * esearch-index generated in 3 minutes and 25 seconds
 * indexed 5515 ebuilds
 * size of esearch-index: 843 kB

shark (~) $ esearch vim$
[ Results for search key : vim$ ]
[ Applications found : 3 ]

*  app-editors/vim
      Latest version available: 6.3-r1
      Latest version installed: 6.3-r1
      Size of downloaded files: 4,680 kB
      Homepage:    http://www.vim.org/
      Description: Vim, an improved vi-style text editor
      License:     vim

*  app-editors/gvim
      Latest version available: 6.3-r1
      Latest version installed: [ Not Installed ]
      Size of downloaded files: 4,680 kB
      Homepage:    http://www.vim.org/
      Description: GUI version of the Vim text editor
      License:     vim

*  app-editors/kvim [ Masked ]
      Latest version available: 6.2.14
      Latest version installed: 6.2.14
      Size of downloaded files: 4,896 kB
      Homepage:    http://www.freehackers.org/kvim
      Description: KDE editor based on vim
      License:     GPL-2



esearch hat auch noch eine extra Option, --compact oder kurz -c, mit ihr kann man die Ausgabe auf wenige Zeilen beschränken.

shark (~) $ esearch -c vim$
[ I] app-editors/vim (6.3-r1):  Vim, an improved vi-style text editor
[ N] app-editors/gvim (6.3-r1):  GUI version of the Vim text editor
[MI] app-editors/kvim (6.2.14):  KDE editor based on vim

4. Installation / Aufruf

Um esearch zu installieren muss es nur "emerged" werden:

emerge esearch

Nach der Installation muss man ab- und zu eupdatedb ausführen, danach kann man esearch benutzen.

esearch (0.7) - Replacement for 'emerge search' with search-index

Usage: esearch [ options ] pattern
Options:
  --searchdesc, -S
    Search package descriptions as well

  --fullname, -F
    Search packages full name (includes category)

  --instonly, -I
    Find only packages which are installed

  --compact, -c
    More compact output format

  --verbose, -v
    Give a lot of additional information (slow!)

  --ebuild, -e
    View ebuilds of found packages

  --own=format, -o format
    Use your own output format, see manpage for details of format

  --directory=dir, -d dir
    Use dir as directory to load esearch index from

  --nocolor, -n
    Don't use ANSI codes for colored output

5. ChangeLog

*esearch-0.7 (26 Sep 2004)

  26 Sep 2004; David Peter  esearch.py:
  Added patch from Steve Acheson , which
  adds an -I/--instonly option to esearch. If it is enabled,
  only packages which are installed will be found.

  26 Sep 2004; David Peter  esearch.py:
  Added patch from Fernando Altomare Serboncini ,
  which changes the behaviour of 'esearch -c': Now it
  prints the category also.

  15 Sep 2004; David Peter  eupdatedb.py:
  Fixed bug #58399. Sometimes python doesn't compile the eupdatedb
  index for any reasons.

  15 Sep 2004; David Peter  it/esearch.1,
  it/eupdatedb.1, it/esync.1:
  Added the italian manpages created by Sandro Bonazzola
  , thanks a lot.

  15 Sep 2004; David Peter  esync.py:
  Added a patch from Thomas Buntrock
  , which adds
  a -s/--nospinner option to esync. (Fixes #57030)

  17 Aug 2004; David Peter  esearch.py:
  Added a -v/--verbose option to esearch, which shows some
  additional information about a package. Used some code
  from Carlos Silva , who wrote
  a patch for emerge (#11739). Thanks!

  17 Aug 2004; David Peter  esearch.py,
  eupdatedb.py, esync.py:
  Various small code cleanups.

*esearch-0.6.3 (25 Jul 2004)

  08 Jul 2004; David Peter  esync.py:
  Sort the ebuilds by version (using portage.pkgcmp).

  08 Jul 2004; David Peter  esearch.1,
  eupdatedb.1, esync.1:
  Added manpages for eupdatedb and esync and updated the one
  for esearch.

  08 Jul 2004; David Peter  eupdatedb.py,
  esearch.py, esync.py:
  Added a 'dbversion' to the esearch index, to be sure it is
  not outdated.

  06 Jul 2004; David Peter  eupdatedb.py,
  esearch.py:
  Added the "License" field to the index and the output of
  esearch.

  06 Jul 2004; David Peter  eupdatedb.py:
  Updated file handling, so there are no "bad digests"
  anymore. Thanks to Danilo, and the other guys from
  the italian forums.

*esearch-0.6.2 (30 Jun 2004)

  30 Jun 2004; David Peter  eupdatedb.py:
  Patch from Tavis Ormandy  which fixes
  a security hole in the temp file handling.

  16 May 2004; David Peter  esync.py:
  Patch from Roman Kreisel , which
  adds a -v/--verbose option to esync. With -v enabled
  esync shows the output from 'emerge sync'.

*esearch-0.6.1 (10 May 2004)

  10 May 2004; David Peter  esync.py:
  Showing current action in xterm title.

  02 May 2004; David Peter  esync.py:
  Added message, in case there are no updates.

  03 Apr 2004; David Peter  esync.py:
  Sort updated packages in output.

  28 Mar 2004; David Peter  esync.py:
  Support for emerge-webrsync (--webrsync/-w).

  28 Mar 2004; David Peter  esync.py:
  Added getopt including --help/-h, --nocolor/-n. Now also checking
  if eupdatedb was successful.

  15 Feb 2004; David Peter  esync.py:
  use `/usr/sbin/eupdatedb` instead of `eupdatedb`, this
  fixes #41554.

  08 Feb 2004; David Peter  esearch.py:
  corrected typo (fixes #40832).

*esearch-0.6 (06 Feb 2004)

  04 Feb 2004; David Peter  esync.py:
  Small bugfix in esync: test if esearchdb exists.

  25 Jan 2004; David Peter  esearch.py,
  eupdatedb.py, esync.py:
  Added descriptions on the beginning to all three files.

  25 Jan 2004; David Peter  eupdatedb.py:
  Added a warning, if ACCEPT_KEYWORDS is set in environment,
  because this will result in a modified index file.

  25 Jan 2004; David Peter  eupdatedb.py:
  Test on startup, if there is already another eupdatedb process
  running, thanks to Marius Mauch .

  25 Jan 2004; David Peter  esync.py:
  Fixed traceback in esync, in case /tmp/esync(old|new)tree.pyc
  already existed. (Fixes #39629)

  22 Jan 2004; David Peter  esearch.py, eupdatedb.py:
  New -d/--directory option for both, esearch and eupdatedb, to store the
  esearch index in an other directory than /var/cache/edb/.

  22 Jan 2004; David Peter  esearch.py:
  When using `esearch -e ^package$`, esearch now shows the
  available version as default ebuild, so you just have to
  press enter.

  22 Jan 2004; David Peter  esearch.py:
  KeyboardInterrupt handling for `esearch -e`.

*esearch-0.5.3 (11 Jan 2004)

  11 Jan 2004; David Peter  eupdatedb.py:
  Added KeyboardInterrupt handling.

  11 Jan 2004; David Peter  esearch.py, eupdatedb.py:
  sys.path work-around for portage python modules.

  11 Jan 2004; David Peter  esync.py:
  Added esync, a script which does `emerge sync` followed by
  a `eupdatedb` and then shows the updates during the sync.

  13 Dec 2003; David Peter  esearch.py:
  Added a patch from Lars Gustäbel  which speeds
  up the esearch output method for large datasets a lot.

  11 Dec 2003; David Peter  esearch.py:
  Changed colors in compact mode a bit to fit the behaviour
  of emerge: update [U] and version are now in turquoise.

*esearch-0.5.2 (20 Oct 2003)

  14 Nov 2003; David Peter  esearch.py:
  Added --own=format/-o format to use a user-defined output
  format. See manpage for details and examples.

  13 Nov 2003; David Peter  eupdatedb.py:
  Added --quiet/-q mode to show only the summary of the eupdatedb
  output. fixes bug #32853 (http://bugs.gentoo.org/show_bug.cgi?id=32853).

  13 Nov 2003; David Peter  esearch.py:
  Added support for multiple search patterns.

*esearch-0.5.1 (23 Oct 2003)

  21 Oct 2003; David Peter  esearch.1:
  Added manpage esearch.1 to esearch.

  21 Oct 2003; David Peter  eupdatedb.py:
  Fixed small countdown bug, eupdatedb wasn't counting to zero
  because of invalid ebuilds.

  20 Oct 2003; David Peter  esearch.py:
  Fixed bug, ebuilds are now sorted properly.

*esearch-0.5 (19 Oct 2003)

  19 Oct 2003; David Peter  eupdatedb.py:
  Added getopt support. --nocolor/-n and --verbose/-v to show categories
  while updating index.

  18 Oct 2003; David Peter  esearch.py:
  Added --ebuild/-e option to view ebuilds of found packages. Inspired
  by http://forums.gentoo.org/viewtopic.php?t=93334.

  18 Oct 2003; David Peter  esearch.py, eupdatedb.py:
  Changed header, so it should work with every python version.

*esearch-0.4.2 (02 Oct 2003)

  02 Oct 2003; David Peter  eupdatedb.py:
  replaced the counter (0 to 100 percent) by an ebuild-countdown,
  because the display was often wrong.

  02 Oct 2003; David Peter  eupdatedb.py:
  fixed bug #30171 (http://bugs.gentoo.org/show_bug.cgi?id=30171)

*esearch-0.4.1 (30 Sep 2003)

  29 Sep 2003; David Peter  eupdatedb.py:
  write data into tempfile first, so esearch can be used while updating
  esearchdb

  29 Sep 2003; David Peter  esearch.py:
  Added getopt support

  29 Sep 2003; David Peter  eupdatedb.py:
  Fixed small bug, eupdatedb sometimes showed 101% while indexing ebuilds

  28 Sep 2003; David Peter  esearch.py:
  Added patch from Eldad Zack  to allow searching for
  full names (e.g. app-portage/esearch)

*esearch-0.4 (18 Sep 2003)

  18 Sep 2003; David Peter  eupdatedb.py:
  no longer writing into memory, but directly into file => speedup

  18 Sep 2003; David Peter  esearch.py:
  added colored help-message

*esearch-0.3.1 (17 Sep 2003)

  17 Sep 2003; David Peter  esearch.py:
  added feature which fixes wrong regexps (e.g. mysql++ -> mysql)

6. Download

Mehr aus "historischem" Interesse gibt es hier die Versionen zum Download:

Download esearch-0.7.tar.bz2 (9.99 kB)
Download esearch-0.6.3.tar.bz2 (7.95 kB)
Download esearch-0.6.2.tar.bz2 (7.27 kB)
Download esearch-0.6.1.tar.bz2 (7.02 kB)
Download esearch-0.6.tar.bz2 (6.58 kB)
Download esearch-0.5.3.tar.bz2 (5.72 kB)
Download esearch-0.5.2.tar.bz2 (4.96 kB)
Download esearch-0.5.1.tar.bz2 (4.13 kB)
Download esearch-0.5.tar.bz2 (3.71 kB)
Download esearch-0.4.2.tar.bz2 (3.32 kB)
Download esearch-0.4.1.tar.bz2 (2.8 kB)
Download esearch-0.4.tar.bz2 (2.46 kB)
Download esearch-0.3.1.tar.bz2 (2.1 kB)
Download esearch-0.3.0.tar.bz2 (2.04 kB)
Download esearch-0.2.2.tar.bz2 (1.75 kB)
Download esearch-0.2.1.tar.bz2 (1.61 kB)

7. Bugreports

Bugs können jederzeit per bugs.gentoo.org gemeldet oder direkt per Mail an mich gesendet werden.


© 2004 by David Peter