wie auch immer, zu dem Update findest du auch Hinweise in der /usr/ports/UPDATING und wenn du hier ein wenig suchst oder einfach nur liest, findest du eine ganze Reihe von Beiträgen, die sich mit Problemen während der letzten beiden Wochen dazu äußern. Ich will es mal so sagen: es ist derzeit nicht so einfach!
Du weißt grundsätzlich, was die Ports sind?
Darin befindet sich ja keine Software (alle, die es besser wissen, entschuldigen hier bitte meine vereinfachte Darstellung, sie soll Zielführend sein). Es ist eher eine Sammlung von Informationenen darüber, wo sich die entsprechenden Quellcodes im WWW befinden und zusätzliche Informationen und Hilfen zum Bauen der Software aus diesen Quellen. Die Hilfen, Optionen und Informationen sind eigens für FreeBSD angepaßt, um ein sehr vereinfachtes Bauen aus den Quellen zu erlauben. Es braucht sich eigentlich nie jemand Gedanken zu machen oder Dokumentationen dazu zu lesen, die immer gleichen Befehle führen allerallermeistens zu einem direkten Erfolg.
Diese Informationen sind organisiert, damit die ungefähr 20.000 möglichen Quellen auch einigermaßen übersichtlich gehandhabt werden können.
Selbstredend ändert sich auf der Quellseite dauernd was, weil alles immer weiter entwickelt wird. Manchmal sind solche Änderungen wirklich banal, es kann sich etwa die Adresse im Internet ändern, eine Version kann sich ändern, weil Rechschreibfehler in der zugehörigen Dokumentation korrigiert wurden oder ähnlich lapidare Dinge, manchmal sind die Änderungen aber sehr dramatisch, bis hin zum vollkommenen Verschwinden mancher Codes.
Deshalb muß der Portstree dauernd angepasst werden, um all den Änderungen gerecht zu werden. Außerdem sind manche der Informationen zum Bau der Software streng an eine bestimmte Version des zugehörigen BSD gebunden und auch da muß natürlich gelegentlich angepasst werden.
insgesamt gibt es viele, sehr viele Dinge, die stets aufeinander wirken und ständig angepasst werden müssen. Das ist eine unglaubliche Arbeit (die meist einigermaßen automatisiert läuft).
Auf der Anwenderseite erfordert das auch ein hohes Maß an Kompetenz, wie mit den jeweiligen Änderungen und daraus abgeleiteten Abhängigkeiten umgegangen werden muß. Dabei sind portupgrade und portmaster grandiose Hilfswerkzeuge, die sehr vieles automatisieren können und deshalb so beliebt sind.
Sie können, je nach Option, ganze Abhängigkeiten auflösen, ja, sogar komplette Updates aller installierter Software und ihrer Abhängigkeiten erledigen sie. Dabei greifen sie (wieder abhängig von der gewählten Arbeitsweise) wahlweise auf fertig gepackte Software zu oder sie nutzen die Informationen aus dem Portstree, um diese Software aus den Quellen in benötigter Version zu bauen.
Nun siehst du leicht, wie verherend es ist, wenn die Information im Portstree nicht stimmt. Zwangsläufig werden nicht nur die falschen Versionen eingebaut, sondern auch Abhängigkeiten falsch bestimmt und sogar die Anweisungen zum Bau der Software kann ungültig sein (wenn etwa ein Patch gefordert wird, das gar nicht zu finden ist).
Also, den Portstree aktuallisieren bedeutet so ungefähr, eine Liste bauen, eine Inhaltsangabe zu den diversen Quellen und ihren Möglichkeiten. Die muß stimmen und verändert sich laufend.
Dieser Inhaltsangabe bedienen sich dann auch die Werkzeuge, die eine Installation von Software zur Aufgabe haben und sich dabei um weiteregehende Angelegenheiten kümmern.
Nochmal: portsnap (oder auch cvsup oder csup) aktuallisieren die Inhaltsangabe, den Portstree mit seinen Informationen (auch die /usr/ports/UPDATING mit ihren wichtigen Hinweisen), portupgrad und portmaster nutzen diese Informationen, um Software in Abhängigkeit von der gewählten Option aus dem Netz zu ziehen und einzubauen und vielleicht auch die Quellen zu suchen, zu laden und schließlich daraus auch passende Software direkt auf dem Rechner zu bauen. Portupgrade und portmaster können auch so geschaltet werden, daß sie ausschließlich fertige Pakete nutzen, dann brauchen sie die Inhaltsangabe nicht, sondern greifen auf ein vorbestimmtes Ziel zu, das die fertigen Pakete zur Verfügung stellen muß. pkg_add ist ein ähnliches Tool, das einzelne Pakete einbaut (auch aus dem Internet bezieht) und dazu ebenfalls keine Information aus dem Portstree benötigt.
Logisch, daß dann, wenn du alles nur selbst aus den Quellen bauen willst, natürlich die Information aus dem Portstree auch am wichtigsten ist. Weil es aber schon mal für Anwendungen keine fertigen Pakete mit den von dir gebrauchten Optionen gibt, wird fast immer ein Update oder eine Installation von Anwendungen auch auf die Ports zugreifen und dann dann eben auch die Informationen aus dem Portstree brauchen, die dann eben auch aktuell sein muß.