autopackage
Szégyen és gyalázat, de ezidáig még csak nem is hallottam az Autopackage-ről, amely egy disztribúciófüggetlen csomagkezelő rendszer. A legnagyobb szépsége számomra az, hogy bináris, pontosabban futtatható csomagokat (.package) lehet vele készíteni, ami kb. úgy képzelhető el mint Windows-os msi fájlok – melyek telepítéséhez szükség van a Windows Installerre.
Igaz, hogy nemrégiben kaptam egy Open Source licenszt a BitRock-tól, de egyrészt ez a licensz csak bizonyos projektjeimhez használható, másrészt nem tökéletes például a függőségek kezelése. Az autopackage-é sem teljes de nagyon szép specfájlokat lehet vele gyártani, amivel akár teljesen egyedi ellenőrzéseket is lehet végezni. Mivel most gyártom a Gnome-RDP-hez a csomagot így előjött, hogy hogyan lehetne ellenőrizni, a Mono és Gtk# meglétét és verziószámát. Nos, így oldottam meg:
[Prepare] REQUIRED_MONO_VERSION="1.1.10" REQUIRED_GTKSHARP_VERSION="2.4.0" # ====== MONO .NET RUNTIME ====== outputTest "Mono .NET Runtime" MONO_VERSION=`mono -V | grep "version" | sed 's/.* \([0-9]*\.[0-9]*\.[0-9]*\).*/\1/g'` compareVersions $REQUIRED_MONO_VERSION $MONO_VERSION if [ $? -gt 0 ]; then outputTestFail outputFail "at least Mono .NET Runtime $REQUIRED_MONO_VERSION required" false else outputTestPass fi # ====== GTK# ====== outputTest "Gtk#" pkg-config --atleast-version=2.4.0 gtk-sharp-2.0 if [ $? -gt 0 ]; then outputFail "at least Gtk# $REQUIRED_GTKSHARP_VERSION required" outputTestFail false else outputTestPass fi
Nem a legszebb kód, de működik. Teszteltem Gentoo-n és Ubuntu-n, megy mind a kettőn szépen. Új Gnome-RDP release esetén tehát már Autopackage-es telepítő is lesz a BitRock-os pedig valószínűleg el lesz dobva. Az LGPL mégiscsak az Autopackage felé húz! Lassan az NSIS-be is bele kellene mélyednem, mert ha minden jól alakul, akkor elkezdek dolgozni a Gnome-RDP Windows-os portján is.
Fotók


