View previous topic :: View next topic |
Author |
Message |
haceye Apprentice
![Apprentice Apprentice](/images/ranks/rank_rect_2.gif)
![](images/avatars/3636336083f1412752df49.png)
Joined: 22 May 2003 Posts: 187 Location: Stuttgart, Germany
|
Posted: Wed Jul 09, 2003 6:15 pm Post subject: esearch: schnelles 'emerge -s' (python script) |
|
|
Hi,
Wie im Thread https://forums.gentoo.org/viewtopic.php?t=63487 versprochen, habe ich mein esearch Script etwas weiterentwickelt, und würde mich freuen, wenn es einige Leute hier mal testen könnten.
Das ganze ist ein Ersatz für emerge -s bzw. emerge -S. Zuerst wird im locate-Stil ein Suchindex erzeugt (eupdatedb), und danach kann man das ganze mit Code: | esearch [-S] suchausdruck | benutzen.
Nachteile sind natürlich, dass des Suchindex nie so aktuell ist, wie mit emerge -s (d.h. zum Beispiel auch, dass wenn man ACCEPT_KEYWORDS=~x86 o.ä. setzt, dass dies in der Suche nicht berücksichtigt wird)
Dafür hat man aber den Vorteil, dass esearch (zumindest auf meinem Rechner ) 40-1000 schneller läuft.
Ok, ich geb zu, das 1000 mal schneller ist mit einem (emerge -s '^') gemessen
Habe auch ein ebuild für das Script geschrieben, und das ganze findet ihr auf http://david-peter.de/esearch. Würde mich wirklich freuen, wenn das jemand testen würde.
ciao David
PS: In dem oben genannten Thread gibt es eine Bash-Alternative zu meinem Pythonscript, hatte leider noch keine Zeit sie zu testen. _________________ faster 'emerge -s'? emerge esearch |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
gordin Guru
![Guru Guru](/images/ranks/rank_rect_3.gif)
![](images/avatars/4692775213f7ebc7c11462.jpg)
Joined: 11 Oct 2002 Posts: 300 Location: Germany/WI
|
Posted: Thu Jul 10, 2003 11:31 am Post subject: Klappt sehr gut |
|
|
Hallo haceye,
super arbeit! Das erst eine Datenbank erstellt werden muss finde ich nicht so tragisch. Dauert erstens nicht besonders lang und ausserdem mache ich nicht jeden Tag ein emerge sync.
Du kannst ~ppc zu den KEYWORDS hinzufügen. Klappt auf meinem ibook ohne Probleme. |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
haceye Apprentice
![Apprentice Apprentice](/images/ranks/rank_rect_2.gif)
![](images/avatars/3636336083f1412752df49.png)
Joined: 22 May 2003 Posts: 187 Location: Stuttgart, Germany
|
Posted: Thu Jul 10, 2003 5:17 pm Post subject: Re: Klappt sehr gut |
|
|
gordin wrote: | super arbeit! Das erst eine Datenbank erstellt werden muss finde ich nicht so tragisch. Dauert erstens nicht besonders lang und ausserdem mache ich nicht jeden Tag ein emerge sync.
Du kannst ~ppc zu den KEYWORDS hinzufügen. Klappt auf meinem ibook ohne Probleme. |
Vielen Dank für das testen. Habe im ebuild ~ppc hinzugefügt.
Bei der Gelegenheit hab ich gleich mal ein paar Bugs gefixed und die Ausgabe verschönert, die neue Version heisst esearch-0.2.2.
Download/Installation: http://david-peter.de/esearch/
ciao David _________________ faster 'emerge -s'? emerge esearch |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
Bushmann Tux's lil' helper
![Tux's lil' helper Tux's lil' helper](/images/ranks/rank_rect_1.gif)
![](images/avatars/gallery/Southpark/avatar13.gif)
Joined: 30 Aug 2002 Posts: 137 Location: Germany
|
Posted: Fri Oct 31, 2003 11:30 am Post subject: |
|
|
Das ist wirklich cool...
aber ein Feature fehlt mir noch: Ich habe hier mehrere Rechner rumstehen, wovon einer sozusagen als "Server" fungiert und sein /usr/portage Verzeichnis freigeben hat. D.h. die anderen greifen auf dieses Verzeichnis per NFS zu, was den Vorteil hat dass zum einen nur ein Rechner (per cronjob) emerge sync ausführen muss, zum anderen alle distfiles zentral gelagert sind.
Jetzt ist natürlich das Problem, dass ich auch auf allen Rechnern "esearch" verwenden will allerdings ist ja die Datenbank lokal gespeichert, jeder Rechner muss also ab und zu eupdatedb ausführen.
Ich weiß nicht vielleicht hat ja einer von euch 'ne Idee wie man das elegant lösen kann?
Ansonsten: good work ![Wink ;)](images/smiles/icon_wink.gif) |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
dertobi123 Retired Dev
![Retired Dev Retired Dev](/images/ranks/rank-retired.gif)
![](images/avatars/42696162406a7dbbefaeb.gif)
Joined: 19 Nov 2002 Posts: 2679 Location: Oberhausen, Germany
|
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
Bushmann Tux's lil' helper
![Tux's lil' helper Tux's lil' helper](/images/ranks/rank_rect_1.gif)
![](images/avatars/gallery/Southpark/avatar13.gif)
Joined: 30 Aug 2002 Posts: 137 Location: Germany
|
Posted: Fri Oct 31, 2003 1:06 pm Post subject: |
|
|
die Sache ist ja, dass ich nicht will, dass jeder Rechner einen eigenen cronjob hat... sondern nur der Server, und die anderen sollen auf dessen Datenbank zugreifen können.
Außerdem ist cronjob bei esearch nicht wirklich sinnvoll. Die Datenbank muss ja nur bei "emerge sync" geändert werden. Den führt aber nur der Server aus. |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
Genone Retired Dev
![Retired Dev Retired Dev](/images/ranks/rank-retired.gif)
![](images/avatars/21004157514287ab2b29021.jpg)
Joined: 14 Mar 2003 Posts: 9625 Location: beyond the rim
|
Posted: Fri Oct 31, 2003 5:15 pm Post subject: |
|
|
die Datanbank auf den Clients löschen und stattdessen einen Symlink auf die DB auf dem Server machen ? |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
dertobi123 Retired Dev
![Retired Dev Retired Dev](/images/ranks/rank-retired.gif)
![](images/avatars/42696162406a7dbbefaeb.gif)
Joined: 19 Nov 2002 Posts: 2679 Location: Oberhausen, Germany
|
Posted: Fri Oct 31, 2003 6:04 pm Post subject: |
|
|
Genone wrote: | die Datanbank auf den Clients löschen und stattdessen einen Symlink auf die DB auf dem Server machen ? |
Zum einen muss dann mehr als das Portage verzeichnet exportiert werden (Sicherheitsaspekt, NFS?), zum anderen funktioniert diese Variante nur sinnvoll, wenn auf allen Rechner identische Programme/Programmversionen installiert sind, da eupdatedb diese indiziert.
Tobias _________________ Ganz frisch: Praxisbuch Nagios
Gentoo Linux - Die Metadistribution (2. Auflage) |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
Genone Retired Dev
![Retired Dev Retired Dev](/images/ranks/rank-retired.gif)
![](images/avatars/21004157514287ab2b29021.jpg)
Joined: 14 Mar 2003 Posts: 9625 Location: beyond the rim
|
Posted: Fri Oct 31, 2003 6:15 pm Post subject: |
|
|
Man kann die DB auch nach /usr/portage/local verschieben (wird bei emerge --sync nicht überschrieben/gelöscht) und die Symlinks auf allen Rechnern machen. Dass die Versionen nicht immer stimmen ist sowieso nicht zu vermeiden ausser man lässt eupdatedb nach jedem emerge laufen (zumindest bis esearch lernt die "Live" Versionen zu benutzen ) |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
dertobi123 Retired Dev
![Retired Dev Retired Dev](/images/ranks/rank-retired.gif)
![](images/avatars/42696162406a7dbbefaeb.gif)
Joined: 19 Nov 2002 Posts: 2679 Location: Oberhausen, Germany
|
Posted: Fri Oct 31, 2003 6:25 pm Post subject: |
|
|
Fein, /usr/portage/local kannte ich noch nicht, Portage ist halt mehr deine wie meine Baustelle
Bei mehreren Rechnern im Netzwerk gehe ich aber mal davon aus, dass nicht 10 mal am Tag was emerged wird und somit ein täglicher Cron Job reichen sollte.
@Bushmann
Was genau spricht denn gegen den Cron Job?
BTW: Wenn esearch Live-Versionen unterstützt, ist es vermutlich genauso schnell wie 'emerge -s'
Tobias _________________ Ganz frisch: Praxisbuch Nagios
Gentoo Linux - Die Metadistribution (2. Auflage) |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
Basti_litho Apprentice
![Apprentice Apprentice](/images/ranks/rank_rect_2.gif)
Joined: 13 Aug 2002 Posts: 179
|
Posted: Fri Oct 31, 2003 8:43 pm Post subject: |
|
|
ich wollte auch nur ganz kurz mein Lob aussprechen!
Wirklich ne super Idee - Danke ![Smile :)](images/smiles/icon_smile.gif) _________________ Aktives Mitglied bei:
Folding@Home
http://folding.stanford.edu/
Team: Germany (Nr. 3) |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
Bushmann Tux's lil' helper
![Tux's lil' helper Tux's lil' helper](/images/ranks/rank_rect_1.gif)
![](images/avatars/gallery/Southpark/avatar13.gif)
Joined: 30 Aug 2002 Posts: 137 Location: Germany
|
Posted: Fri Oct 31, 2003 11:59 pm Post subject: |
|
|
gegen Cronjob spricht, dass die Rechner nicht den ganzen Tag laufen, und wenn sie mal laufen möchte ich so wenig wie möglich "Hintergrundbelastung".
Außerdem wie gesagt, wenn mein Server "rsyncd", muss danach im Prinzip sofort der cronjob auf dem Client ausgeführt werden, sonst stimmts ja nicht mehr. Das würde gehen, wenn man das zeitlich einrichtet, allerdings kann es ja sein dass der Client zu dem Zeitpunkt garnicht an ist, außerdem kann ja gelegentlich auf dem Server ein "außerplanmäßiges" rsync gemacht werden, auch dann stimmen ja die Datenbanken auf den Clients nicht mehr.
Es ist nicht weiter schlimm, es geht auch ohne Netzwerkfähigkeit, nur es dauert halt eine ganze Weile die Datenbank zu indizieren, und wenn das jeder Rechner machen muss (es ist ja im Prinzip immer das gleiche) ist das ja eigentlich überflüssig (afaik). Vielleicht fällt mir oder euch ja noch ne Lösung ein ![Wink ;)](images/smiles/icon_wink.gif) |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
ian! Bodhisattva
![Bodhisattva Bodhisattva](/images/ranks/rank-bodhisattva.gif)
![](images/avatars/1114116401443d66f15cb90.jpg)
Joined: 25 Feb 2003 Posts: 3829 Location: Essen, Germany
|
Posted: Sat Nov 01, 2003 9:04 am Post subject: |
|
|
Ich muss zwischendurch auch nochmal ein Lob loswerden. Wirklich ein sehr gutes Tool. Das wird mir das eine oder andere graue Haar ersparen (während man sonst mal wieder auf 'emerge -s' warten würde).
Gruß,
ian! _________________ "To have a successful open source project, you need to be at least somewhat successful at getting along with people." -- Daniel Robbins |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
Genone Retired Dev
![Retired Dev Retired Dev](/images/ranks/rank-retired.gif)
![](images/avatars/21004157514287ab2b29021.jpg)
Joined: 14 Mar 2003 Posts: 9625 Location: beyond the rim
|
Posted: Sat Nov 01, 2003 12:16 pm Post subject: |
|
|
dertobi123 wrote: | BTW: Wenn esearch Live-Versionen unterstützt, ist es vermutlich genauso schnell wie 'emerge -s' ![Wink ;)](images/smiles/icon_wink.gif) |
Nicht unbedingt, zumindest die installierte Version lässt sich einfach in /var/db/pkg nachschauen. Mal sehen, vielleicht mach ich da mal einen Patch für. |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
haceye Apprentice
![Apprentice Apprentice](/images/ranks/rank_rect_2.gif)
![](images/avatars/3636336083f1412752df49.png)
Joined: 22 May 2003 Posts: 187 Location: Stuttgart, Germany
|
Posted: Sat Nov 01, 2003 12:27 pm Post subject: |
|
|
Genone wrote: | dertobi123 wrote: | BTW: Wenn esearch Live-Versionen unterstützt, ist es vermutlich genauso schnell wie 'emerge -s' ![Wink ;)](images/smiles/icon_wink.gif) |
Nicht unbedingt, zumindest die installierte Version lässt sich einfach in /var/db/pkg nachschauen. Mal sehen, vielleicht mach ich da mal einen Patch für. |
Ja, das stimmt. Der Geschwindigkeits-Verlust ist wahrscheinlich nicht so groß. Könnte ich auch mal ausprobieren.
Zu dem Problem mit dem eupdatedb - index: Ich würde es wahrscheinlich auch so machen wie Genone, dass man einen Symlink auf den Index auf dem Server macht.
Wenn esearch wirklich wie oben beschrieben die installierte Version "live" nachschaut, wäre auch das Problem gelöst, dass auf verschiedenen Rechnern ja verschiedene Programmversionen installiert sein können.
An alle anderen: Danke für das Lob...
David _________________ faster 'emerge -s'? emerge esearch |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
|