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

So simulieren Sie eine Aufzählung mit JS

Vorwort Im aktuellen JavaScript gibt es kein Konz...

Detaillierte Erläuterung der Überwachung der NVIDIA GPU-Nutzung unter Linux

Bei der Verwendung von TensorFlow für Deep Learni...

Detaillierte Erläuterung der häufig verwendeten Filter von Tomcat

Inhaltsverzeichnis 1. Domänenübergreifender Filte...

Detaillierte Erläuterung der Verwendung von MySQL Explain (Analyseindex)

EXPLAIN zeigt, wie MySQL Indizes verwendet, um Au...

25 neue nützliche Icon-Sets zum Download im Ausland

1. E-Commerce-Symbole 2. Symbol Süßigkeiten 2 3. ...

Detaillierte Erläuterung des MySQL Workbench-Nutzungs-Tutorials

Inhaltsverzeichnis (I) Verwenden von Workbench zu...

Detaillierte Erklärung zur Verwendung von Vue-Resource-Interceptors

Vorwort Abfangjäger In einigen modernen Front-End...

Linux-Swap-Partition (ausführliche Erklärung)

Inhaltsverzeichnis linux 1. Was ist SWAP 2. Was p...

Detaillierte Erklärung zu Javascript-Dateien und Blobs

Inhaltsverzeichnis Datei() Grammatik Parameter Be...

So ändern Sie die Größe von Partitionen in CentOS7

Gestern habe ich jemandem bei der Installation ei...