Wenn ich renne perl
, bekomme ich die Warnung:
Perl: Warnung: Das Einstellen des Gebietsschemas ist fehlgeschlagen. Perl: Warnung: Bitte überprüfen Sie Ihre Gebietsschemaeinstellungen: LANGUAGE = (nicht gesetzt), LC_ALL = (nicht gesetzt), LANG = "en_US.UTF-8" werden auf Ihrem System unterstützt und installiert. Perl: Warnung: Zurückgreifen auf das Standardgebietsschema ("C").
Wie behebe ich das?
~/.pam_environment
Antworten:
Ihr Betriebssystem weiß nichts darüber
en_US.UTF-8
.Sie haben keine bestimmte Plattform erwähnt, aber ich kann Ihr Problem reproduzieren:
Ich vermute, Sie haben ssh verwendet, um von einem neueren Desktop-Computer aus eine Verbindung zu diesem älteren Host herzustellen. Es ist üblich,
/etc/ssh/sshd_config
zu enthaltenDadurch können Clients die Werte dieser Umgebungsvariablen in neue Sitzungen übertragen.
Die Warnung gibt Ihnen einen Hinweis, wie Sie sie unterdrücken können, wenn Sie nicht das vollständige Gebietsschema benötigen:
oder mit Bash:
Wählen Sie für eine dauerhafte Korrektur eine der Optionen
LANG
Umgebungsvariable in der Initialisierungsdatei Ihrer Shell fest.ssh hunter2
den Befehl zu verwendenLANG=C ssh hunter2
.SendEnv LANG LC_*
Zeile in der lokalen/etc/ssh/ssh_config
Datei auskommentieren. (Dank dieser Antwort . Weitere Informationen finden Sie in Bug 1285 für OpenSSH.)quelle
dpkg-reconfigure locales
die Nachricht verschwunden.service ssh reload
, was einen Bruchteil einer Sekunde dauert und nicht einmal dazu führt, dass die aktuelle ssh-Sitzung beendet wird.So lösen Sie es unter Mac OS Lion (10.7) oder Cygwin (Windows 10):
Fügen Sie Ihrem bashrc oder bash_profile auf dem Hostcomputer die folgenden Zeilen hinzu:
Wenn Sie zsh verwenden, bearbeiten Sie zshrc:
quelle
LC_ALL
alle anderen Variablen überschrieben werden, möchte ich lieberLANG=de_AT.UTF-8
einzelne Variablen wie setzenLC_MESSAGES=en_US.UTF-8
. Wenn eine Variable nicht gesetzt ist, wird auf zurückgegriffenLANG
. Sie können auch z.unset LC_CTYPE
um es zu erzwingen, fallen zurück aufLANG
.~/.bashrc
es für mich gelöst ... dann muss neu geladen werden mitsource ~/.bashrc
... Thnks <3Wenn Sie ein Rootfs mit Debootstrap erstellen, müssen Sie die Gebietsschemas generieren. Sie können dies tun, indem Sie Folgendes ausführen:
Dieser Tipp stammt von https://help.ubuntu.com/community/Xen
quelle
Ubuntu Server
$ echo en_US UTF-8 >> /etc/locale.gen
zuerst tun .locale-gen
nimmt keine Argumente. Es liest aus/etc/locale.gen
.Verwenden:
Es funktioniert für Debian . Ich weiß nicht warum - aber locale-gen hatte keine Ergebnisse.
Wichtig! Es ist eine vorübergehende Lösung. Es muss für jede Sitzung ausgeführt werden.
quelle
.bashrc
Akte aufgenommen.local-gen
nur Gebietsschemas verarbeitet, die nicht kommentiert sind/etc/local.gen
. Möglicherweise müssen Sieecho en_US UTF-8 >> /etc/locale.gen
zuerst tun .Dies bedeutet im Allgemeinen, dass Sie die Gebietsschemas auf Ihrer Linux-Box nicht ordnungsgemäß eingerichtet haben.
Unter Debian oder Ubuntu bedeutet dies, dass Sie dies tun müssen
Siehe auch man locale-gen .
quelle
sudo locale-gen es_UY.UTF-8
Nur für Benutzer von macOS und Mac OS X.
Ich habe die gleiche Warnung erhalten, als ich Git verwendet habe
So beheben Sie diese Warnung Deaktivieren Sie die
Set locale environment variable on startup
Option und starten Sie Ihr Terminal neu. Der folgende Screenshot zeigt meine Terminaleinstellungen.quelle
Es ist eine einfache Lösung in Ubuntu. Sie müssen die Gebietsschemas von Grund auf neu generieren und die folgenden Befehle über die Befehlszeile ausführen:
Dadurch sollten die Gebietsschemas erstellt und anschließend neu konfiguriert werden.
quelle
pt_BR pt_BR.UTF-8
- Danke.Fügen Sie Folgendes hinzu, um
/etc/environment
das Problem für mich unter Debian und Ubuntu zu beheben (ändern Sie es natürlich, um es an das Gebietsschema anzupassen, das Sie verwenden möchten):quelle
/etc/environment
veraltet ist und stattdessen festgelegt werden sollte/etc/default/locale
. Beides scheint vorerst zu funktionieren.LC_CTYPE
Ich benutze jetzt Folgendes:
Melden Sie sich dann von der SSH-Sitzung ab und erneut an.
Alte Antwort:
Nur das hat mir geholfen:
quelle
auf Debian nach langem Suchen hat dies den Trick getan.
zuerst:
dann:
und die berühmten:
Dadurch wird das System der Gebietsschemas entfernt, dann werden die Gebietsschemas neu installiert und libc6 von 2.19 auf 2.13 herabgestuft, was das Problem ist. Konfiguriert dann die Gebietsschemas erneut.
quelle
dpkg-reconfigure locales
ist alles was benötigt wird.sudo
Wenn Sie ein Sudo-Typ sind, oder tun Sie es als root. Wählen Sie dann Ihr Gebietsschema entsprechend Ihrer Shell-Umgebung aus.Dies ist eine schnelle Antwort. Wir werden Gebietsschemas festlegen, die nach dem Neustart nicht deaktiviert werden. Öffnen Sie zuerst die Bash-Datei und bearbeiten Sie sie:
Fügen Sie der Datei folgende Zeilen hinzu:
Aktivierung durch erneutes Laden von Bash aktivieren:
Testergebnisse :
quelle
Für Ubuntu verwenden Sie dies,
Hat für mich gearbeitet.
quelle
/etc/default/locale
und nur die Definition derWenn Sie Mac OS X 10.10 (Yosemite) oder höher verwenden, um eine Verbindung in Ihrem Server Linux herzustellen , können Sie diese Schritte ausführen .
Behalten Sie Ihre Datei / etc / ssh / sshd-config original
Legen Sie Ihr ~ / .bash_profile an
Lauf
Und wählen Sie "en_US.UTF-8"
quelle
Kommentieren Sie die Gebietsschemas aus, die Sie verwenden möchten (z
en_US.UTF-8 UTF-8
):Dann renne:
Quelle: http://people.debian.org/~schultmc/locales.html
quelle
Sie müssen das Gebietsschema entsprechend konfigurieren
/etc/default/locale
, sich abmelden, anmelden und dann die regulären Befehle ausführenquelle
Lösung:
Versuchen Sie dies ( uk_UA.UTF-8 ist mein aktuelles Gebietsschema. Schreiben Sie Ihr Gebietsschema, zum Beispiel en_US.UTF-8 !)
und das.
quelle
Für mich behebe ich diesen Fehler beim Bearbeiten der .bashrc-Datei add export. Nach ersten Kommentaren hinzufügen.
Sprachunterstützung hinzufügen.
Freundliche Regads,
quelle
Das Hinzufügen der richtigen Gebietsschema
~/.bashrc
,~/.bash_profile
,/etc/environment
und dergleichen wird das Problem lösen, aber es wird nicht empfohlen, da es die Einstellungen außer Kraft/etc/default/locale
, die bestenfalls verwirrend und kann zu den Schauplätzen führt nicht konsequent im schlimmsten Fall angewandt werden.Stattdessen sollte man
/etc/default/locale
direkt bearbeiten , was ungefähr so aussehen könnte:Die Änderung wird beim nächsten Anmelden wirksam. Sie können das neue Gebietsschema in einer vorhandenen Shell abrufen, indem Sie Folgendes beschaffen
/etc/default/locale
:quelle
locale-gen
Für alle, die über iTerm2.app unter MacOS High Sierra eine Verbindung zu DigitalOcean oder einem anderen Cloud-Hosting-Anbieter herstellen und diesen Fehler bei einigen Befehlen erhalten:
Dies hat das Problem für mich behoben:
Ich weiß, dass dieser Thread alt ist, aber vielleicht findet jemand dies nützlich. Ich weiß, wie nervig das sein kann.
quelle
Nach der akzeptierten Antwort:
LC_ALL = C ssh hunter2
auf der Client-Seite hat den Trick für mich getan.
quelle
Mit zsh ohmyzsh habe ich folgendes hinzugefügt
.zshrc
:Durch Entfernen der Linie
export LANG=en_US.UTF-8
Öffnete einen neuen Tab und SSHed in, arbeitete für mich :)
quelle
In
LC_ALL="en_GB.utf8"
zu/etc/environment
und neu starten. Das ist alles.quelle
Wie immer steckt der Teufel im Detail ...
Unter Mac OS X 10.7.5 (Lion) habe ich Folgendes festgelegt , um einen Django- Fehler zu beheben
~/.bash_profile
:Und im Gegenzug bekam ich diese Warnung lange Zeit, wenn ich Perl verwendete.
Mein Fehler! Wie ich viel später festgestellt habe, ist mein System
en_US.UTF-8
! Ich habe es einfach durch einen Wechsel von behobenzu
quelle
Wenn Sie sich nicht für das Gebietsschema interessieren, können Sie festlegen
PERL_BADLANG=0
. Dies kann natürlich zu einer falschen Lokalisierung führen.quelle
Alle vorherigen Antworten sind falsch. Die Nachricht ist klar - Gebietsschema fehlt. Die Lösung besteht darin, das entsprechende Gebietsschema hinzuzufügen. Sie bearbeiten dazu die Datei /etc/locale.gen, entfernen das # -Zeichen vor dem Gebietsschema, das als fehlend gemeldet wird, und geben dann den folgenden Befehl aus:
Dadurch werden tatsächlich die in /etc/locale.gen angegebenen Gebietsschemas generiert, und daher wird die Nachricht nicht angezeigt.
quelle
In meinem Fall musste ich mit debian8.6 die Einstellungen ändern in:
/etc/ssh/ssh_config
zum#AcceptEnv LANG LC_*
und
sshd_config
für#SendEnv LANG LC_*
Starten Sie dann den SSH-Dienst neu.
endlich tat
locale-gen en_US.UTF-8
unddpkg-reconfigure locales
quelle
Fügen Sie fehlende Gebietsschemas zu .bash_profile hinzu
Dann geben Sie Ihr .bash_profile ein
quelle
In meinem Fall war dies die Ausgabe:
Die Lösung war:
quelle
ssh
Überschreibt standardmäßig LC-Gebietsschemavariablen. Siehe/etc/ssh/sshd_config
:Vielleicht müssen Sie diese Variablen in Ihrer lokalen Shell festlegen.
quelle
Unter Ubuntu 16.04 (Xenial Xerus) hat für mich Folgendes funktioniert:
Dann neu starten ...
quelle