So lösen Sie das Zeichensatzproblem bei der Anmeldung bei Linux

So lösen Sie das Zeichensatzproblem bei der Anmeldung bei Linux

Zeichensatzfehler treten immer auf

Gebietsschema: LC_CTYPE kann nicht auf Standardgebietsschema eingestellt werden: Keine solche Datei oder kein solches Verzeichnis
Gebietsschema: LC_MESSAGES kann nicht auf Standardgebietsschema eingestellt werden: Keine solche Datei oder kein solches Verzeichnis
Gebietsschema: LC_ALL kann nicht auf Standardgebietsschema eingestellt werden: Keine solche Datei oder kein solches Verzeichnis

Hintergrund

Das Unternehmen verfügt über einen Jenkins-Server. Aus historischen Gründen verwendet es CentOS 6.5. Beim Anmelden wurde plötzlich angezeigt, dass ein Problem mit dem Zeichensatz vorliegt. Ich verwende CentOS 7 eigentlich schon seit langem und bin noch nie auf ein solches Problem gestoßen. Auch bei der Fehlerbehebung war ich verwirrt.

Es gab verschiedene Zeichensatzfehler und ungültige Einstellungen. Nach n Tagen kontinuierlicher Untersuchung stellte ich fest, dass es durch glibc verursacht wurde. Während der Fehlerbehebung stellte ich außerdem fest, dass Version 2.15 nicht verwendet werden konnte. Verdammt, ich habe es mir schnell notiert.

Fehlerbehebungsprozess

1. Die direkte Antwort war der Zeichensatz. Ich habe mehrere Dokumente auf Baidu, verschiedene Konfigurationen und verschiedene Update-Plugins überprüft, aber sie funktionierten nicht. Außerdem hatte ich andere Arbeiten zu erledigen, was es mehrere Tage verzögerte.

Ich habe heute gründlich darüber nachgedacht. Da kein Zeichensatz wirksam ist, sollte es kein Zeichensatzproblem sein. Es muss ein Problem beim Ladevorgang geben. Der Server hat jedoch in den letzten Tagen keine Arbeit geleistet. Ich war gelangweilt und habe Baidu durchsucht. Plötzlich sah ich einen Beitrag zu glibc. Dann habe ich Baidu weiter durchsucht. Es gibt tatsächlich andere Leute, die auf ähnliche Probleme gestoßen sind. Sie sagten, dass make localedata/install-locales während der Kompilierung hinzugefügt werden sollte. Nachdem ich die Lösung verstanden hatte, habe ich sie sofort ausprobiert.

2. Der Systemstandard ist 2.12. Ich habe aufgrund einiger Plug-In-Anforderungen auf 2.14 aktualisiert. Ursprünglich wollte ich auf 2.12 downgraden, dachte mir dann aber, warum nicht 2.15 herunterladen und neu kompilieren, theoretisch sollten dann alle Probleme gelöst sein.

3. Suchen Sie online nach glibc-2.15-Ressourcen, laden Sie sie herunter, kompilieren Sie sie und installieren Sie sie. Nach den Routinevorgängen richten Sie den Softlink /lib64/libc.so.6 auf glibc-2.15. Dann wird der Fehler „Illegal instruction (core dumped)“ erneut gemeldet und das System kann sich nicht anmelden. Reparieren Sie schnell LD_PRELOAD=/lib64/libc-2.12.so ln -sf /lib64/libc-2.12.so /lib64/libc.so.6 und führen Sie zuerst ein Downgrade auf 2.12 durch. Zumindest ist das Zeichensatzproblem gelöst, aber das funktioniert nicht. Nach vielen Versuchen, auf 2.15 zu aktualisieren, schlug dies schließlich fehl und im Internet wurde keine relevante Lösung gefunden.

4. Ich musste einfach annehmen, dass es sich um ein Systemkompatibilitätsproblem handeln könnte. Ich gab nicht auf und versuchte erneut, auf 2.17 zu aktualisieren. Es funktionierte immer noch normal und dieses Mal funktionierte es endlich. . .

Spezifischer Prozess

1. Überprüfen Sie die System-glibc-Versionsbibliothek

Zeichenfolgen /lib64/libc.so.6 |grep GLIBC_

Ich habe festgestellt, dass die höchste Version 2.12 ist, und werde auf 2.17 aktualisieren. Installieren Sie 2.15 nicht. Ich weiß nicht, ob es meine Schuld ist, aber ich kann es trotzdem nicht installieren.

2. Herunterladen und installieren

Gehen Sie in das Download-Verzeichnis/data/install und führen Sie den Befehl aus. Ich werde die Details nicht erklären. Sie werden es verstehen.

wget https://ftp.gnu.org/gnu/glibc/glibc-2.17.tar.gz

tar xvf glibc-2.17.tar.gz

mkdir glibc-build-2.17

cd glibc-build-2.17/

../glibc-2.17/configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin

make -j8 und make install und make localedata/install-locales

3. Überprüfung

Zeichenfolgen /lib64/libc.so.6 | grep GLIBC

Es ist nicht erforderlich, die Datei /lib64/libc.so.6 zu ersetzen, und der Datei-Softlink verweist bereits auf glibc-2.17. Und schon sind Sie fertig.

Dies sind alles relevante Wissenspunkte. Wir hoffen, dass die von uns zusammengestellten Inhalte allen helfen können.

Das könnte Sie auch interessieren:
  • So ändern Sie die Zeichensatzkodierung in MySQL 5.5/5.6 unter Linux auf UTF8

<<:  So stellen Sie eine Datenbank und eine Tabelle aus einer vollständigen MySQL-Datenbanksicherung wieder her

>>:  Implementierung des Hochladens großer Dateien und des durch Haltepunkte fortsetzbaren Hochladens in Vue

Artikel empfehlen

Ein Artikel zum Verständnis der erweiterten Funktionen von K8S

Inhaltsverzeichnis Erweiterte Funktionen des K8S ...

XHTML-Tutorial, eine kurze Einführung in die Grundlagen von XHTML

<br />Dieser Artikel gibt Ihnen eine kurze E...

Methode zur Erstellung von Vue-Scaffolding-Lernprojekten

1. Was ist Scaffolding? 1. Vue-CLI Vue CLI ist ei...

Implementierung der Bereitstellung des Nginx+ModSecurity-Sicherheitsmoduls

Inhaltsverzeichnis 1. Herunterladen 2. Bereitstel...

Lernen Sie MySQL-Datenbanken in einer Stunde (Zhang Guo)

Inhaltsverzeichnis 1. Datenbankübersicht 1.1 Entw...

Abkürzungszeichen und Akronymzeichen

Die Tags <abbr> und <acronym> stellen ...

Detaillierte Erklärung der grundlegenden HTML-Tags und -Strukturen

1. HTML-Übersicht 1.HTML: Hypertext Markup Langua...

Detaillierte Schritte zur Installation von MySql 5.7.21 unter Linux

Vorwort Die am häufigsten verwendete Datenbank in...

Eine "klassische" Falle der MySQL UPDATE-Anweisung

Inhaltsverzeichnis 1. Problematische SQL-Anweisun...

CSS fügt Scroll zu Div hinzu und verbirgt die Bildlaufleiste

CSS fügt dem div Scrollen hinzu und verbirgt die ...