Forum: PC Hard- und Software Ubuntu Server: OS noch zu retten?


von Gerd (Gast)


Lesenswert?

Hallo zusammen,

ich versuche mich mal kurz zu fassen. Und zwar
habe ich hier einen kleinen Heim- und Bastelserver auf dem
bis dato Ubuntu Server 20.04 LTS lief. Den nutze ich als NAS und
für Testzwecke, sowie zur Versionsverwaltung für meine
Hobbyprojekte. Dort hatte ich demletzt eine ERPNext Instanz
aufgesetzt, welche auch einwandfrei lief.

Dummerweise habe ich die Instanz "geupdatet", womit das ganze
Übel begann. Und zwar erforderte die aktuelle Version Python 3.10,
welches unter Ubuntu 20.04 nicht verfügbar ist.
Daher habe ich das entsprechende Deadsnakes Paket installiert.
Da dann immer noch Probleme auftraten, hatte ich ein
Dist-upgrade auf 22 durchgeführt. Das war der erste GAU, denn
die Python Version aus dem deadsnakes Paket und die mitgelieferte,
welche das OS zwingend benötigt unterscheiden sich.
Reparatur nicht möglich, apt läuft nicht mehr.
Schlau wie ich bin, habe ich dann alles an Python 3.10 und an
Bibliotheken von einer Ubuntu 22 Live Instanz auf die
Serverplatte kopiert und die "defekten" Dateien und Ordner 
überschrieben.
So weit so gut. Apt tat wieder, --fix-broken, update, upgrade, 
autoremove.
Alles lief durch, keine Fehler (klopfe mir auf die Schulter).
Ubuntu meinte noch ganz lieb, dass der Rechner bei Gelegenheit mal neu
gestartet werden könnte. Was ich dann auch prompt tat.

SSH Verbindung weg. Ich zum Server, händisch noch ein paar mal neu
gestartet, aber ich komme nicht mehr drauf.
Also Monitor und Tastatur rausgesucht:
login wird angezeigt, also angemeldet.
Keine MOTD. (??) Services laufen alle. Aber keine Internetverbindung.
ifconfig zeigt mir meine Netzwerkkarte nicht an.

Ich bin mit meinem Latein am Ende.

Vielleicht hat hier ja noch jemand eine zündende Idee,
oder komme ich um eine Neueinrichtung nicht rum?

von Hans (Gast)


Lesenswert?

Ich fürchte, dass du das so leicht nicht mehr hinkriegen wirst. Python 
hat schließlich auch Abhängigkeiten und die sind jetzt einmal 
durcheinander. Die aus einer sauberen Installation zu kopieren hilft 
aber vermutlich nur bedingt, da du nicht alle installierten 
Abhängigkeiten kennst und apt nicht mehr funktioniert. Und selbst wenn 
du sie einfach rüberkopierst, Stimmen möglicherweise die Versionsstände 
in apt nicht mehr und du läufst bei jedem Update auf neue Probleme. 
Liefert der Start von Python irgendwelche Fehlermeldungen?

Sicher dir die Daten und setz das Ding neu auf. Alles andere wird ewig 
dauern. Und für die Zukunft kannst du dir mal docker ansehen. Dann 
kannst du nämlich gefahrlos mehrere Versionen parallel nutzen.

von Jack V. (jackv)


Lesenswert?

Gerd schrieb:
> ifconfig zeigt mir meine Netzwerkkarte nicht an.

›ifconfig -a‹ auch nicht? Häufig ist die Ursache für nicht mehr 
hochkommendes Interface nach derlei Basteleien schlicht, dass das 
Interface einen neuen Namen bekommen hat, und von der vorhandenen 
Konfiguration nicht erfasst wird.

Hans schrieb:
> Und für die Zukunft kannst du dir mal docker ansehen. Dann
> kannst du nämlich gefahrlos mehrere Versionen parallel nutzen.

Ist für Python nicht einmal nötig – da kann man sich mit wenigen 
Tastendrücken virtuelle Environments im Nutzerverzeichnis erstellen.

von Lallende Ente (Gast)


Lesenswert?

Was sagt dmesg?

systemctl status?

ip a?

https://ubuntuforums.org/showthread.php?t=735693

