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?

101voto

Inder Kumar Rathore Punkte 38280

Nur für Benutzer von macOS und Mac OS X

Ich erhielt die gleiche Warnung bei der Verwendung von Git

So beheben Sie diese Warnung Deaktivieren Sie el Set locale environment variable on startup und starten Sie Ihr Terminal neu. Der folgende Screenshot zeigt die Einstellungen meines Terminals.

enter image description here

42voto

jfreak53 Punkte 2098

In Ubuntu ist es einfach zu beheben. Sie müssen die Locales von Grund auf neu generieren, indem Sie die folgenden Befehle in der Befehlszeile ausführen:

sudo locale-gen en_US en_US.UTF-8
sudo dpkg-reconfigure locales

Dadurch sollten die Gebietsschemata erstellt und anschließend neu konfiguriert werden.

40voto

joscarsson Punkte 4721

Hinzufügung des Folgenden zu /etc/environment hat das Problem bei mir unter Debian und Ubuntu behoben (natürlich an das gewünschte Gebietsschema anpassen):

LANGUAGE=en_US.UTF-8
LC_ALL=en_US.UTF-8
LANG=en_US.UTF-8
LC_CTYPE=en_US.UTF-8

28voto

warvariuc Punkte 53231

Ich verwende dies jetzt:

$ cat /etc/environment
...
LC_ALL=en_US.UTF-8
LANG=en_US.UTF-8

Melden Sie sich dann von der SSH-Sitzung ab und melden Sie sich erneut an.

Alte Antwort:

Nur das hat mir geholfen:

$ locale
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE=en_US.UTF-8
LC_NUMERIC=ru_RU.UTF-8
LC_TIME=ru_RU.UTF-8
LC_COLLATE="en_US.UTF-8"
LC_MONETARY=ru_RU.UTF-8
LC_MESSAGES="en_US.UTF-8"
LC_PAPER=ru_RU.UTF-8
LC_NAME=ru_RU.UTF-8
LC_ADDRESS=ru_RU.UTF-8
LC_TELEPHONE=ru_RU.UTF-8
LC_MEASUREMENT=ru_RU.UTF-8
LC_IDENTIFICATION=ru_RU.UTF-8
LC_ALL=

$ sudo su

# export LANGUAGE=en_US.UTF-8
# export LANG=en_US.UTF-8
# export LC_ALL=en_US.UTF-8

# locale-gen en_US.UTF-8
Generating locales...
  en_US.UTF-8... up-to-date
Generation complete.

# dpkg-reconfigure locales
Generating locales...
  en_AG.UTF-8... done
  en_AU.UTF-8... done
  en_BW.UTF-8... done
  en_CA.UTF-8... done
  en_DK.UTF-8... done
  en_GB.UTF-8... done
  en_HK.UTF-8... done
  en_IE.UTF-8... done
  en_IN.UTF-8... done
  en_NG.UTF-8... done
  en_NZ.UTF-8... done
  en_PH.UTF-8... done
  en_SG.UTF-8... done
  en_US.UTF-8... up-to-date
  en_ZA.UTF-8... done
  en_ZM.UTF-8... done
  en_ZW.UTF-8... done
Generation complete.

# exit

$ locale
LANG=en_US.UTF-8
LANGUAGE=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=en_US.UTF-8

27voto

tkjef Punkte 676

Unter Debian hat dies nach langem Suchen den gewünschten Erfolg gebracht.

Erstens:

sudo apt-get purge locales

Dann:

sudo aptitude install locales

Und das berühmte:

sudo dpkg-reconfigure locales

Dadurch wird das System von den Gebietsschemata befreit, dann werden die Gebietsschemata neu installiert und libc6 von 2.19 auf 2.13 heruntergestuft, was das Problem ist. Dann werden die Locales erneut konfiguriert.

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