PKG: Fehlende Pakete überspringen

oli1301

Active Member
Hallo zusammen,

es geht um folgendes:
Wir haben uns ein Poudiere Repository angelegt in der wir sämtliche Software für unsere Clients reingepackt haben. Wie schonmal beschrieben, sind wir dabei das Unternehmen per Jumpstart umzustellen. Die Software für die Clients wird dort mit angegeben was installiert werden soll.
Kurzes Beispiel in welcher Form:
Code:
pkg install xorg x11-wm/xfce4 xfce4-mixer print/xfce4-print x11/xfce4-screenshooter-plugin misc/xfce4-weather-plugin misc/xfce4-appfinder x11/xfce4-conf sysutils/xfce4-cpugraph-plugin x11-wm/xfce4-desktop

Jetzt kommt es wie vor kurzem vor, dass Poudiere meckert das Chromium ein hohes Sicherheitsrisiko aufweißt und der Port deswegen nicht mit aufgenommen wird. Die Folge ist, wenn man das Script für den Jumpstart anstartet, bricht er an der Stelle wo er Chromium installieren soll ( weil das im Script nicht geändert wurde) die Installation der Software sowie das restliche Script ab.

Gibt es einen Befehl den man pkg übergeben kann, dass er fehlende Pakete einfach überspringt und mit der nächstfolgenden Software weitermacht?
In der Manpage konnte ich nichts passendes dazu finden und im Netz leider auch nicht. Vielleicht hatte ja schonmal jemand das selbe Problem und hat eine Lösung dazu gefunden.
 
Moin,

eine direkte Lösung habe ich nicht, aber vielleicht einen Lösungsansatz:
Wieso packst Du "pkg install" nicht in eine Schleife über alle zu installierenden Pakete? Sobald ein Paket nicht installiert werden kann, wird automatisch eine Meldung an den Administrator verschickt, ansonsten wird die Schleife weiter abgearbeitet. Sowas wie (Metacode :) ):
Code:
for pkg in paketliste
 pkg install pkg
 if returncode != 0
  Email an Admin
next

Grüßle
 
Alternativ ginge es auch so:

Code:
#!/bin/csh

set PACKAGES = ("www/chromium" "security/putty" "asdf" "www/firefox")
set INSTALL_PACKAGES = ""
set NOT_INSTALL_PACKAGES = ""

foreach PACKAGE ($PACKAGES)
   pkg search -e "${PACKAGE}" > /dev/null
   if ( $? == 0 ) then
     set INSTALL_PACKAGES = "${INSTALL_PACKAGES} ${PACKAGE}"
   else
     set NOT_INSTALL_PACKAGES = "${NOT_INSTALL_PACKAGES} ${PACKAGE}"
   endif
end

if ( "${NOT_INSTALL_PACKAGES}" != "" ) then
   echo "Could not install ${NOT_INSTALL_PACKAGES}" | mail -s "Installations" mail@domain.tld
endif

pkg install -y $INSTALL_PACKAGES
 
Zurück
Oben