Man kann alle Pakete neu installieren. Im schlimmsten Fall musst du dazu 
von einem Live Stick booten, ins System mittels chroot wechseln und das 
ausführen. Dann solltest du alle passenden Libs usw. wieder haben, aber 
ich rate dringend zu einem Backup. Das ist zwar die halbe Holzhammer 
Methode und man könnte das filigraner wieder zum Laufen bringen, aber so 
sollte sich das auch lösen, ich weiß ja nicht, was du alles verändert 
hast.

Wenn du das nächste Mal eine derartige Abhängigkeit hast, dann gibt es 
dafür einige Lösungen. Einerseits kannst du das Paket in einen SNAP mit 
Ubuntu 20.04/22.04 usw. als Core packen oder dir einen LXC Container 
einrichten. Dicker kann man auch machen, für persistente Angelegenheiten 
ist LXC jedoch eleganter.

von c-hater (Gast)


Lesenswert?

Jack V. schrieb:

> Ist für Python nicht einmal nötig – da kann man sich mit wenigen
> Tastendrücken virtuelle Environments im Nutzerverzeichnis erstellen.

Was allerdings vor allem eins zeigt: Python ist nix, was man für 
langzeitstabile Anwendungen einsetzen sollte. Das ist Hipster-Scheiße. 
Schnell hingerotzt und genau so schnell auch wieder unbrauchbar und 
obsolete.

Nur Wahnsinnige benutzen das ernsthaft.

von Jack V. (jackv)


Lesenswert?

c-hater schrieb:
> Was allerdings vor allem eins zeigt: Python ist nix, was man für
> langzeitstabile Anwendungen einsetzen sollte.

… wie halt auch alle anderen Sprachen, deren Compiler oder Interpreter 
in verschiedenen Versionen daherkommt, die man parallel nutzen kann – 
oder was wolltest du mit deinem wirren Geschwurbel ausgedrückt haben?

von Hans (Gast)


Lesenswert?

Jack V. schrieb:
> ›ifconfig -a‹ auch nicht? Häufig ist die Ursache für nicht mehr
> hochkommendes Interface nach derlei Basteleien schlicht, dass das
> Interface einen neuen Namen bekommen hat, und von der vorhandenen
> Konfiguration nicht erfasst wird.

Würde mal ip a probieren. ifconfig ist sowieso legacy. Ubuntu nutzt für 
die Netzwerkverwaltung ja Netplan und das scheint irgendwie auch Python 
zu brauchen. Mit dem Problem ist der TO nicht alleine: 
https://stackoverflow.com/questions/65558712/netplan-not-working-after-change-default-python

Das Problem ist nur: Wie repariere ich ein System, bei dem ich für die 
Reparatur bestenfalls Netzwerk brauche, ich aber keins habe, weil das 
System kaputt ist?

Jack V. schrieb:
> Hans schrieb:
>> Und für die Zukunft kannst du dir mal docker ansehen. Dann
>> kannst du nämlich gefahrlos mehrere Versionen parallel nutzen.
>
> Ist für Python nicht einmal nötig – da kann man sich mit wenigen
> Tastendrücken virtuelle Environments im Nutzerverzeichnis erstellen.

Da verwechselst du was. Natürlich kann ich in einer virtualenv 
unterschiedliche Bibliothekenversionen installieren und natürlich kann 
ich auch in einer virtualenv eine andere Python Version nutzen. Aber: 
Die Python Version muss auf dem System vorhanden sein. Bei der 
Installation dieser Version nahm das Schicksal beim TO ja schon seinen 
Lauf.

c-hater schrieb:
> Was allerdings vor allem eins zeigt: Python ist nix, was man für
> langzeitstabile Anwendungen einsetzen sollte. Das ist Hipster-Scheiße.
> Schnell hingerotzt und genau so schnell auch wieder unbrauchbar und
> obsolete.

Oh du Ahnungsloser. Das ganze Ubuntu baut darauf auf. Wenn das eins 
zeigt, dann, dass man nicht einfach ohne Sinn und Verstand irgendwelche 
Dateien und Symlinks verändern sollte. Genau das ist hier aber passiert, 
als er die Default Version verändert und dann noch irgendwelche Daten 
überschrieben hat. Für das was hier passiert ist, kann es unzählige 
Gründe geben.

