Ports vs. src: Anfängerfrage

d-ra

Well-Known Member
Mir ist der Unterschied zwischen dem Basissystem unter /usr/src/ und den Anwendungen unter /usr/ports/ im wesentlichen klar. Nur zwei Dinge sind mir noch etwas schleierhaft:

1.) Wenn man das Basissystem unter /usr/src/ updatet, sagen wir von 5.3. nach 5.4. (cvsup und dann wie im Handbuch beschrieben make buildworld, buildkernel, mergemaster usw.) muss man danach die Ports auch neu bauen, oder erübrigt sich das?

2.) Die cvs tags wie RELENG_5_3 gelten ja für /usr/src/ und für die Ports soll man ja immer tag=. verwenden. Jetzt habe ich aber im Zeitplan für die Version 5.4 gelesen, dass auch in den Ports ein RELENG_5_4 zu einem bestimmten Zeitpunkt gesetzt wird. Dient das nur als snapshot zur Erstellung der CD images? Oder hat das noch etwas anderres zu bedeuten?
 
d-ra schrieb:
1.) Wenn man das Basissystem unter /usr/src/ updatet, sagen wir von 5.3. nach 5.4. (cvsup und dann wie im Handbuch beschrieben make buildworld, buildkernel, mergemaster usw.) mus man danach die Ports auch neu bauen, oder erübrigt sich das?
Nein, innerhalb eines stabilen Zweiges (wie 5.x) wird peinlichst genau darauf geachtet, dass genau das nicht notwendig ist. Man muss allerdings hin und wieder Teile der Ports neu bauen, wenn man bestimmte Ports (wie z.B. Perl) aktualisiert. Falls das notwendig ist, ist das aber in /usr/ports/UPDATING vermerkt, inklusive der Anweisungen, die man ausführen muss.

d-ra schrieb:
2.) Die cvs tags wie RELENG_5_3 gelten ja für /usr/src/ und für die Ports soll man ja immer tag=. verwenden. Jetzt habe ich aber im Zeitplan für die Version 5.4 gelesen, dass auch in den Ports ein RELENG_5_4 zu einem bestimmten Zeitpunkt gesetzt wird. Dient das nur als snapshot zur Erstellung der CD images? Oder hat das noch etwas anderres zu bedeuten?
Genau. Hier muss man aber zwischen Tags und Branches unterscheiden. Bei einem Tag bekommt eine bestimmte Version einer Datei nur einen Namen. Das wird bei den Ports verwendet um solch einen Snapshot zu machen. Bei /usr/src verwendet man hingegen einen Branch. Das ist eine Erweiterung des Tag-Prinzips insofern, dass man auch Veränderungen machen kann, die vom Rest des CVS unabhängig sind. D. h. man kann Änderungen an einer Datei in RELENG_5_3 machen, ohne dass sie jemals in RELENG_5_4 auftauchen. Das wird beispielsweise bei Security-Updates gemacht.

Insofern sollte man bei Ports immer "." als Tag setzen. Bei /usr/src muss man sich dann überlegen was man will: Entweder nur Sicherheitsupdates, dann RELENG_5_3 oder bald RELENG_5_4, die Entwicklungsversion des stabilen Zweiges, dann RELENG_5 (-STABLE), oder die aktuelle Entwicklungsversion mit "." (-CURRENT).

Markus
 
Danke für die Ausführungen :) Langsam klären sich die vielen Fragen die einem Neuling so durch den Kopf schwirren.
 
Zuletzt bearbeitet:
Zurück
Oben