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

Automatische Zeilenumbrüche in HTML-Pre-Tags

Zu diesem Zeitpunkt können Sie overflow:auto; verw...

Über die richtige Art und Weise der Zeitumrechnung in JS beim Excel-Import

Inhaltsverzeichnis 1. Grundlagen 2. Problembeschr...

Beispiel für die Verwendung von rem zum Ersetzen von px in einem Vue-Projekt

Inhaltsverzeichnis Werkzeug Installieren Sie das ...

Eigenschaften und Quellcode der Echarts-Legendenkomponente

Die Legendenkomponente ist eine häufig verwendete...

Der Browser der Betaversion IE9 unterstützt HTML5/CSS3

Manche Leute sagen, dass IE9 die zweite Revolutio...

JavaScript zum Implementieren einer zeitlich begrenzten Flash-Sale-Funktion

In diesem Artikel wird der spezifische JavaScript...

Zusammenfassung der Verwendung von Element-Formularelementen

Es gibt viele Formularelemente. Hier ist eine kur...

Implementierungsprozessdatensatz für benutzerdefinierte Vue-Tabellenspalten

Inhaltsverzeichnis Vorwort Rendern setTable-Kompo...

Erfahrungsaustausch zur MySQL-Slave-Wartung

Vorwort: Die MySQL-Master-Slave-Architektur dürft...

Vue+Bootstrap realisiert ein einfaches Studentenverwaltungssystem

Ich habe Vue und Bootstrap verwendet, um ein rela...