von Jack V. (jackv)


Lesenswert?

Hans schrieb:
> Da verwechselst du was. Natürlich kann ich in einer virtualenv
> unterschiedliche Bibliothekenversionen installieren und natürlich kann
> ich auch in einer virtualenv eine andere Python Version nutzen. Aber:
> Die Python Version muss auf dem System vorhanden sein.

Nein, passt schon: die andere Pythonversion sollte in dem Fall gar nicht 
systemweit installiert sein, sondern unter ~/ residieren. Dann benötigt 
man für den ganzen Vorgang keinerlei Rootrechte (für die Jüngeren unter 
uns: kein ›sudo‹), und kann sich entsprechend das System nicht 
zerschießen.

Edit: aber wollen wir dieses Thema nicht noch etwas zurückhalten, bis 
der TE sein Problem gelöst hat? Ob man nun ip oder ifconfig nimmt, ist 
im Grunde egal – wichtig ist nur, dass man sich alle Interfaces anzeigen 
lässt, und nicht nur die konfigurierten Schnittstellen.

: Bearbeitet durch User
von Hans (Gast)


Lesenswert?

Jack V. schrieb:
> Nein, passt schon: die andere Pythonversion sollte in dem Fall gar nicht
> systemweit installiert sein, sondern unter ~/ residieren. Dann benötigt
> man für den ganzen Vorgang keinerlei Rootrechte (für die Jüngeren unter
> uns: kein ›sudo‹), und kann sich entsprechend das System nicht
> zerschießen.

Klar, wenn du es so machst geht es natürlich. Ist nur immer die Frage, 
ob ich den Vorteil der Paketverwaltung und den damit verbundenen 
Sicherheitsupdates aufgeben will.

von c-hater (Gast)


Lesenswert?

Hans schrieb:

> Oh du Ahnungsloser.

Würde ich so nicht sagen.

> Das ganze Ubuntu baut darauf auf.

Das stimmt. Und ist eben deswegen auch ein richtiges 
Infrastruktur-Problem.

von Hans (Gast)


Lesenswert?

c-hater schrieb:
> Hans schrieb:
>
>> Oh du Ahnungsloser.
>
> Würde ich so nicht sagen.

Ich schon.

>
>> Das ganze Ubuntu baut darauf auf.
>
> Das stimmt. Und ist eben deswegen auch ein richtiges
> Infrastruktur-Problem.

Dann nimm doch dein selbstgestricktes Assembler Betriebssystem. Gibt es 
hoffentlich keinen Webbrowser für, damit wir hier Ruhe habem.

von Trolldetektor (Gast)


Lesenswert?

c-hater schrieb:
> Hans schrieb:
>
>> Oh du Ahnungsloser.
>
> Würde ich so nicht sagen.

Aber alle die sich auskennen.

von Hans (Gast)


Lesenswert?

Trolldetektor schrieb:
> c-hater schrieb:
>> Hans schrieb:
>>
>>> Oh du Ahnungsloser.
>>
>> Würde ich so nicht sagen.
>
> Aber alle die sich auskennen.

Ich glaube dein Detektor ist kaputt. Bin nämlich der Hans aus dem Docker 
Thread. Jetzt hab ich dich!

von Trolldetektor (Gast)


Lesenswert?

Jack V. schrieb:
> Nein, passt schon: die andere Pythonversion sollte in dem Fall gar nicht
> systemweit installiert sein, sondern unter ~/ residieren.

Virtualenv ist zwar eine sehr feine Sache. Aber wer das noch eine Nummer 
ausgereifter haben möchte könnte beispielsweise zu Poetry greifen, das 
meines Wissens auch mit unterschiedlichen Pythonversionen arbeiten kann:

https://python-poetry.org/

von Trolldetektor (Gast)


Lesenswert?

Gerd schrieb:
> Keine MOTD. (??) Services laufen alle. Aber keine Internetverbindung.
> ifconfig zeigt mir meine Netzwerkkarte nicht an.

