apt-get ; hold script

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
Voyager_MP
Beiträge: 628
Registriert: 22.06.2004 10:04:07
Wohnort: Aachen

apt-get ; hold script

Beitrag von Voyager_MP » 21.10.2005 09:14:49

Da es mich schon lange störte, das man nicht so einfach packete auf die (hold) liste setzen kann.
(Das heißt Programme werden bei einen apt-get upgrade & dist-upgrade ausgelassen. )

Habe ich ein kleines script geschrieben, das das machen kann.
Vielleicht brauchts ja auch einer von euch.

Für Anregungen und Verbesserungen wäre ich sehr dankbar.

Code: Alles auswählen

#!/bin/bash
if [ $# -lt 2 ]; then
        echo "SYNTAX: hold.sh [OPTION] [PACKAGES]..."
        echo "OPTIONS:"
        echo " -a,  --add     Sets the package to hold"
        echo " -r,  --remove  Removes the package from holding status"
        echo 
        exit 1
fi


echo 
echo 

case $1 in
        -a|--add)
        echo "Setting the following packages to hold status"
        echo "---------------------------------------------"
        for i in $@; do
            if [ $i != "-a" ] && [ $i != "--add" ]; then
                echo $i hold | dpkg --set-selections
                echo "-  $i";
            fi
        done
        ;;
        -r|--remove)
        echo "Removing the following packages from hold status"
        echo "------------------------------------------------"
        for i in $@; do
            if [ $i != "-r" ] && [ $i != "--remove" ]; then
                echo $i install | dpkg --set-selections
                echo "-  $i";
            fi
        done
        ;;
esac
echo
Gruß Michel
Gruß Michel

Benutzeravatar
Joghurt
Beiträge: 5244
Registriert: 30.01.2003 15:27:31
Wohnort: Hamburg
Kontaktdaten:

Re: apt-get ; hold script

Beitrag von Joghurt » 21.10.2005 13:19:10

Voyager_MP hat geschrieben:Da es mich schon lange störte, das man nicht so einfach packete auf die (hold) liste setzen kann.
(Das heißt Programme werden bei einen apt-get upgrade & dist-upgrade ausgelassen. )
Kannst du ganz einfach mit aptitude:

Code: Alles auswählen

aptitude hold paket
oder am besten direkt in der Oberfläche

Code: Alles auswählen

aptitude
Da kannst du sogar festlegen, dass nur eine bestimmte Version nicht installiert werden darf. Nützlich, wenn mal wieder eine gcc-Version in SID defekt ist.

Benutzeravatar
Voyager_MP
Beiträge: 628
Registriert: 22.06.2004 10:04:07
Wohnort: Aachen

Beitrag von Voyager_MP » 21.10.2005 16:05:15

ja, aber apitude ist halt nicht apt-get und ich arbeite lieber mit apt-get
Gruß Michel

Benutzeravatar
deBeck
Beiträge: 616
Registriert: 23.09.2004 20:52:27
Wohnort: Süd-Schwarzwald

Beitrag von deBeck » 21.10.2005 23:27:22

Aber... gibt es den ein echtes Argument nicht aptitude zu nutzen 8O
Nachdem ich mich nach apt-get, wajig (ok, und zwischendurch mal Synaptic) und der offiz. aptitude-Empfehlung nach dem Sarge-Release daran gewöhnt habe will ich nix anderes mehr.
Wenn dir aptitude aber trotzdem absolut nicht zusagt, probier doch mal wajig aus.

Benutzeravatar
Joghurt
Beiträge: 5244
Registriert: 30.01.2003 15:27:31
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Joghurt » 25.10.2005 14:13:33

Voyager_MP hat geschrieben:ja, aber apitude ist halt nicht apt-get und ich arbeite lieber mit apt-get
Warum? Alles, was apt-get kann, kann auch aptitude. Insbesondere das automatische löschen von mitinstallikerten Paketen ist eine sehr nützliche Funktion.

Benutzeravatar
godsmacker
Beiträge: 902
Registriert: 16.03.2003 21:50:26
Lizenz eigener Beiträge: Artistic Lizenz
Wohnort: Chemnitz
Kontaktdaten:

Beitrag von godsmacker » 25.10.2005 14:31:03

Zum einen verwendet aptitude einen anderen Mechanismus um Pakete auf hold zu setzen, was es inkompatibel zu anderen tools macht, zum anderen ist es nicht sehr auskunftsfreudig. Oft passiert es, dass duzende Pakete wegen einem Paket, welches aptitude sich nicht zu aktualisieren getraut, nicht in einer neuen Version installiert werden.

Ich denke

Code: Alles auswählen

wajig hold paket
ist hier das richtige tool.

-Flo

Antworten