Andreas Pakulat: >Siehe oben. Allerdings hast du dann tatsaechlich keine Informationen >mehr fuer aptitude welche Pakete "automatisch" und welche nicht >automatisch installiert wurden.
>Um das hinzubekommen musstest du ungefaehr sowas in ein Skript >schreiben: >export LANG=C >liste= >dpkg --get-selections | cut -f1 | while read paket ; do > if `apitude show | grep -i "Automatically installed: no"` ; then > liste="$liste $paket" > fi >done >echo $liste >Als Ausgabe erhaelst du eine Liste alle nicht automatisch installierten >Pakete. Damit kannst du dann spaeter aptitude install fuettern. >Den hold/nicht-hold-Status kriegst du so aber auch nicht hin. >Ob/Wie das gehen koennte weiss ich auch nicht. Gemäß Deinem Vorschlag weiter unten: In der Ausgabe von aptitude show '~i' nach den Field-Tripeln (Package, State, Version) suchen, wobei gelten muss: State = 'installed [held]'. >> Für jedes Paket A, das in Version AVi installiert war, >> führe aus aptitude install A=V >Dafuer muesstest du dpkg bemuehen, um die genauen Paketversionen >herauszubekommen. Ist aber auch nur ein | cut -f2 oder so... >> Für jedes Paket B, das in Version BVi automatisch installiert war, >> führe aus aptitude install B && aptitude markauto B >Brauchst du nicht, es sei denn du hast Pakete "haendisch" auf auto >gesetzt. Stimmt. Mein Denkfehler. Und händisch auf auto gesetzte Pakete sollen ja eben rausfallen, wenn sie von keinem anderen gebraucht werden. >Dann solltest du obiges Skript nehmen das "no" auf yes aendern >und dir damit eine Liste der Pakete generieren die auf Auto gesetzt >werden muessen. >> Für jedes Paket C, das in Version CVh festgehalten war, >> führe aus aptitude install C=CVh && aptitude hold C >Und genau das kriegst du IMHO nicht raus. Ooh, halt doch. Steht >auch in aptitude show (State: installed [held]). Allerdings sehe >ich grade das die Version nicht passt. Sprich wenn ich hier >Version 6.8.2 von xserver-xorg auf hold setze zeigt mit aptitude >show trotzdem als Version 6.9.0 an. Sollte man mal nen Bugreport >zu verfassen, denke ich. Jedenfalls passiert das wenn die >Version nur noch lokal installiert ist und in keinem >debian-Repository mehr vorhanden ist. Der Fehler ist mir auch neu. >> Für jedes Paket D, dessen Version DVf gesperrt (forbid-version) war, >> führe aus aptitude forbid-version D=DVf >Auch das kriegst du aus aptitude show raus, diesmal inkl. der richtigen >Version. >> Damit das nicht so sehr langsam abläuft, könnte man die >> Verarbeitung möglichst vieler Pakete zusammenfassen in >> Aptitude-Aufrufe der Art >Ja, du musst dir nur eine Datei anlegen in der ungefaehr sowas drin >steht: ><paket> <installierte Version> <auto|manual> <forbid=<version>> ><hold=<version>> >Mit einem festgelegten Trennzeichen zwischen den Feldern (z.B. \t). >> Nur: Was passiert, wenn man ein Paket A hat, das in Version AVi >> installiert werden soll und abhängt >> >> * von einem Paket C, das in Version CVh festgehalten werden soll, >Das verstehe ich nicht ganz, du meinst das A=AVi von C>=CVh abhaengt >oder was? Dann habe ich mich hier unscharf ausgedrückt. Ich meine den Fall, dass es genügt, dass C in Version CVh oder neuer installiert ist, damit A=AVi installiert sein kann. Zusätzlich soll C in Version CVh und mindestens einer neueren im Repository verfügbar sein, aber aus anderen Gründen soll die Version CVh von mir bevorzugt werden. >Dann war es im urspruenglichen System nicht in Version AVi >installiert. Da du aber mit install A=AVi installierst hast du >diesselbe Version wie vorher. >Achja, auf unstable und testing Rechnern sollte man wohl auch die deb's >mitnehmen beim Sichern. Jedenfalls wenn man damit rechnen muss das >zwischen Listen-Erstellung und wiedereinspielen mehr als ein paar Tage >liegen. Klar. Ich habe die Debs auf CDs vorliegen. >> oder >> >> * von einem Paket D, dessen Version DVf gesperrt war, und das in >> einer älteren Version als DVf installiert war. >Das kann nicht passieren, da du ja D<=DVf installierst. Auch hier meinerseits unscharf formuliert. Ich meine den Fall, dass es genügt, dass D in Version DVe oder neuer installiert ist, damit A=AVi installiert sein kann, wobei DVe < DVf gelten soll und D=DVf im Repository verfügbar aber aus anderen Gründen von mir nicht gewünscht sein soll. >> Muss man dann dafür sorgen, dass, bevor A=AVi installiert wird, >> >> * das Paket C=CVh installiert und festgehalten >> >> * und das Paket D=DVf gesperrt wird, >Ich wuerde in der Reihenfolge: >aptitude forbid-version D=DVf >fuer alle Pakete D die verboten wurden, dann >aptitude hold C=CVh >fuer alle Pakete C die auf hold gesetzt wurden Hoffentlich geht das, ohne dass C=CVh installiert ist. >und schliesslich (aber bin nicht sicher ob das ohne Installation >klappt) >aptitude markauto B=BVa >fuer alle die automatisch installiert wurden. Das kann man sich sparen, wenn im Folgenden nur die händisch installierten Pakete händisch installiert werden. >Danach dann das >aptitude install A=AVi C=CVh D<=DVf (oder >=DVf) -- Bitte in die Adressierung auch meinen|Please put my full name also into Vor- u. Nachnamen stellen z.B. |the recipient like Friedhelm Waitzmann <[EMAIL PROTECTED]>, (Friedhelm Waitzmann) [EMAIL PROTECTED], "Waitzmann, Friedhelm" <[EMAIL PROTECTED]> -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)