Versuch mal Jacks und Hans' Tipp mit dem "ip a s". Neuere Linuxversionen 
mit systemd haben jetzt ein neues Namensschema für NICs, in der Art 
"enp0s10" anstelle von "eth0" weil es früher vorkommen konnte daß 
mehrere NICs je nach Boot in unterschiedlicher Reihenfolge erkannt 
wurden und die Zuweisung der Namen dann nicht mehr konsistent war.

Darum hat systemd neue Bezeichner eingeführt wobei beim Beispiel oben 
"enp0s10" die 0 für den Bus und die 10 für die Slotnummer im Bus steht. 
Das heißt natürlich auch daß Deine NIC einen anderen Namen bekommt wenn 
Du sie in einen anderen Slot steckst. Aber wie dem auch sei versuch 
erstmal Deine Interfaces wiederzufinden und dann korrekt zu 
konfigurieren und meld Dich dann bitte nochmal. Viel Erfolg!

von Trolldetektor (Gast)


Lesenswert?

Jack V. schrieb:
> Nein, passt schon: die andere Pythonversion sollte in dem Fall gar nicht
> systemweit installiert sein, sondern unter ~/ residieren.

Sie kann auch systemweit installiert sein. Das ist gar kein Problem und 
war beim Wechsel von Python 2 auf Python 3 oft auch notwendig. Und 
obwohl Ubuntu 20.04 Python 3 in der Version 3.8 dabei hatte war es für 
mich kein Problem, parallel die neuen Features von Python 3.10 
(Structural Pattern Matching ♥) zu nutzen indem ich parallel zur 
systemseitigen Version 3.8 die Version 3.10 aud dem Deadsnakes-PPA 
installiert habe. Beim Anlegen von virtualenvs konnte ich dann mit dem 
Parameter -p die gewünschte Pythonversion angegeben. Man muß nur darauf 
achten den Symlink /usr/bin/python auf der systemseitigen Version zu 
belassen damit die systemseitig installierten Pythonpakete weiterhin 
gefunden werden können.

von Trolldetektor (Gast)


Lesenswert?

Hans schrieb:
> Ich glaube dein Detektor ist kaputt. Bin nämlich der Hans aus dem Docker
> Thread. Jetzt hab ich dich!

Ich weiß. Aber ich arbeite natürlich threadabhängig und bislang hast Du 
in diesem Thread hier (noch?) nicht getrollt

von Hans (Gast)


Lesenswert?

Trolldetektor schrieb:
> Hans schrieb:
>> Ich glaube dein Detektor ist kaputt. Bin nämlich der Hans aus dem Docker
>> Thread. Jetzt hab ich dich!
>
> Ich weiß. Aber ich arbeite natürlich threadabhängig und bislang hast Du
> in diesem Thread hier (noch?) nicht getrollt

Du bist einfach nur unnötig und selbst das, was du vorgibst zu 
detektieren.

von networker (Gast)


Lesenswert?

Jack V. schrieb:
> ›ifconfig -a‹ auch nicht? Häufig ist die Ursache für nicht mehr
> hochkommendes Interface nach derlei Basteleien schlicht, dass das
> Interface einen neuen Namen bekommen hat, und von der vorhandenen
> Konfiguration nicht erfasst wird.

bis 20.04 hiessen die Netzwerke eth0, eth1, wlan0, wlan1 ... jetzt 
heissen sie enp0s25 oder wlp3s0

von Gerd (Gast)


Angehängte Dateien:

Lesenswert?

Erstmal dankeschön für die ganzen  Antworten :-)

Ich hab jetzt nach dem Abendbrot noch ein bisschen rumprobiert und
komme nicht weiter. Ja, mit docker hab ich auch schonmal rumgespielt,
aber bin da noch nicht wirklich hinter gestiegen wie man sich das
zusammenstrickt. Außerdem bin ich noch in der Anwendung selber am 
rumändern
und Persistenz ist ja nicht (wie ich gelesen hatte).
Deshalb hatte ich es lokal installiert. Nächstes mal wird es definitiv
in eine VM gepackt, aber da muss erst der Server etwas wachsen. :D

Hans schrieb:
> Liefert der Start von Python irgendwelche Fehlermeldungen?
Nein, das startet tatsächlich ohne Probleme. (3.10.6 ist installiert)

