Debian 11 > 12, Abbruch der Paketinstallation ab Paket 15338 von 15379

Du kommst mit der Installation nicht voran oder willst noch was nachfragen? Schau auch in den "Tipps und Tricks"-Bereich.
Antworten
Cordess
Beiträge: 422
Registriert: 09.01.2006 00:37:22

Debian 11 > 12, Abbruch der Paketinstallation ab Paket 15338 von 15379

Beitrag von Cordess » 18.08.2023 09:23:23

Beim apt dist-upgrade meiner Debian 11 Installation auf Debian 12 gab es eine harte Landung und ich wurde in die Shell zurückgeworfen.

Wie kann man denn die Installation da fortsetzen, wo die Installation aufgehört hat?

Code: Alles auswählen

Trigger für ca-certificates-java (20230103) werden verarbeitet ...
done.

7[0;41r8[1A[Jlibdvd-pkg: Downloading orig source...
I: libdvdcss_1.4.3
/usr/bin/wget --tries=3 --timeout=40 --read-timeout=40 --continue -O libdvdcss_1.4.3.orig.tar.bz2 \
          https://download.videolan.org/pub/libdvdcss/1.4.3/libdvdcss-1.4.3.tar.bz2 \
        || /usr/bin/uscan --noconf --verbose --rename --destdir=/usr/src/libdvd-pkg --check-dirname-level=0 --force-download --download-current-version /usr/share/libdvd-pkg/debian
2023-08-XX XX:XX:XX --  https://download.videolan.org/pub/libdvdcss/1.4.3/libdvdcss-1.4.3.tar.bz2
Auflösen des Hostnamens download.videolan.org (download.videolan.org)… XXX.XXX.XXX.XXX, XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX
Verbindungsaufbau zu download.videolan.org (download.videolan.org)|XXX.XXX.XXX.XXX|:443 … verbunden.
HTTP-Anforderung gesendet, auf Antwort wird gewartet … 200 OK
Länge: 388404 (379K) [application/octet-stream]
Wird in »libdvdcss_1.4.3.orig.tar.bz2« gespeichert.


libdvdcss_1.4.3.orig.tar.bz2            0%[                                                                        ]       0  --.-KB/s
libdvdcss_1.4.3.orig.tar.bz2          100%[=======================================================================>] 379,30K  1,88MB/s    in 0,2s

2023-08-XX XX:XX:XX (1,88 MB/s) - »libdvdcss_1.4.3.orig.tar.bz2« gespeichert [388404/388404]

libdvd-pkg: Checking orig.tar integrity...
/usr/src/libdvd-pkg/libdvdcss_1.4.3.orig.tar.bz2: OK
libdvd-pkg: `apt-get check` failed, you may have broken packages. Aborting...
[1;33mW: [0mAPT had planned for dpkg to do more than it reported back (15338 vs 15379).
   Affected packages: texlive-fonts-recommended:amd64 texlive-lang-german:amd64 texlive-lang-greek:amd64 texlive-latex-base:amd64 texlive-latex-extra:amd64 texlive-latex-recommended:amd64 texlive-pictures:amd64 texlive-plain-generic:amd64 texlive-science:amd64 texlive-xetex:amd64[0m
[?2004hroot@rechner:
Danach habe ich neu gebootet und libdvd-pkg manuell deinstalliert. Desweiteren wollte apt beim nächsten Anlauf eine ganze Liste an weiteren Paketen deinstallieren. Die Liste habe ich mir in einer Textdatei gespeichert und die Frage bezüglich dem deinstallieren bejaht, damit ich mit apt weiter komme.

Code: Alles auswählen

Die folgenden Pakete wurden automatisch installiert und werden nicht mehr benötigt:
  clang-tidy-11 clang-tools-11 crda cryptsetup-run exfat-fuse fp-compiler-3.2.0 fp-docs-3.2.0 fp-ide-3.2.0 fp-units-base-3.2.0 fp-units-db-3.2.0
  fp-units-fcl-3.2.0 fp-units-fv-3.2.0 fp-units-gfx-3.2.0 fp-units-gtk2-3.2.0 fp-units-math-3.2.0 fp-units-misc-3.2.0 fp-units-multimedia-3.2.0
  fp-units-net-3.2.0 fp-units-rtl-3.2.0 fp-utils-3.2.0 fpc-3.2.0 fpc-source-3.2.0 freeglut3 ftp gajim-pgp gir1.2-soup-2.4 gnome-desktop3-data
  haveged hddtemp ieee-data kdevelop56-libs kf5-kdepim-apps-libs-data ksysguardd libabsl20200923 libalkimia5-7 libapache-poi-java libargs4j-java
  libarmadillo10 libart-2.0-2 libatk1.0-data libavdevice58 libavfilter7 libavformat58 libavif9 libavresample4 libbpf0 libcbor0 libcfitsio9
  libcmis-0.5-5v5 libcodemodel-java libcommons-collections4-java libcommons-math3-java libcurvesapi-java libdap27 libdapclient6v5 libdcmtk15
  libdns-export1110 libdom4j-java libdtd-parser-java libegl1-mesa-dev libepsilon1 libev4 libextutils-pkgconfig-perl libfam0 libfastinfoset-java
  libffms2-4 libfl2 libflac++6v5 libflac8 libfluidsynth2 libfwupdplugin1 libgav1-0 libgavl1 libgdal28 libgdk-pixbuf-xlib-2.0-0 libgdk-pixbuf2.0-0
  libgdl-3-5 libgdl-3-common libgeos-3.9.0 libgetopt-long-descriptive-perl libgit2-1.1 libglew2.1 libgovirt-common libgovirt2 libgpac10
  libgs9-common libgssdp-1.2-0 libgtkspell3-3-0 libgupnp-1.2-0 libh2-java libhash-fieldhash-perl libhavege2 libhawtjni-runtime-java libicu4j-java
  libicu67 libigdgmm11 libilmbase25 libintellij-annotations-java libisc-export1105 libistack-commons-java libjansi-native-java libjavaparser-java
  libjaxb-api-java libjaxb-java libjaxen-java libjdom1-java libjetbrains-annotations-java libjim0.79 libjsoncpp24 libjsoup-java
  libkdecorations2private7 libkf5alarmcalendar-data libkf5kipi-data libkf5kipi32.0.0 libkf5pulseaudioqt2 libkf5screen7 libkf5sysguard-bin
  libkf5torrent6abi1 libkf5waylandserver5 libksignalplotter9 libkwaylandserver5 libkwineffects12a libkwinglutils12 libkwinxrenderutils12
  libldap-2.4-2 libmbedcrypto3 libmbedtls12 libmbedx509-0 libmlt++3 libmlt6 libmms0 libmoox-struct-perl libmpdec3 libnetcdf-c++4 libnetcdf18
  libnetpbm10 libnotify-bin libntfs-3g883 libnumber-range-perl libnvidia-cbl libobject-id-perl libodbc1 libodbccr2 libofa0 libokular5core9
  libopencolorio1v5 libopenexr25 liborcus-0.16-0 liborcus-parser-0.16-0 libossp-uuid-perl libossp-uuid16 libpcre16-3 libpcre2-posix2 libpcre3-dev
  libpcre32-3 libperl5.32 libphodav-2.0-0 libphodav-2.0-common libplacebo72 libpodofo0.9.7 libpoppler102 libpostproc55 libprocps8 libproj19
  libprotobuf-lite23 libprotobuf23 libpython3.9 libpython3.9-minimal libpython3.9-stdlib libqalculate20 libqalculate20-data libqgpgme7 libqhull8.0
  libqpdf28 libqrcodegencpp1 librelaxng-datatype-java librest-0.7-0 librest-1.0-0 librngom-java librttr-core0.9.6 libsaxonhe-java libsoup-gnome2.4-1
  libsquish0 libsrt1.4-gnutls libstax-ex-java libstd-rust-1.48 libstreambuffer-java libsundials-ida4 libsundials-nvecserial4 libsundials-sunlinsol2
  libsundials-sunmatrix2 libswscale5 libtexlua53 libtext-trim-perl libtiff5 libtiffxx5 libtinyxml2-8 libtinyxml2.6.2v5 libtxw2-java liburing1
  libusb-0.1-4 libvtk7.1p libwagon-http-java libwebsockets16 libwireshark14 libwiretap11 libwmf0.2-7 libwsutil12 libwxbase3.0-0v5
  libwxgtk3.0-gtk3-0v5 libxenmisc4.14 libxenstore3.0 libxerces2-java libxkbregistry0 libxmlb1 libxmlbeans-java libxom-java libxsom-java
  libyaml-cpp0.6 libzxingcore1 linux-headers-5.10.0-23-amd64 linux-headers-5.10.0-23-common linux-image-5.10.0-23-amd64 odbcinst odbcinst1debian2
  perl-modules-5.32 python3-argh python3-cssutils python3-distro-info python3-gnupg python3-neovim python3-pyqt5.qtsvg python3-requests-futures
  python3-sortedcontainers python3-toml python3-waitress python3.9 python3.9-minimal ruby2.7 rust-gdb telnet unattended-upgrades vrms
  x11proto-input-dev x11proto-randr-dev x11proto-xext-dev x11proto-xf86dga-dev x11proto-xinerama-dev
Verwenden Sie »apt autoremove«, um sie zu entfernen.
Ein paar Pakete aus der Liste von der ich wusste, dass ich die definitiv brauchen werde, habe ich manuell per "apt install paketname" installiert, damit sie nicht deinstalliert werden.
Das System läuft mit Ausnahme von python inzwischen soweit bzw sind mir noch keine anderen Probleme aufgefallen, aber trotzdem finde ich das unschön, wenn da jetzt angeblich von 15379 nur 15338 installiert wurden und 41 jetzt fehlen sollen.

Für das Update von 11 auf 12 wollte apt folgendes machen:
NoPaste-Eintrag41947

Da könnte ich jetzt natürlich manuell die fehlenden 41 Pakete irgendwie extrahieren, aber es muss doch eine bessere Lösung geben?


apt dist-upgrade meldet inzwischen, obwohl die 41 Pakete noch fehlen, einen sauberen Durchlauf:

Code: Alles auswählen

apt dist-upgrade
Paketlisten werden gelesen… Fertig
Abhängigkeitsbaum wird aufgebaut… Fertig
Statusinformationen werden eingelesen… Fertig
Paketaktualisierung (Upgrade) wird berechnet… Fertig
0 aktualisiert, 0 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
Zu erwähnen wäre noch, dass ich das alte libdvdcss Paket vor dem dist upgrade, sowie alle Fremdpakete, die mit apt list '~o' auftauchten, deinstalliert habe, lediglich das Meta Paket libdvd-pkg habe ich vergessen, weil das nicht über diesen Befehl aufgeführt wurde und ich dachte, ich hätte libdvdcss von videolan.org damals manuell installiert und nicht über irgendwelche Buildskripte aus dem Debian Repo.

Ich könnte jetzt natürlich das System so belassen wie es ist und Python manuell nachinstallieren und dann warten ob irgendwann andere Probleme auftreten, Aber die Installation da fortzusetzen, wo sie aufgehört hat, wäre schon besser.

rjh

Re: Debian 11 > 12, Abbruch der Paketinstallation ab Paket 15338 von 15379

Beitrag von rjh » 18.08.2023 10:15:20

Auf welches Repository greift denn das zurück? "videolan" hat was mit vlc zu tun? Hast Du dafür separate Quellen im Verzeichnis /etc/apt/sources.list.d/ ?

Ggf. erst mal VLC deinstallieren.

Cordess
Beiträge: 422
Registriert: 09.01.2006 00:37:22

Re: Debian 11 > 12, Abbruch der Paketinstallation ab Paket 15338 von 15379

Beitrag von Cordess » 18.08.2023 18:50:57

rjh hat geschrieben: ↑ zum Beitrag ↑
18.08.2023 10:15:20
Auf welches Repository greift denn das zurück? "videolan" hat was mit vlc zu tun? Hast Du dafür separate Quellen im Verzeichnis /etc/apt/sources.list.d/ ?

Ggf. erst mal VLC deinstallieren.
Das sind nur reine Debian Repos in der source liste. Das sieht man aber auch, da das Helferpaket von Debian versucht die libdvdcss als tar.gz via wget von videolan zu ziehen und dann zu bauen. Wäre das ein videolan Repo, dann würde es diesen Schritt gar nicht geben, denn da kriegst du fertige DEB Pakete.

Ich sagte aber auch, wenn ich das libdvdcss Paket manuell installiert hätte, dann hätte ich es von videolan als deb genommen und dann hätte es auch keine Probleme gegeben, da ich es ja vorher deinstalliert hatte.
rjh hat geschrieben: ↑ zum Beitrag ↑
18.08.2023 10:15:20
"videolan" hat was mit vlc zu tun?
Zu deiner Frage, VLC ist ein Projekt von videolan, videolan ist sozusagen die Urquelle von VLC und auch von libdvdcss. Ohne videolan würde es gar kein vlc geben. Das ist wie der Linux Kernel und kernel.org.
rjh hat geschrieben: ↑ zum Beitrag ↑
18.08.2023 10:15:20
Ggf. erst mal VLC deinstallieren.
Was soll das bringen? Dieser Tipp spricht nicht für Ahnung.

Cordess
Beiträge: 422
Registriert: 09.01.2006 00:37:22

Re: Debian 11 > 12, Abbruch der Paketinstallation ab Paket 15338 von 15379

Beitrag von Cordess » 18.08.2023 22:44:34

So, ich habe jetzt aus meinen apt Ausgaben, was es alles für das Uprade von 11 auf 12 installieren wollte und einer Liste, was nach der Installation installiert war, die Differenz extrahiert, so dass ich jetzt ungefähr weiß, was da nicht mehr installiert wurde.

Dazu musste ich:
1. Die alten Leichen entfernen:
Siehe
https://www.debian.org/releases/bookwor ... d-packages
Das ist nötig, damit der nächste Schritt eine saubere Liste ergibt.

2. Eine Liste der installierten Pakete erstellen:
Siehe dazu:
https://www.debian.org/releases/bookwor ... age-status

Code: Alles auswählen

dpkg --get-selections '*' > ~/deb12.txt
3. Die erstellte Liste aufbereiten, so dass jedes Paket in einer eigenen Zeile ohne sonstige weitere Daten, wie bspw. die Architektur (:amd64) im Paketnamen oder das "installed" Merkmal drin steht.
Beides kann leicht mit Kate und der Suchen und Ersetzen Methode durchgeführt. Letzteres kriegt man auch mit der Blockauswahl leicht weg.
Kate sollte so eingestellt sein, dass Leerzeichen oder Tabs am Ende der Zeile beim Speichern entfernt werden.
Das ist erforderlich, weil die Liste aus der apt Ausgabe solche Informationen, wie <paketname>:amd64 im Namen nicht enthält.

Wer nen anderen Editor benutzen will oder ein Skript dafür schreiben will, kann das natürlich auch tun. Es gibt logischerweise viele mögliche Lösungswege und nicht nur den einen. Wer es anderes machen will, nur zu.

4. Aus der apt Ausgabe habe ich zwei Listen erstellt, einmal aus den zu aktualisierenden Paketen und aus den neuen Paketen.
So wie es in der apt Ausgabe auch angezeigt wird.

Die Ausgabe selbst stammt aus der Aufzeichnung vor der Installation, siehe dazu
https://www.debian.org/releases/bookwor ... rd-session

Bei beiden Listen müssen nun alle Paketnamen in eine eigene Zeile gebracht werden. Das geht auch mit Kate und dessen Ersetzen Funktion im Modus Escape Sequenzen.
Damit ersetzt man dann die Leerzeichen durch den Ausdruck "\n".

5. Dann einmal die beiden Listen mit sort sortieren und die Leeren Zeilen am Anfang der Listen mit Kate entfernen.

6. Jetzt hat man drei Listen, 2 aus der apt Ausgabe und die andere von dem, was aktuell auf dem System installiert ist.
Und diese Listen sind nach diesen 5 Schritten inzwischen so aufbereitet, dass bei allen die Pakete in jeweils einer eigenen Zeile stehen und sortiert sind und keine extra Informationen mehr, wie bspw, die Architektur mit führendem Doppelpunkt :amd64 im Namen enthalten. Für andere Architekturen gilt entsprechendes.

7. Jetzt müssen die beiden Listen der anderen größten Liste hinzugefügt werden.
Dann wird die neue Liste sortiert und mit uniq -u das extrahiert, was nicht doppelt vorkommt. Einträge, die doppelt vorkommen werden komplett ignoriert.
Ich habe mir dazu ein einfaches Skript geschrieben, ich mache aber jede Liste in einem jeweils eigenen Schritt,
Das ist ein bisschen mehr Aufwand, aber so kann man das notfalls wieder trennen.

Code: Alles auswählen

#/bin/sh
rsystem=deb12_auf_system.txt
rneu=deb12_pro_zeile_komplett_neue_pakete_sort.txt
rupdate=deb12_pro_zeile_zu_aktualisierende_pakete_sort.txt

# Arbeiter:
rsys=rsys.txt
rsys2=rsys2.txt


# Erstelle Kopie
echo "cp" "$rsystem" "$rsys"
cp "$rsystem" "$rsys"

# Kopie muss beschreibbar sein:
echo "eval chmod u+w" "$rsys"
eval chmod u+w "$rsys"

# Füge neue mit rsys zusammen
echo "eval cat" "$rneu" ">>" "$rsys"
eval cat "$rneu" >> "$rsys"

# Sortiere veränderte rsys
echo "eval sort" "$rsys" ">" "$rsys2"
eval sort "$rsys" > "$rsys2"

# Entferne Einträge mit doppeltem Vorkommen:
echo "eval uniq -u" "$rsys2" ">" "$rsys"
eval uniq -u "$rsys2" > "$rsys"

######################
# Füge zu aktualisierende mit rsys zusammen:
echo "eval cat" "$rupdate" ">>" "$rsys"
eval cat "$rupdate" >> "$rsys"

# Sortiere veränderte rsys
echo "eval sort" "$rsys" ">" "$rsys2"
eval sort "$rsys" > "$rsys2"

# Entferne Einträge mit doppeltem Vorkommen:
echo "eval uniq -u" "$rsys2" ">" "$rsys"
eval uniq -u "$rsys2" > "$rsys"

echo "Fertig"
8. Das Ergebnis wird in die Datei rsys.txt geschrieben.
Diese neue Liste enthält aber noch Einträge, die nicht in der apt Ausgabe drin stehen, da es auch Pakete gibt, die offenbar nicht von 11 auf 12 upgedated werden mussten, weil es dafür keine neuen Versionen gibt.
Daher muss ich jetzt prüfen, ob die Pakete, die in der Liste stehen, installiert sind und den Rest der übrig bleibt in eine neue Liste speichern.
Dazu habe ich folgendes zweite Skript geschrieben, das ist etwas mit der heißen Nadel gestrickt, die if Anweisung könnte man bspw. mit Negation anders machen, tut aber im großen und ganzen was es soll.

Code: Alles auswählen

#/bin/bash
str="Status: install ok installed"
test=""
file=rsys.txt
infile=nicht_installiert.txt

while read -r pkg; do
  # Reading each line
  test=`eval dpkg -s "$pkg" | grep Status`
  echo $test
  if [ "$test" = "$str" ]
  then
    # echo "Ja, "$pkg" ist installiert!"
    echo
  else
    #echo "Nein, "$pkg" ist nicht installiert!"
    echo $pkg >> "$infile"
    #echo $pkg
  fi
done < $file

Die sich daraus ergebende neue Datei heißt nicht_installiert.txt

Diese besteht jetzt nur noch aus

Code: Alles auswählen

wc nicht_installiert.txt 
  89   89 1415 nicht_installiert.txt
89 Paketeinträgen.

Im Prinzip dürften es rein rechnerisch nur 41 Pakete sein, ein paar Einträge entsprechend der apt Ausgabe
"Die folgenden Pakete wurden automatisch installiert und werden nicht mehr benötigt:", die habe ich hier aber nicht mehr benutzt, da die
Pakete ja ohnehin deinstalliert werden sollten und von apt auch wurden, außerdem habe ich ein paar davon behalten und auch das ein oder andere neue Paket installiert.
Insofern passt das schon so.
Diese 89 Pakete sind zudem überschaubar, so dass ich nun selber manuell sehen kann, ob ich davon noch etwas brauche.

Antworten