854 Stimmen

Wie man eine Locale-Einstellungswarnung von Perl behebt

Wenn ich laufe perl erhalte ich die Warnung:

perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC\_ALL = (unset),
    LANG = "en\_US.UTF-8"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").

Wie kann ich es reparieren?

9voto

Blago Eres Punkte 1258

Für alle, die eine Verbindung zu DigitalOcean oder einen anderen Cloud-Hosting-Anbieter aus der iTerm2.app auf macOS v10.13 (High Sierra) und erhalte diesen Fehler bei einigen Befehlen:

perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LC_CTYPE = "UTF-8",
    LANG = "en_US.UTF-8"
  are supported and installed on your system.
perl: warning: Falling back to a fallback locale ("en_US.UTF-8").

Damit ist das Problem für mich gelöst:

Enter image description here

7voto

lanoxx Punkte 10439

Wenn dieses Problem auftritt, während Sie eine Verbindung über ssh zu einem entfernten Rechner, dann ist es möglich, dass dem entfernten System bestimmte Gebietsschemata fehlen. Ich werde nicht wiederholen, wie man Sprachumgebungen installiert und konfiguriert, da dies bereits in anderen Antworten gut erklärt wurde.

Wie bereits in anderen Antworten erwähnt, sollte ssh die Gebietsschemata Ihres lokalen Computers an den entfernten Host weitergeben. Wenn Sie zum Beispiel australische Gebietsschemata eingestellt haben (z. B., en_AU.UFT-8 ), und Sie verbinden sich mit einem neu eingerichteten Ubuntu Server, der nur mit en_US.UTF-8 dann werden Sie diese Warnung erhalten.

Um dieses Problem zu lösen, haben Sie mehrere Möglichkeiten:

  1. Installieren Sie die erforderlichen Gebietsschemata auf dem entfernten Host, damit sie mit den auf Ihrem Client konfigurierten Gebietsschemata übereinstimmen.

  2. Ändern Sie die SSH-Konfiguration in no Übergeben Sie die Umgebungsvariablen Ihrer Kunden. Ich würde dies nicht empfehlen.

  3. Überschreiben Sie das Gebietsschema auf Ihrem entfernten Rechner, indem Sie die Gebietsschemaeinstellungen aus der Datei exportieren .bashrc und Freunde.

7voto

Nuvanda Punkte 445

Hinzufügen des richtigen Gebietsschemas zu ~/.bashrc , ~/.bash_profile , /etc/environment und dergleichen löst das Problem, wird aber nicht empfohlen, da es die Einstellungen von /etc/default/locale was im besten Fall verwirrend ist und im schlimmsten Fall dazu führen kann, dass die Gebietsschemata nicht einheitlich angewendet werden.

Stattdessen sollte man bearbeiten /etc/default/locale direkt, was etwa so aussehen kann:

LANG=en_US.UTF-8
LANGUAGE=en_US:en
LC_CTYPE=en_US

Die Änderung tritt in Kraft, wenn Sie sich das nächste Mal einloggen. Sie können das neue Gebietsschema in einer bestehenden Shell erhalten, indem Sie /etc/default/locale wie diese:

$ . /etc/default/locale

6voto

erik Punkte 2168

Ursache des Problems

Diese Erfahrung habe ich gemacht, als ich mich von einem Rechner zu einem anderen über ssh . Der entfernte Rechner verfügte nicht über die Gebietsschemadateien, die ich auf meinem lokalen Rechner hatte. Sie können entweder die Weiterleitung der Locale von Ihrem lokalen Rechner an den entfernten Rechner deaktivieren (in der Datei /etc/ssh/sshd_config die Zeile entfernen AcceptEnv LANG LC_CTYPE … ) oder installieren Sie das Gebietsschema (eine Änderung ist in diesem Fall nicht erforderlich).

Installation von

オン Fedora , Red Hat Linux y CentOS Ich habe

sudo dnf install langpacks-de

für die deutschen (de) Sprachpakete. Ich habe mich ab- und wieder angemeldet, und es hat funktioniert.

Suche nach anderen Langpacks mit

dnf search langpacks-

Ändern/Aktivieren

Zur Auflistung der verfügbaren Gebietsschemata habe ich

localectl list-locales

Und ein neues zu setzen

sudo localectl set-locale de_DE.utf8

6voto

Parinda Rajapaksha Punkte 2466

Fehlende Gebietsschemata zur Datei hinzufügen [.bash_profile](https://en.wikipedia.org/wiki/Bash%28Unix_shell%29#Legacy-compatible_Bash_startupexample) :

echo "export LANGUAGE=en_US.UTF-8
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8">>~/.bash_profile

Dann beziehen Sie Ihr .bash_profile Datei:

source ~/.bash_profile

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X