My Universe Logo

My Universe Blog » Entries Tagged as packet management

[CFT] jail-update 0.2.0-rc2 Ready for Testing

Posted by Jesco Freund at Oct. 10, 2009 4:35 p.m.

I am happy to announce that the second release candidate for the upcoming jail-update-0.2 release is ready for testing. You can grab the archive either from SourceForge or from my personal server (more convenient if you would like to download it using wget or fetch).

What's new? Most changes are not visible to users and only concern implementation internals. However, there are some major changes having a visible impact on the application behaviour:

  • The new -n option prevents any escape sequences in the output of jail-update. This is useful if you would like to run jail-update in a non-interactive way (e. g. as a cron job) and redirect its output into a file, email or similar.
  • Warnings and errors occurring entail a clearly visible, colour-coded output (amber for warnings, red for errors) – of course these colour markings get deactivated when run with the -n option…
  • The unpredictable behaviour concerning the jail order should be fixed by now; jails are now always processed in ascending order of their numeric jail ID.
  • The portmaster output indicating available port updates is more detailed now and contains the old version as well as the new one. Furthermore, the output is now grouped among the package classes used by portmaster (root, trunk, branch and leaf ports).

Please test this release candidate. Should you discover any issues, please let me know. Any feedback, particularly concerning the new output format, is welcome and will be taken into account.

Happy Testing!

No comments | Defined tags for this entry: FreeBSD, packet management, root-tools, scripting

jail-update 0.1.1 released

Posted by Jesco Freund at Aug. 1, 2009 10:43 a.m.

Die neue Version wurde an die kürzlich veröffentlichte portmaster-Version 2.8 angepasst und kann hier heruntergeladen werden. Da die alte Version 0.1.0 nicht mehr mit aktuellen Portmaster-Versionen (>=2.8) kompatibel ist, kann ich ein Update auf die neue Version nur dringend anraten (diese ist auch rückwärts-kompatibel zu älteren Portmaster-Versionen).

Bei Problemen oder Wünschen jeglicher Art (Bugreports, Feature Requests, …) bitte den Projekt-Tracker auf Sourceforge.net nutzen – hier in den Kommentaren geht das sonst eventuell unter…

No comments | Defined tags for this entry: jail, packet management, root-tools

Erstes Release von jail-update

Posted by Jesco Freund at May 15, 2009 10:41 p.m.

Im Rahmen des root-tools Projekts habe ich ein kleines Skript namens jail-update entwickelt, das es Admin erleichtert, alle laufenden Jails mittels portaudit auf verwundbare Pakete zu prüfen, verfügbare Updates aufzulisten und diese ggf. zu installieren. Nachdem ich in den letzten Wochen das Tool mit zufriedenstellenden Resultaten auf meinen Servern im Einsatz hatte, gibt es nun eine erste veröffentlichte Version (0.1.0) zum herunterladen. Feedback ist immer willkommen – gerne auch über den Projekt-Tracker

2 comments | Defined tags for this entry: jail, packet management, root-tools, software

Hacking Gentoo – Spaß mit glibc-Harakiri

Posted by Jesco Freund at Feb. 28, 2009 11:25 p.m.

Vor kurzem hat (versehentlich?) glibc-2.9 die harte Maskierung verloren und landete somit in Testing. Die Entwickler haben nun diese Version zumindest im Hardened Profil wieder maskiert. Ärgerlich (aber hinlänglich bekannt): ein Downgrade der glibc ist gar keine gute Idee und wird auch von den portage-Werkzeugen nicht unterstützt. Dennoch blockiert die (bei mir problemlos arbeitende) zu neue Version ein Upgrade von world. Da emerge eine entsprechende exclude-Option fehlt und das löschen des glibc-Eintrags aus dem World-File leider auch keine Besserung brachte, bleibt nur ein dreckiger Shell-Hack:

emerge $(emerge -pDNu --columns world | grep '^\[' | grep -v 'glibc' | awk '{print $4}')

Kleiner Hinweis am Rande: die Option --columns ist zwar recht nett, aber inkonsequent implementiert. Je nach Upgrade-, Downgrade- oder Rebuild-Flag variiert die Anzahl der Spalten. Ein anderes sinnvolles Trennzeichen ist leider auch nicht vorhanden, so dass man vor jedem Lauf die Ausgabe der Pipe kontrollieren sollte, bevor man sie emerge zum Fraß vorwirft (wer zu viel Zeit hat, kann sich ja noch einen sed-Hack ausdenken, um die erste logische Spalte zu eliminieren).

