NEWS
Release upgrade von Ubuntu 18 auf 22 Fehler nodejs
-
Hallo, ich versucht gerade aufgrund der anstehenden Updates mein Release Ubuntu Bionic 18 auf Ubuntu 22 upzugraden.
wenn ich das upgrade des Release starte (sudu do-release upgrade) bekomme ich den Hinweis, dass ich erst alle erhältlichen Aktualisierungen durchführen muss.
Nach der Eingabe von sudo apt update erhalte ich die Info das 1 Paket verfügbar ist.
Mit apt list --upgradeable -a erhalte ich die Info, dass ich die Nodejs aktualisieren muss. Ich bin aktuell bei Nodejs 16.20.2, node 18.20.4 ist verfügbar.Leider unterstützt meine Ubuntu Version nicht die 18. Hier beißt sich die "Katze in den Schwanz". Ich kann das release nicht aktualisieren, ohne vorher die Nodejs zu aktualisieren, dies geht aber auch nicht ohne Release upgrade.
Was kann ich machen, kann mir jemand helfen?
-
@grogo sagte in Release upgrade von Ubuntu 18 auf 22 Fehler nodejs:
Was kann ich machen, kann mir jemand helfen?
Du bist spät dran...
Ich weiß gar nicht, ob ein Upgrade von Bionic noch ohne größere Klimmzüge möglich ist, ubuntu räumt die Quellen i.d.R. schnell ab, wenn das EOL erreicht ist. Ich würde dann auch gleich bis Ubuntu 24.04 LTS durchstarten. Wobei vermutlich eine direkte Neuinstallation davon schneller geht als der steinige Weg über 20.04 und 22.04 bis 24.04.Schmeiß nodejs während eines Release-Upgrades temporär aus dem System.
iob stop sudo apt remove nodejs
-
Welche Option die bessere ist weiß ich nicht.
ChatGPT meint:Das Problem, das du beschreibst, entsteht durch den Konflikt zwischen dem veralteten Betriebssystem und dem Node.js-Paket, das du installieren möchtest. Deine aktuelle Ubuntu-Version (Bionic 18.04) unterstützt Node.js 18 nicht, und du kannst das Upgrade auf Ubuntu 22.04 nicht durchführen, ohne vorher alle Pakete zu aktualisieren. Hier sind einige Ansätze, wie du dieses Problem umgehen kannst:
Lösungsvorschläge
Option 1: Node.js temporär entfernen
Du kannst das Problem umgehen, indem du Node.js temporär entfernst. Anschließend kannst du das Release-Upgrade durchführen und Node.js danach wieder installieren.
- Node.js entfernen:
sudo apt remove nodejs
- Verwaiste Pakete entfernen (optional, aber empfohlen):
sudo apt autoremove
- Update-Pakete installieren:
sudo apt update && sudo apt upgrade
- Release-Upgrade starten:
sudo do-release-upgrade
- Node.js neu installieren (nach dem Upgrade auf Ubuntu 22.04):
Installiere Node.js 18 mit dem offiziellen NodeSource-Repository:
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install nodejsOption 2: Node.js aus der Paketverwaltung ignorieren (Halten des Pakets)
Falls du Node.js aus bestimmten Gründen nicht deinstallieren möchtest, kannst du das Paket für das Upgrade zurückstellen, sodass es während des Upgrades nicht berücksichtigt wird.
- Node.js auf "Hold" setzen:
sudo apt-mark hold nodejs
- System-Upgrade durchführen:
sudo apt update && sudo apt upgrade
sudo do-release-upgrade- Node.js wieder freigeben (nach dem Release-Upgrade):
sudo apt-mark unhold nodejs
- Node.js aktualisieren (falls nötig):
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install nodejsOption 3: Upgrade mit "force" durchführen
Du kannst das Release-Upgrade auch mit einer erzwungenen Option starten, allerdings ist dies riskanter und kann zu Problemen führen.
sudo do-release-upgrade -d
Hinweis: Das -d-Flag erzwingt das Upgrade, auch wenn noch ausstehende Paketaktualisierungen vorhanden sind. Verwende diese Option nur, wenn du vorher ein Backup erstellt hast.
Fazit
Die sicherste Option ist, Node.js temporär zu deinstallieren und nach dem Release-Upgrade wieder zu installieren. Dadurch vermeidest du potenzielle Konflikte während des Upgrades.
Ich würde vermutlich das System neu aufsetzen und ein Backup einspielen.
-
@david-g sagte in Release upgrade von Ubuntu 18 auf 22 Fehler nodejs:
Node.js temporär zu deinstallieren und nach dem Release-Upgrade wieder zu installieren.
Das wäre auch mein Ansatz.
Bzw. eher noch:
Ich würde vermutlich das System neu aufsetzen und ein Backup einspielen.
-
Danke für Eure Hilfe.
Habe mich für das Entfernen der Nodejs entschieden:
- sudo apt remove nodejs
- sudo apt autoremove
- sudo apt update && sudo apt upgrade
- sudo do-release-upgrade
- curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
- sudo apt install nodejs
- sudo reboot
Hat alles noch super gut funktioniert. IOBroker läuft wieder.
Jetzt werde ich dann weiter durchstarten auf die nächsten Releases
Vielen vielen Dank.
-
-
Bin jetzt noch ein paar nodejs und ein Release auf Jammy/22 weiter.
======================= SUMMARY ======================= v.2024-10-19 Static hostname: ioBroker Icon name: computer-desktop Chassis: desktop Operating System: Ubuntu 22.04.5 LTS Kernel: Linux 5.15.0-125-generic Architecture: x86-64 Hardware Vendor: Intel_R_ Client Systems Hardware Model: NUC8i3BEH Installation: native Kernel: x86_64 Userland: 64 bit Timezone: Europe/Berlin (CET, +0100) User-ID: 1000 Display-Server: false Boot Target: graphical.target Pending OS-Updates: 0 Pending iob updates: 2 Nodejs-Installation: /usr/bin/nodejs v23.2.0 /usr/bin/node v23.2.0 /usr/bin/npm 10.9.0 /usr/bin/npx 10.9.0 /usr/bin/corepack 0.29.4 Recommended versions are nodejs 20.18.0 and npm 10.8.2 nodeJS installation is correct MEMORY: total used free shared buff/cache available Mem: 7.8G 2.5G 3.3G 15M 2.1G 5.0G Swap: 2.0G 0B 2.0G Total: 9.9G 2.5G 5.3G Active iob-Instances: 27 Upgrade policy: none ioBroker Core: js-controller 6.0.11 admin 7.1.5 ioBroker Status: iobroker is running on this host. Objects type: jsonl States type: jsonl Status admin and web instance: + system.adapter.admin.0 : admin : ioBroker - enabled, port: 8081, bind: 0.0.0.0, run as: admin + system.adapter.web.0 : web : ioBroker - enabled, port: 8082, bind: 0.0.0.0, run as: admin Objects: 15222 States: 11432 Size of iob-Database: 23M /opt/iobroker/iobroker-data/objects.jsonl 9.4M /opt/iobroker/iobroker-data/objects.json.migrated 9.4M /opt/iobroker/iobroker-data/objects.json.bak.migrated 5.7M /opt/iobroker/iobroker-data/states.jsonl 1.3M /opt/iobroker/iobroker-data/states.json.migrated 1.3M /opt/iobroker/iobroker-data/states.json.bak.migrated Operating System codenamed 'jammy' is an aging Ubuntu release! Please upgrade to the latest LTS release 'noble' in due time! =================== END OF SUMMARY ====================
Die beiden pending updates im IOB sind gewollt.
Werde in den nächsten Tagen noch auf Ubuntu Release 24 wechseln. Müsste ich sonst noch etwas aktualisieren um auf aktuellem Stand zu sein?
VD -
@grogo sagte in Release upgrade von Ubuntu 18 auf 22 Fehler nodejs:
Boot Target: graphical.target
Stell es auf multi-user.target um.
Geht z. B. mit demiob fix
/usr/bin/nodejs v23.2.0
Ist zu neu und ungerade Versionen verwendet man nicht in produktiven Kisten. Stell es auf
iob nodejs-update 20
um.
Das ist aus der Zusammenfassung erstmal alles. Mehr könnte man vielleicht aus der Langfassung entnehmen.