Leere Protokolldatei, wenn %post einen Backtick oder eine Befehlsersetzung enthält

Leere Protokolldatei, wenn %post einen Backtick oder eine Befehlsersetzung enthält

Beim Erstellen eines benutzerdefinierten USB-Installationsprogramms für Centos6.6 (nicht einfach) habe ich Folgendes festgestellt:WennDer %post-Abschnitt der Kickstart-Datei enthält Backticks

  • Anaconda wird abgeschlossen, aber es wird sofort mit einem leeren Bildschirm beendet (keine Videoausgabe). Normalerweise wird es mit der Meldung beendet, dass Anaconda beendet wurde usw. und
  • Sowohl anaconda-ks.log als auch die %post-Protokolldatei sind vorhanden, haben aber die Länge null.

Das funktioniert

%pre --log=/root/postLog.log
echo "This is the post"
ls
%end

Das funktioniert nicht

%pre --log=/root/postLog.log
echo "This is the post"
echo `ls`
%end

Das funktioniert auch nicht

%pre --log=/root/postLog.log
echo "This is the post"
echo $(ls)
%end

Warum? Ich muss viele Dinge im %post erledigen und das Fehlen einer Befehlssubstitution/Backtick-Unterstützung erschwert das.

Gibt es eine Problemumgehung?

Edit: Und warum brauche ich Backticks?

Das Installationsprogramm ist für ein Appliance-Produkt und muss daher das Basisbetriebssystem, benutzerdefinierte Betriebssystem-RPMs und Produkt-RPMs installieren.

Im Abschnitt %post kommt daher häufig ein Muster wie dieses vor:

cd $ApplicationPackageDir
RPMLIST=`ls *.rpm`
RPMCOUNT=`ls *.rpm | /usr/bin/wc -l`

for theRpm in $RPMLIST
do
    echo /bin/rpm --quiet --upgrade --nodeps --force $theRpm
done

Ähnliches Muster für allgemeines Tun mitwas auch immerDateien existieren in einem bestimmten Verzeichnis.

Das gesamte Konzept funktioniert nicht, wenn Anaconda bei einem Backtick in der Datei scheitert.

Außerdem ist Backtick ein gültiger Bash-Operator – womit Kickstart offenbar Probleme hat.

Sind Bash-Backticksangeblichum in Kickstart zu arbeiten?

Bearbeitung II:$(ls) zum Beispiel hinzugefügt

verwandte Informationen