1 comment | Defined tags for this entry: Gentoo, packet management, shell

FreeBSD: Welcher Port hat die Datei installiert?

Posted by Jesco Freund at Feb. 20, 2009 12:11 a.m.

Gerade bei größeren Upgrade-Aktionen kann es schon mal vorkommen, dass portmaster & Co. eine ungünstige Reihenfolge erwischen und sich Build-Prozesse daran aufhängen, dass eine bestimmte Datei (Bibliothek) noch nicht vorhanden ist, weil der betreffende Port weiter hinten in der Arbeitsliste gelandet ist. Mich hat es heute mit dem OpenLDAP-Upgrade auf 2.4 erwischt. Zwar habe ich versucht, alle von OpenLDAP abhängigen Pakete (bei KDE ist da eine ganze Menge dabei) neu zu kompilieren (portmaster -r openldap-client-2.4.14), jedoch ist Portmaster daran gescheitert, die richtige Baureihenfolge auszubaldowern. Ergebnis: der Bau von sysutils/kdeadmin4 ging schief, weil libkldap.so noch gegen die alte OpenLDAP-Version gelinkt war.

So weit, so gut. Um das Problem zu beheben, musste ich also bloß den Port manuell neu bauen, der libkldap.so installiert. Bloß welcher ist das? Nun, mit ein bissschen Shell-Trickserei lässt sich das herausfinden. Jeder Port, der Dateien im System installiert, vermerkt diese in der Datei pkg-plist. Mit grep kann man diese Dateien nach der gesuchten Bibliothek durchwühlen; allerdings muss man find bemühen, um nicht wegen zu langer Argumentenlisten aus der Kurve zu fliegen:

find /usr/ports -type f -name pkg-plist -exec grep -H 'libkldap.so' {} \;

Die Ausgabe verrät einem dann, welcher Port hier der Übeltäter ist:

/usr/ports/deskutils/kdepimlibs4/pkg-plist:lib/libkldap.so
/usr/ports/deskutils/kdepimlibs4/pkg-plist:lib/libkldap.so.5
/usr/ports/deskutils/kdepimlibs4/pkg-plist:lib/libkldap.so.5.0.1

Mit einem beherzten cd /usr/ports/deskutils/kdepimlibs4 && make deinstall && make reinstall clean hatte es sich dann auch ausgespukt und portmaster konnte den Rest seiner Arbeit erledigen.

1 comment | Defined tags for this entry: FreeBSD, KDE, packet management, ports

Solaris: Wie man eine kaputte Blastwave/CSW-Installation repariert

Posted by Jesco Freund at Feb. 10, 2009 10:20 p.m.

OK, in diese Verlegenheit kommt man vielleicht nur, wenn man dumm genug war zu glauben, man könne alle Blastwave-Bestandteile restlos tilgen, indem man die Verzeichnisse /opt/csw, /var/opt/csw und /etc/opt/csw löscht. Dem ist allerdings mitnichten so – nach einer Neuinstallation glaubt pkgutil immer noch an das Vorhandensein der alten Packages. Natürlich stirbt jedes neu installierte Binary dann an akutem Bibliotheksmangel, weil gettext, iconv und Konsorten einfach nicht mehr aufzutreiben sind.

Da mein eigentlicher Plan darin bestand, das seit einem Jahr von mir nicht mehr gepflegte CSW-Geraffel komplett zu entsorgen und dann noch mal frisch zu installieren, musste ich einen anderen Weg finden. In den chaotischen Wirren des Solaris-Dateisystembaums nach der CSW-Datenbank zu fahnden, habe ich recht fix aufgegeben. Einfacher ist es, pkgutil gemäß Anleitung zu installieren und es mit folgendem Aufruf auf alle installiert geglaubten Packages loszulassen (zsh, bash o. ä. verwenden, funktioniert so nicht mit (jeder) sh oder csh!):

/opt/csw/bin/pkgutil -y -r $(pkgutil -c | awk '{print $1}' | grep -v 'package')

Da pkgutil sich so gleich selbst mit deinstalliert (genauso wie übrigens CSWcommon, also die CSW Basisverzeichnisse), ist anschließend noch mal eine Neuinstallation nötig – danach lassen sich wieder problemlos Pakete installieren; Abhängigkeiten werden korrekt aufgelöst und mit installiert.

No comments | Defined tags for this entry: packet management, software, Solaris, Sun

Page 1 of 1