Da die Frage immer wieder auftaucht, mache ich hier mal ein kurzes HowTo, wie man die Ports sauber neu baut ohne dabei unnötig viel neu zu bauen.
Vorausgesetzt werden die Installation von ports-mgmt/portupgrade oder ports-mgmt/portmaster und sysutils/bsdadminscripts.
Als erstes muss compat6x installiert werden:
Portupgrade Nutzer:
Portmaster Nutzer:
Nun muss das System von alten Libraries bereinigt werden. Dank der Installation von compat6x sollte alles trotzdem weiterfunktionieren. Egal ob mit freebsd-update oder per selbst bauen aktualisiert wurde, dafür werden die Sourcen in /usr/src benötigt. Für freebsd-update haben die richtigen Sourcen das RELENG_7_0 Tag. Im Wiki gibt es ein csup-HowTo, das erklärt wie die Sourcen beschafft werden.
Nun geht es ans eigentliche Updaten. Dazu werden mit pkg_libchk alle Pakete ermittelt, die direkt mit Compat-Libraries verlinkt oder sonst wie nicht in Ordnung sind. OpenOffice und JDKs müssen hier ausgespart werden, da sie immer gegen nicht existierende Libraries linken. Sie sollten am Schluss manuell einmal aktualisiert werden.
Für portupgrade Nutzer:
Für portmaster Nutzer:
Sollte das Bauen eines Ports scheitern gilt es das Problem zu beheben und den Befehl noch einmal aufzurufen.
Der pkg_libchk Durchlauf dauert leider seine Zeit, aber er spart eben auch in der Regel das Neubauen einiger 100 Ports.
Natürlich kann der portupgrade-Befehl um den Parameter -P erweitert werden um, wenn möglich, fertige Pakete zu verwenden.
Vorausgesetzt werden die Installation von ports-mgmt/portupgrade oder ports-mgmt/portmaster und sysutils/bsdadminscripts.
Als erstes muss compat6x installiert werden:
Portupgrade Nutzer:
Code:
# portinstall misc/compat6x
Code:
# portmaster misc/compat6x
Nun muss das System von alten Libraries bereinigt werden. Dank der Installation von compat6x sollte alles trotzdem weiterfunktionieren. Egal ob mit freebsd-update oder per selbst bauen aktualisiert wurde, dafür werden die Sourcen in /usr/src benötigt. Für freebsd-update haben die richtigen Sourcen das RELENG_7_0 Tag. Im Wiki gibt es ein csup-HowTo, das erklärt wie die Sourcen beschafft werden.
Code:
# cd /usr/src
# yes | make -B delete-old
# yes | make -B delete-old-libs
Nun geht es ans eigentliche Updaten. Dazu werden mit pkg_libchk alle Pakete ermittelt, die direkt mit Compat-Libraries verlinkt oder sonst wie nicht in Ordnung sind. OpenOffice und JDKs müssen hier ausgespart werden, da sie immer gegen nicht existierende Libraries linken. Sie sollten am Schluss manuell einmal aktualisiert werden.
Für portupgrade Nutzer:
Code:
# pkg_libchk -qo | grep -vE 'jdk|openoffice' | xargs -o portupgrade -fu
Für portmaster Nutzer:
Code:
# pkg_libchk -qo | grep -vE 'jdk|openoffice' | xargs -o portmaster -D
Sollte das Bauen eines Ports scheitern gilt es das Problem zu beheben und den Befehl noch einmal aufzurufen.
Der pkg_libchk Durchlauf dauert leider seine Zeit, aber er spart eben auch in der Regel das Neubauen einiger 100 Ports.
Natürlich kann der portupgrade-Befehl um den Parameter -P erweitert werden um, wenn möglich, fertige Pakete zu verwenden.
Last edited:
