Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
esearch: schnelles 'emerge -s' (python script)
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German)
View previous topic :: View next topic  
Author Message
haceye
Apprentice
Apprentice


Joined: 22 May 2003
Posts: 187
Location: Stuttgart, Germany

PostPosted: Wed Jul 09, 2003 6:15 pm    Post subject: esearch: schnelles 'emerge -s' (python script) Reply with quote

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
View user's profile Send private message
gordin
Guru
Guru


Joined: 11 Oct 2002
Posts: 300
Location: Germany/WI

PostPosted: Thu Jul 10, 2003 11:31 am    Post subject: Klappt sehr gut Reply with quote

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
View user's profile Send private message
haceye
Apprentice
Apprentice


Joined: 22 May 2003
Posts: 187
Location: Stuttgart, Germany

PostPosted: Thu Jul 10, 2003 5:17 pm    Post subject: Re: Klappt sehr gut Reply with quote

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
View user's profile Send private message
Bushmann
Tux's lil' helper
Tux's lil' helper


Joined: 30 Aug 2002
Posts: 137
Location: Germany

PostPosted: Fri Oct 31, 2003 11:30 am    Post subject: Reply with quote

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 ;)
Back to top
View user's profile Send private message
dertobi123
Retired Dev
Retired Dev


Joined: 19 Nov 2002
Posts: 2679
Location: Oberhausen, Germany

PostPosted: Fri Oct 31, 2003 12:28 pm    Post subject: Reply with quote

Bushmann wrote:
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?

eupdatedb per Cron Job?

Tobias
_________________
Ganz frisch: Praxisbuch Nagios
Gentoo Linux - Die Metadistribution (2. Auflage)
Back to top
View user's profile Send private message
Bushmann
Tux's lil' helper
Tux's lil' helper


Joined: 30 Aug 2002
Posts: 137
Location: Germany

PostPosted: Fri Oct 31, 2003 1:06 pm    Post subject: Reply with quote

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
View user's profile Send private message
Genone
Retired Dev
Retired Dev


Joined: 14 Mar 2003
Posts: 9625
Location: beyond the rim

PostPosted: Fri Oct 31, 2003 5:15 pm    Post subject: Reply with quote

die Datanbank auf den Clients löschen und stattdessen einen Symlink auf die DB auf dem Server machen ?
Back to top
View user's profile Send private message
dertobi123
Retired Dev
Retired Dev


Joined: 19 Nov 2002
Posts: 2679
Location: Oberhausen, Germany

PostPosted: Fri Oct 31, 2003 6:04 pm    Post subject: Reply with quote

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
View user's profile Send private message
Genone
Retired Dev
Retired Dev


Joined: 14 Mar 2003
Posts: 9625
Location: beyond the rim

PostPosted: Fri Oct 31, 2003 6:15 pm    Post subject: Reply with quote

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 :wink:)
Back to top
View user's profile Send private message
dertobi123
Retired Dev
Retired Dev


Joined: 19 Nov 2002
Posts: 2679
Location: Oberhausen, Germany

PostPosted: Fri Oct 31, 2003 6:25 pm    Post subject: Reply with quote

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
View user's profile Send private message
Basti_litho
Apprentice
Apprentice


Joined: 13 Aug 2002
Posts: 179

PostPosted: Fri Oct 31, 2003 8:43 pm    Post subject: Reply with quote

ich wollte auch nur ganz kurz mein Lob aussprechen!

Wirklich ne super Idee - Danke :)
_________________
Aktives Mitglied bei:

Folding@Home
http://folding.stanford.edu/

Team: Germany (Nr. 3)
Back to top
View user's profile Send private message
Bushmann
Tux's lil' helper
Tux's lil' helper


Joined: 30 Aug 2002
Posts: 137
Location: Germany

PostPosted: Fri Oct 31, 2003 11:59 pm    Post subject: Reply with quote

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 ;)
Back to top
View user's profile Send private message
ian!
Bodhisattva
Bodhisattva


Joined: 25 Feb 2003
Posts: 3829
Location: Essen, Germany

PostPosted: Sat Nov 01, 2003 9:04 am    Post subject: Reply with quote

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). :wink:

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
View user's profile Send private message
Genone
Retired Dev
Retired Dev


Joined: 14 Mar 2003
Posts: 9625
Location: beyond the rim

PostPosted: Sat Nov 01, 2003 12:16 pm    Post subject: Reply with quote

dertobi123 wrote:
BTW: Wenn esearch Live-Versionen unterstützt, ist es vermutlich genauso schnell wie 'emerge -s' ;)

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
View user's profile Send private message
haceye
Apprentice
Apprentice


Joined: 22 May 2003
Posts: 187
Location: Stuttgart, Germany

PostPosted: Sat Nov 01, 2003 12:27 pm    Post subject: Reply with quote

Genone wrote:
dertobi123 wrote:
BTW: Wenn esearch Live-Versionen unterstützt, ist es vermutlich genauso schnell wie 'emerge -s' ;)

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
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum