FreeBSD: Ports durchbrechen die Schallmauer

asg

push it, don´t hype
Nachdem schon Mitte 2003 die Ports-Collection mehr als 9000 Ports enthielt, ist die Schallmauer von 10.000 Ports Ende 2003 nun durchbrochen worden.
Bei freshports.org ist der jetzige Stand bei 10022 Ports.

Unter http://www.freebsd.org/ports/growth/status.png]http://www.freebsd.org/ports/growth/status.png gibt es eine kleine Grafik mit der Messung der Anzahl der Ports.

Broken sind zur Zeit 62 Ports und forbidden 4.

So schön auch die Quantität der Ports ist, umso problematischer könnte es sich für das gesammte Portssystem erweisen. Es Häufen sich die Aussagen das der Aufbau der INDEX, bzw. INDEX.db mittels "portsdb" (ein Teil von portsupgrade) sehr lange, bis unerträglich lange dauert. So vergehen hierbei keine Minuten, sondern je nach Maschine auch mal eine Stunde.
Sicher, ein Arbeiten geht nebenher, sicher, die Konsistenz ist gewahrt und der Aufbau des INDEX funktioniert (meist) klaglos, aber die Zeit die dabei vergeht ist für viele einfach nicht mehr angebracht. So soll bei gentoo, die das Portsystem von FreeBSD übernommen haben und dabei eigene Erweiterungen integrierten, der Aufbau der INDEX Datei schneller von statten gehen, wobei anzumerken ist, das Gentoo etwas mehr als Hälfte an packages (5804) in den Ports vorzuweisen hat (http://www.gentoo.org/dyn/pkgs/index.xml).
Je umfangreicher der Portstree wird, umso länger dauert der Aufbau des INDEX.
Dies tut dem FreeBSD Ports-System aber keinen Abbruch, ein System befindet sich im steten Wandel, und zu diesem System gehört auch der Ports-Tree, der sicher eine Wandlung durchmachen wird, wenn sich jemand findet der diese auch anstrebt.
 
Original geschrieben von asg
Broken sind zur Zeit 62 Ports und forbidden 4.


Leider laesst die Qualitaet der Ports teilweise zu wünschen übrig im Wahn die 10.000 Grenze zu durchstossen.

So schön auch die Quantität der Ports ist, umso problematischer könnte es sich für das gesammte Portssystem erweisen.

Meine Rede seit langer Zeit

Es Häufen sich die Aussagen das der Aufbau der INDEX, bzw. INDEX.db mittels "portsdb" ...So vergehen hierbei keine Minuten, sondern je nach Maschine auch mal eine Stunde.

Oder Stunden. Ein aktueller Abgleich gestern Nacht auf meinem 366MHZ Notebook mit 4.200 Platte hat 4 Stunden gedauert oder noch etwas laenger.

So soll bei gentoo, die das Portsystem von FreeBSD übernommen haben und dabei eigene Erweiterungen integrierten, der Aufbau der INDEX Datei schneller von statten gehen, wobei anzumerken ist, das Gentoo etwas mehr als Hälfte an packages (5804) in den Ports vorzuweisen hat

Um genau zu sein, auf einer normalen Workstation mit Athlon 2400 und einer 7200 Platte dauert ein emerge sync 4 Minuten das ist gleichbedeutend wie ein

Code:
cvsup ports-supfile
cvsup stable-supfile
portsdb -Uu
pkgdb -F

bei
Code:
qpkg | wc -l
5932 Ports
 
Reiche ich noch nach. Beim obigen Beispiel hat der download (sync) ca. 2,5 Minuten gedauert und die Indexierung ca 1,5 Minuten.
 
Original geschrieben von grunix
Wie lange dauert der portsdb -Uu auf dem Athlon?

So das kann ich jetzt nachreichen. Also beide Systeme befinden sich auf baugleichen Festplatten IBM IDE 7200 2MB Cache die im Wechselrahmen stecken. Also gleiche Bedingungen.

Ich habe etwas zugunsten von FreeBSD geschummelt. Mit fastest_cvsup wurde der schnellste Server in DE angesprochen und ich habe nur ein

Code:
cvsup ports-supfile
portsdb -Uu
pkgdb -F

gemacht. Ein Sourcenupdate habe ich nicht vorgenommen.

Die Zeit für den Cvsup-Lauf lag bei ca. 2 Min identisch mit dem von Gentoo.

portsdb -Uu hat ca. 20 Minuten gebraucht. Zum Vergleich Gentoo lag hier bei ca. 1,5 Minuten. Setzt man das in Relation zu 6000 Ports zu 10.000 Ports so müsste Gentoo bei 10.000 Ports ca. 2,5 Minuten benötigen.

D.h, beim derzeitigen Stand ist Gentoos Indexierung um ca. 1300% schneller und in Relation bei gleicher Anzahl von Ports um ca. 800% schneller.

Hier muss ich anmerken das nur X mit Fluxbox und zwei Xterms gestartet war. In einem xterm lief per script mein cvsup & Co. und im anderen xterm Top. Ruby und Make das für portsdb benötigt wird haben sämtliche verfügbaren Ressourcen an sich gezogen. Hätte ich jetzt wie asg in seinem Text erwähnte noch andere Applikationen laufen gehabt, so hätte sich die Zeit weiter nach hinten verschoben.

Die Gesamtlaufzeit hat also ca. 22 Minuten betragen. Wie die Laufzeit bei meinem Notebook und Gentoo ist muss ich demnächst mal ausprobieren denn 4 Stunden sind schon nicht mehr feierlich bei FreeBSD. Wie gesagt arbeiten ist da nicht wirklich drin.

So ich hoffe das war so neutral wie möglich.
 
warum lädst du dir nicht einfach die ports.tar.gz von einem ftp?
 
Zuletzt bearbeitet:
Wobei 22 Minuten durchaus im vertretbaren Rahmen sind. Meiner Meinung nach. Da man ja nicht daneben sitzt und darauf warten muss bis der das INDEX aufgebaut hat.
Etwas am Thema vorbei, wie funktioniert der port kram bei gentoo? Gibt es da auch eine INDEX? Oder 2 wie bei FreeBSD?
Wie gross, Speicherplatz, ist das Portsystem von Gentoo bis dato?

EDIT
Machst Du den sync via CVS oder rsync bei gentoo?
 
Original geschrieben von asg
Etwas am Thema vorbei, wie funktioniert der port kram bei gentoo? Gibt es da auch eine INDEX? Oder 2 wie bei FreeBSD?

Das kann ich gar nicht sagen. Der Aufbau hat mich nie wirklich interessiert. Habe gerade mal die beiden Dokus überflogen aber nichts auf die schnelle gefunden. Was ich weiss ist, das es ähnlich nicht identisch mit dem Portssystem von FreeBSD ist.

Wie gross, Speicherplatz, ist das Portsystem von Gentoo bis dato?
Code:
du -sh /usr/portage/
308M    /usr/portage

Davon können wir abziehen. Da lösche ich wie unter FreeBSD des öfteren mal.
Code:
du -sh /usr/portage/distfiles/
11M     /usr/portage/distfiles

Machst Du den sync via CVS oder rsync bei gentoo?
Unter Gentoo ist es rsync heute sync (gleichbedeutend) cvsup wird nicht benutzt. Ob das Vor- oder Nachteile hat, weiss ich nicht. Wenn ich die Zeiten von vorhin mir betrachte schätze ich es als irrelevant ein welches System man verwendet.

Viel interessanter ist das updaten des Systemes im Gegensatz zur Befehlskette von FreeBSD aber das ist ein anderes Thema.
 
Ports als XML-Files

Wenn ich mich richtig erinnere gab es doch von Jordan Hubbard irgendwann letztes Jahr Überlegungen das Ports-System zu überarbeiten oder wie man es besser machen hätte können

Das es dann auf XML basiert und so abstrackter Verwaltet und verabeitet werden kann.

So dass z.B. aus den Paket-Metadaten leichter das Erstellen von verschieden Paketen wie (BSD, RPM und so ) möglich ist.

Kennt irgendwer was genaueres?

Attila
 
Original geschrieben von Aleister
Das kann ich gar nicht sagen. Der Aufbau hat mich nie wirklich interessiert. Habe gerade mal die beiden Dokus überflogen aber nichts auf die schnelle gefunden. Was ich weiss ist, das es ähnlich nicht identisch mit dem Portssystem von FreeBSD ist.

Genau dieser is aber das interessante daran um zu verstehen warum das eine schneller als das andere zu seien scheint.

du -sh /usr/portage/
308M /usr/portage

Das nimmt sich dann nichts. Interessant.

Unter Gentoo ist es rsync heute sync (gleichbedeutend) cvsup wird nicht benutzt. Ob das Vor- oder Nachteile hat, weiss ich nicht. Wenn ich die Zeiten von vorhin mir betrachte schätze ich es als irrelevant ein welches System man verwendet.

Die Zeiten beim download der neusten ports sind nicht erheblich, interessant ist wirklich warum das eine länger braucht als das andere, und das in diesem Ausmaße.
Ich glaube aber zu wissen das man unter Gentoo auch CVS nehmen kann um seinen portstree up to date zu halten.

Viel interessanter ist das updaten des Systemes im Gegensatz zur Befehlskette von FreeBSD aber das ist ein anderes Thema. [/B]

Wobei man dies auch einfacher haben kann, wenn man es denn so will und son schreibt.
Ein "make update" holt einem schonmal alle sourcen, src und ports und doc. Dies könnte man auch in einem script laufen lassen, oder dann eben manuell "portdb" anwerfen.
Der Umgang ist, wie es bei UNIXoiden System der Fall sein sollte, sehr flexibel.
 
Re: Ports als XML-Files

Original geschrieben von attila
Wenn ich mich richtig erinnere gab es doch von Jordan Hubbard irgendwann letztes Jahr Überlegungen das Ports-System zu überarbeiten oder wie man es besser machen hätte können

Das hatten wir schon alles in diesem Thread
http://www.bsdforen.de/forums/showthread.php?threadid=2305&highlight=cvsup

und hier ist nochmal der Artikel von Jordan Hubbard den ich damals bei Pro-Linux fand.
http://www.pro-linux.de/news/2002/4033.html

Das ganze ist fast 2 Jahre her und soweit ich weis, tut sich da nicht zu diesem Thema. In wie fern Jordan Hubbard bei Apple überhaupt Zeit und Lust dazu hat oder ob andere daran arbeiten ???

Vielleicht wartet man solange bis das System zusammenkracht. Parallelen zu unserem politischen System sind durchaus erwünscht.
 
@atilla
Hehe, naja, Jordan hat auch schon damals (1993) gesagt das sysinstall ein wilder hack ist und es doch schnell von was anderem ersetzt werden sollte....
So geshen kann das mit den Ports auch noch dauern. Und wenn ich mir die Baustelle FreeBSD 5 so ansehe, dann dauert das wohl auch noch.
Leider fehlen mit die Programmiererfahrungen als das ich mir das was überlegen könnte, wobei ich es gerne machen würde...
 
Original geschrieben von asg
Genau dieser is aber das interessante daran um zu verstehen warum das eine schneller als das andere zu seien scheint.


Klar das ist der interessante Punkt. Muss ich mal recherchieren.
Ansonsten hier sind die Dokus
http://www.gentoo.de/inhalte/doku/portage-user/
http://www.gentoo.de/inhalte/doku/portage-manual/

Die scheinbar aber nur den generellen Anwender betreffen und nicht detailiert in den Aufbau gehen.

Die Zeiten beim download der neusten ports sind nicht erheblich, interessant ist wirklich warum das eine länger braucht als das andere, und das in diesem Ausmaße.
Nein das downloaden war bei beiden identisch. Also auf der Gentoo-Seite (r)sync und auf der FreeBSD-Seite cvsup. Beides 2-2,5 Minuten. Der erhebliche Zeitunterschied lag im indexieren. Diesen hab ich bei Gentoo mit ca. 1,5 Minuten gemessen und bei FreeBSD mit ca. 20 Minuten. Hier setzt auch die Plattenperformance als zusätzliche Variable merklich ein.
 
Re: Re: Ports als XML-Files

Original geschrieben von Aleister
Vielleicht wartet man solange bis das System zusammenkracht. Parallelen zu unserem politischen System sind durchaus erwünscht. [/B]

Was dieser Kommentar soll ist auch nur Dir schlüssig.
Das Portsystem funktioniert, es wird langsamer, aber es funktioniert.
Jeder kann etwas dazu beitragen, das es besser wird, hast Du nicht eine Idee? Oder wird nur gemeckert aber sich nicht um die Innereien gekümmert wie das System funktioniert (das wäre das interessante bei portage, und meine Frage von vorhin an Dich wie es funktioniert)?
 

Hatte ich mir schon angsehen, geben nicht viel Auflschluss darüber wie das portage system aufgebaut ist. Leider.

Nein das downloaden war bei beiden identisch. Also auf der Gentoo-Seite (r)sync und auf der FreeBSD-Seite cvsup. Beides 2-2,5 Minuten. Der erhebliche Zeitunterschied lag im indexieren. Diesen hab ich bei Gentoo mit ca. 1,5 Minuten gemessen und bei FreeBSD mit ca. 20 Minuten. Hier setzt auch die Plattenperformance als zusätzliche Variable merklich ein. [/B]

Genau das meinte ich. Der Unterschied vom download war unerheblich, die Indexierung dann umso mehr. Und da würde es mich interessieren wie dies bei portage arbeitet.
 
Zurück
Oben