Lallende Ente schrieb:
> Was sagt dmesg?
>
> systemctl status?
>
> ip a?
habe ich mal angehängt.
Das Netzwerkgerät heißt enp3s0, war erst down, wie im Mitschnitt.
Konnte ich mit ifconfig aber starten, dann hatte es eine ipv6 Addresse.
Der Router hat den Server als online angezeigt, aber der Server selber
hatte keine Verbindung nach irgendwo. Weder Ping, noch ping6 gingen 
raus,
apt kriegt auch nichts (Name konnte nicht aufgelöst werden) als DNS 
zeigt
er localhost. Es wurde aber tatsächlich Paketverkehr angezeigt.

Hans schrieb:
> Jack V. schrieb:
>> ›ifconfig -a‹ auch nicht? Häufig ist die Ursache für nicht mehr
>> hochkommendes Interface nach derlei Basteleien schlicht, dass das
>> Interface einen neuen Namen bekommen hat, und von der vorhandenen
>> Konfiguration nicht erfasst wird.
>
> Würde mal ip a probieren. ifconfig ist sowieso legacy. Ubuntu nutzt für
> die Netzwerkverwaltung ja Netplan und das scheint irgendwie auch Python
> zu brauchen. Mit dem Problem ist der TO nicht alleine:
> 
https://stackoverflow.com/questions/65558712/netplan-not-working-after-change-default-python
>
Netplan? - command not found. Also entweder ist da was mit Ubuntu 22 
umgeschmissen
worden, oder hier ist doch arg was kaputt gegangen :D
Ich habe noch versucht netplan mit offline paketen nachzuinstallieren, 
aber
da fehlen extrem viele Abhängigkeiten. Unter anderem will er ein Python 
3.10.4 und das
wiederum die entsprechende minimal, stdlib und yaml und haste nicht 
gesehen.
Teilweise mit expliziter Versionsnummer.

Ich habs jetzt erstmal dabei belassen.

von Jack V. (jackv)


Lesenswert?

Gerd schrieb:
> Konnte ich mit ifconfig aber starten, dann hatte es eine ipv6 Addresse.

Du kannst mit ifconfig oder ip auch eine v4-Adresse setzen. Außerdem 
kannst du bei Bedarf die Default-Route über deinen Router setzen, und in 
/etc/resolv.conf kannst du funktionierende Nameserver hinterlegen.

Wenn dein Router DHCP-Dienste zur Verfügung stellt, kannst du, sofern 
installiert, die Konfiguration auch mittels ›dhcpcd‹ oder ›dhclient‹ 
(was halt da ist) automatisiert durchführen lassen – aber man braucht 
halt nicht mehr, als ›ip‹ oder ›ifconfig‹ und ›route‹, um das Netz 
manuell einzurichten.

von Hans (Gast)


Lesenswert?

Gerd schrieb:
> Netplan? - command not found. Also entweder ist da was mit Ubuntu 22
> umgeschmissen
> worden, oder hier ist doch arg was kaputt gegangen :D

Liegt bei dir was im Verzeichnis /etc/netplan? Eventuell musst du dort 
nur den Interfacenamen von eth0 auf enp3s0 ändern.

von Hans (Gast)


Lesenswert?

Ansonsten versuch mal die IP manuell zu setzen:
1
ip link set enp3s0 up
2
ip addr add <ip>/<netzmaske> dev enp3s0
3
ip route add default via <router>

von Gerd (Gast)


Lesenswert?

Okay, habe gerade den Server nochmal hochgefahren.
Und was soll ich sagen? Ich habe eine Internetverbindung.
Warum auch immer. Egal, ich freue mich einfach :D

Bleibt die Frage ob ich jetzt die Pakete noch neu installiert und die
Abhängigkeiten irgendwie wieder gerade gebogen bekomme? :D

von Lallende Ente (Gast)


Lesenswert?

sudo aptitude reinstall '~i'

https://unix.stackexchange.com/questions/79125/reinstalling-all-debian-packages

Diesen Befehl hab ich aber noch nie ausprobiert. In dem thread sind aber 
auch andere Befehle, mach das aber am besten in einer tmux/Screen 
Session, das wird eine Zeit dauern...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.