Gesucht: Werkzeug für Paket-Upgrades

Daemotron

Well-Known Member
Kurz zum Verständnis: Auf meinem Server gönne ich mir ein extra Jail, in dem ich aus den benötigten Ports Packages baue (die meisten werden in mehreren Jails benötigt, so spare ich mir Kompilier-Arbeit). Diese Packages werden per Nullfs-Mount (read-only) den anderen Jails zur Verfügung gestellt und lassen sich dort bequem mit pkg_add installieren.

So weit, so gut. Jetzt fehlt mir allerdings ein Werkzeug, mit dem ich aktualisierte Pakete in den Produktiv-Jails einspielen kann (FreeBSD fehlt leider bei pkg_add die Option -u :( ). Ich habe mir pkg_replace angesehen; leider verweigert das Tool den Dienst, wenn es den Ports-Tree nicht findet (den ich natürlich in den Produktiv-Jails nicht eingebunden habe, da Software ja in Form von Packages bereit gestellt wird). Dasselbe gilt für portupgrade, nur dass selbiges auch noch in /usr/ports herumschreiben möchte (und das geht nun mal grade gar nicht, dann müsste ich ja wirklich für jedes Jail einen eigenen Ports-Tree bereitstellen).

Frage an Euch: gibt es irgend ein anderes Tool, mit dem sich das bewerkstelligen lässt? Oder muss ich jetzt tatsächlich den Ports Tree in meine diversen Jails einbinden, damit pkg_replace glücklich ist und seinen Job macht?
 
Also ich habe den Portstree via nullfs readonly in alle Jails eingebunden.

Das stellt alle Tools zufrieden und kostet nix. ;-)

Beste Grüße

Der Indy
 
Wenn man dann noch WRKDIRPREFIX setzt werden auch keine Schreiboperationen im Portstree mehr benötigt, nicht mal in der Jail, die die Pakete baut.
 
@Kamikaze: Das habe ich bereits so realisiert. Das mit dem schreiben wollen ist tatsächlich nur eine schlechte Angewohnheit von portupgrade, der darauf besteht, unter /usr/ports seine DB-Files ablegen zu können. Ich benutze schon länger nur noch portmaster, hatte portupgrade nur wegen seiner -P bzw. -PP-Option in Erwägung gezogen (die fehlt leider bei portmaster noch, ansonsten wäre es perfekt ;) )
 
Naja, darauf "bestehen" ist ein wenig uebertrieben. Man kann portupgrade natuerlich sagen, wohin er das Zeug speichern soll. Das musste ich machen, weil ich den gleichen Tree lange Zeit fuer 6 und 7 verwendet hatte.

in pkgtools.conf:
Code:
ENV['PKG_DBDIR'] ||= '/var/db/pkg'
ENV['PORTS_DBDIR'] ||= ENV['PKG_DBDIR']

Aber such mal nach einem in python geschriebenem Tool von Michael Talon (pkg_upgrade oder so)

Achja, und wenn das Teil gut funktioniert, dann lass bitte was dazu hoeren, ich benoetige auch ein Package-Upgrade Tool, welches ohne /usr/ports/ auskommt. Merci!
 
pkgupgrade (Link) von Michel Talon ist leider auch Portstree-abhängig. Vom überfliegen des Quelltextes her würde ich auch sagen, dass der eigentliche Upgrade-Mechanismus recht primitiv ist - pkg_delete -f und dann ein pkg_add -f. Das wäre mir aber ehrlich gesagt zu heiß, weil man damit sein System ganz schön vermurksen kann.

Da ich im Moment weder Zeit noch Muße habe, pkgupgrade anzupassen oder ein eigenes Programm dafür zu schreiben, binde ich jetzt einfach den Portstree ro per Nullfs in meine Jails ein - dann funktioniert immerhin pkg_replace problemlos (portupgrade zieht mir zu viele Abhängigkeiten, da bleibe ich lieber bei der "schlanken" Alternative).
 
Back
Top