Ich suche nach einer Möglichkeit wie ich Apt verklickern kann das es ein D-U abbricht wenn ein bestimmtes Paket in der Liste ist und mir eine entspechende Meldung ausgibt. Egal ob es zurückgehalten ist oder neu eingespielt werden soll. Ich denke mir man kann da irgendwo in der config von apt was reinschreiben. Ich weiss nur nicht wie und wo.
danke...
Gibt es so nicht wirklich - Du kannst ein Paket auf Hold setzen. Alle Pakete, die von diesem Paket abhängen (aka Abhängigkeit von der Version) werden dann ebenfalls nicht hochgezogen. Das wars dann aber auch schon.
Ansonsten kannst Du nur noch einen Wrapper um apt-get drumrumschreiben, der das gewünschte Verhalten für Dich realisiert.
Hi hsp,
da musst dir ein Bashscript schreiben ;-)
Das Bashscript sourced deine Textdatei mit deiner "Sperrliste" ein, danach sollte ein Eintrag deiner "Sperrliste" mit der Liste aus der updatenbaren Paketen aus dem d-u verglichen werden. Am besten du liest die beiden Listen die du vergleichen willst in ein Array und vergleichst Wert für Wert. Wenn Wert aus deiner "Sperrliste" mit einem Wert aus der "d-u Liste" übereinstimmt gibts du eine ensprechende Meldung aus, wenn nicht kann der d-u durchgeführt werden.
Dürfte nicht allzu schwer sein das zu programmieren ;-)
An hold hab ich auch schon gedacht, aber wenn es da nix anderes gibt muss ich es wohl so machen. Ein script drumrumfrickeln ist mir zu aufwändig. Mal sehen was der Papa da macht :)
...
#!/bin/bash
apt-get update
flag=0
such=evolution\|icedove
for zeile in `/usr/bin/apt-get dist-upgrade < /dev/null`; do
if [[ $zeile =~ $such ]];
then
flag=1
fi
done
echo $flag
#if [ $flag == 0 ]; then
# apt-get dist-upgrade
#fi
als erster Einstieg. Das Skript macht ein apt-get update, ließt die Ausgabe von dist-upgrade in eine Variable, prüft ob in einer Zeile der Suchbegriff vorkommt (hier evolution ODER icedove) setzt bei Treffer flag auf 1 und gibt flag aus. Wenn das Ganze so läuft wie Du wünscht, dann mach die Rauten vor den letzten Zeilen weg und dist-upgrade wird dann ausgeführt.
Dabei ist nicht berücksichtigt das dein Programm evtl in "automatisch installierte Pakete" "entfernte Pakete" oder ähnlichem genannt wird. Dann wird kein d-u durchgeführt und Du solltest dann händisch noch mal genauer hin gucken.
Bisher hab ich noch nicht gesehen das Paketnamen umgebrochen, sprich auf zwei Zeilen verteilt wurden aber das könnte evtl. ein Problem sein oder werden...