Linux 15.036 Themen, 107.107 Beiträge

Abfrage für Packte in einem Skript vor Installation ?

bashfreak / 5 Antworten / Baumansicht Nickles

Halle wie man Packéte abfragt ist klar nur habe ich keinen Schimmer wie ich sie Ohne einen log abfrage.
Bisher schaut das bei mir so aus .... das ich erst den pfeffer in einem log schreiben lasse und von da dann abfrage geht das auch ohne das besagte log file ?

rpm -q nasm >> install.log
isttxt=$(cat install.log | grep "nasm")
if [ "$isttxt" ] ; then
echo "packages nasm found"
else
echo "nasm has not been installed, install this package ! " >> install.log
echo "warning this package is required !"
echo "nasm has not been installed ! Aborting ..."
exit 1
fi

Danke bashy
http://home.pages.at/bashy

bei Antwort benachrichtigen
bashfreak Nachtrag zu: „Abfrage für Packte in einem Skript vor Installation ?“
Optionen

Nachtrag es sind mehrere Packete die benötigt werden kann ich die auch in einem rutsch abfragen, so das ich halt alle packete in einer abfrage unterbringen kann, weil das nimmt so wie es jetzt ist ein haufen platz weg.

danke bashy

bei Antwort benachrichtigen
robsn76 bashfreak „Abfrage für Packte in einem Skript vor Installation ?“
Optionen

hi bashfreak,
dieser skript-teil ist 'untested' evtl bedarf es noch einer kleinen Änderung, aber grundsätzlich solte es so funktionieren.

# in der datei 'packete.txt' stehen die packete, die gesucht werden.
# wenn man '`cat packete.txt`' weg laest liest die for-schleife
# von stdin (glaube ich).


(...)

for pack in `cat packete.txt` ; do
isttxt=`rpm -q $pack | grep $pack`
if [ "$isttxt" ] ; then
echo "packages $pack found"
else
echo "$pack has not been installed, install this package ! " \\
>> install.log
echo "warning this package is required !"
echo "$pack has not been installed ! Aborting ..."
exit 1
fi
done

exit 0


cu robsn

bei Antwort benachrichtigen
bashfreak robsn76 „hi bashfreak, dieser skript-teil ist untested evtl bedarf es noch einer kleinen...“
Optionen

Jo
Dank Dir das geht habe aber noch ein kleines Problem, mit done also mein skript ist ja noch länger und deines möchte ich zum anfang einfügen, wenn ich das done weg nehme funktioniert das ganze nimmer, und wenn ich es ans ende des skriptes setze genau das selbe, alleine geht alles seinen gang oder doch nicht.
Er ließt bei mir nur der erste Zeile aus der packete.txt, keine Ahnung warum, giebt es nicht die möglichkeit das er alles aus deinem skript nimmt also die packete (mit rein schreiben) ohne eine extra datei anzulegen zu müssen?

Ich bedanke mich schonmal mfg bashy

bei Antwort benachrichtigen
robsn76 bashfreak „Abfrage für Packte in einem Skript vor Installation ?“
Optionen

hi bashy!

pleasure!

du kannst die namen der packete natürlich direkt in das skript schreiben. das nennt man dann aber "hart codieren", und bedeutet, daß du jedesmal wenn du nach neuen packeten suchst dein skript umschreiben mußt. das mit der packete.txt kommt einer skript.conf gleich. aber wenn du willst setze am anfang des skripts eine variable und belege sie mit den namen der zu suchenden packeten. also:
recommended_packs='pack1 pack2 (...)'

und dann nenne diese variable in der for-schleife. also:
for pack in $recommended_packs ; do

das mit dem 'done'
das 'done' sollte am ende des zu wiederholenden teils stehen, das 'exit 0' am ende des skripts (nicht unbedingt nötig aber sauberer!).

wenn du willst kannst du dein skript ja mal posten oder mir mailen ( robsn76@gmx.de ), dann schau ich mir das mal an.

cu robsn

bei Antwort benachrichtigen
bashfreak robsn76 „hi bashy! pleasure! du kannst die namen der packete natürlich direkt in das...“
Optionen

Hi :-)
Na das kann ich nicht hier alles posten da lachen mich ja die User hier aus :-))
Habe es Dir gemailt ....
Wie gesagt ich habe gerade erst angefangen mit der ganzen Materie.

MFg bashy

bei Antwort benachrichtigen