[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: 32 => 64 Bit: Aktueller Stand



Martin Steigerwald - 13.01.18, 00:02:
> Stefan Baur - 12.01.18, 21:56:
> > Es artete dann dahingehend aus, dass ich mir per dpkg -l eine Liste
> > aller Pakete ausgeben ließ, diese auf "^ii" und "i386" filterte, und die
> > Pakete dann einzeln bzw. in zusammenhängenden Gruppen durch ihr
> > amd64-Paket ersetzen ließ (mit "apt-get install paketname:amd64").
> > Dabei kam es des öfteren zu Warnungen, die nur mit "Yes, do as I say!"
> > zu umgehen waren - aber es ging.
> > Scheinbar erkennt apt-get nicht, dass man ein essentielles Paket zwar
> > deinstallieren, aber umgehend durch sein 64-Bit-Pendant ersetzen will,
> > und gibt daher die Warnungen aus.
> 
> Hmmm, auf der CrossGrade-Seite im Debian-Wiki ist
> 
> http://blog.calhariz.com/post/2017/07/13/Crossgrading-a-more-typical-server-> in-Debian9
> 
> verlinkt.
> 
> Das nutzt --allow-remove-essential, um apt davon zu überzeugen, die 32-Bit-
> Pakete zu entsorgen. Das sieht krass aus… ist aber vielleicht genau das, was
> die von Dir geschilderten Probleme umgeht. Allerdings besteht dann ein
> höheres Risiko, essentielle Pakete zu entsorgen, die vielleicht noch
> gebraucht werden…
> 
> Nun, ohne VM-Snapshot wage ich mich da nicht ran. Daher bleibt es fürs Erste
> beim 64-Bit-Kernel.

Ich frage mich gerade, inwiefern die Reihenfolge:

1. apt/dpkg/tar ersetzen.

2. Bibliotheken ersetzen.

3. Restliche Pakete ersetzen.

wirklich Sinn macht.

Warum apt/dpkg/tar bereits am Anfang umbauen? Warum einen der riskanteren 
Schritte gleich am Anfang?

Warum installiere ich nicht erst alle Bibliotheken in 64-Bit-Versionen, was ja 
auch mit dem 32-Bit-Apt-Zeug geht? Damit gehe ich erst mal noch kein Risiko 
ein.

Und dann kann ich das ganze auch erst mal testen, indem ich ein Paket mit 
einem für mich eher unwichtigen Befehl (z.B. tree) als 64-Bit-Version 
installiere. Funktioniert der Befehl, dann kann ich mich schrittweise zu den 
kritischeren Komponenten vorarbeiten.

Interessanterweise würde das für den tree-Befehl auch einfach so durchlaufen 
auf meinem Server:

% apt install tree:amd64
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.       
Statusinformationen werden eingelesen.... Fertig
Die folgenden Pakete werden ENTFERNT:
  tree
Die folgenden NEUEN Pakete werden installiert:
  tree:amd64
0 aktualisiert, 1 neu installiert, 1 zu entfernen und 0 nicht aktualisiert.
Es müssen 46,1 kB an Archiven heruntergeladen werden.
Nach dieser Operation werden 7.168 B Plattenplatz freigegeben.
Möchten Sie fortfahren? [J/n]
Holen:1 http://ftp.de.debian.org/debian stretch/main amd64 tree amd64 1.7.0-5 
[46,1 kB]
Es wurden 46,1 kB in 0 s geholt (410 kB/s).
Laden der Fehlerberichte … Erledigt
»Found/Fixed«-Informationen werden ausgewertet … Erledigt
Vormals nicht ausgewähltes Paket tree:amd64 wird gewählt.
(Lese Datenbank ... 92071 Dateien und Verzeichnisse sind derzeit installiert.)
Vorbereitung zum Entpacken von .../tree_1.7.0-5_amd64.deb ...
Entpacken von tree:amd64 (1.7.0-5) über (1.7.0-5) ...
tree:amd64 (1.7.0-5) wird eingerichtet ...
Trigger für man-db (2.7.6.1-2) werden verarbeitet ...
Prüfe Prozesse...                                                                                                                                                          
Prüfe Linux-Kernel...                                                                                                                                                      
Der laufende Kernel ist aktuell.
Es müssen keine Dienste neugestartet werden.
Es müssen keine Container neu gestartet werden.
Es gibt keine Nutzer-Sitzungen mit veralteten Prozessen.


Und der Befehl tut danach auch:

mondschein:~> file /usr/bin/tree
/usr/bin/tree: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), 
dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 
2.6.32, BuildID[sha1]=82bcf4eab00b4f71a0a87b92c489dd6585cb6ed9, stripped

(jaja, ich wollte da ohne Snapshot nix mehr dran rum basteln :)

Der Befehl "tree" funktioniert auch in der 64-Bit-Version.

Übersehe ich da etwas?

Warum apt/dpkg/tar und andere kritischere Komponenten wie coreutils, util-
linux, systemd (die libsystemd hat apt ja bereits als 64-Bit-Version drauf 
installiert) nicht eher zum Schluss des Crossgrades? Warum das ganze nicht 
inkrementeller angehen, mit der Option, zwischen drin auch mal zu pausieren 
und Fehlerberichte zu schreiben, falls es Probleme gibt?

Das hätte auch den Vorteil, das die Bibliotheken dann bereits alle oder fast 
alle zusätzlich als 64-Bit installiert sind, bevor ich die kritischeren Sachen 
umbaue.

Danke,
-- 
Martin


Reply to: