Jak naprawić ostrzeżenie o ustawieniach regionalnych z Perla?

Kiedy biegnę perl, dostaję Ostrzeżenie:

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").
Jak to naprawić?
 480
Author: Rishabh, 2010-03-23

30 answers

Twój OS nie wie o en_US.UTF-8.

Nie wspomniałeś o konkretnej platformie, ale mogę odtworzyć twój problem:

% uname -a
OSF1 hunter2 V5.1 2650 alpha
% perl -e exit
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LC_ALL = (unset),
    LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").

Zgaduję, że użyłeś ssh do połączenia ze starszym hostem z nowszego komputera stacjonarnego. Często /etc/ssh/sshd_config zawiera

AcceptEnv LANG LC_*

, która pozwala klientom propagować do nowych sesji wartości tych zmiennych środowiskowych.

Ostrzeżenie daje podpowiedź o tym, jak go squelch, jeśli nie wymaga pełnego locale:

% env LANG=C perl -e exit
%

Lub z bash:

$ LANG=C perl -e exit
$ 

Aby uzyskać stałą poprawkę, wybierz jedną z

  1. na starszym komputerze Ustaw zmienną środowiskową LANG w pliku inicjalizacyjnym powłoki.
  2. zmodyfikuj środowisko po stronie klienta, np., zamiast ssh hunter2 użyj polecenia LANG=C ssh hunter2.
  3. jeśli masz uprawnienia administratora, zatrzymaj ssh od wysyłania zmiennych środowiskowych, komentując linię SendEnv LANG LC_* w local /etc/ssh/ssh_config Plik. (Dzięki ta odpowiedź . Zobacz Bug 1285 Dla OpenSSH aby dowiedzieć się więcej.)
 371
Author: Greg Bacon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-18 04:56:09

Oto Jak to rozwiązać na Mac OS Lion (10.7) lub Cygwin (Windows 10):

Dodaj następujące linie do bashrc lub bash_profile na komputerze hosta:

# Setting for the new UTF-8 terminal support in Lion
export LC_CTYPE=en_US.UTF-8
export LC_ALL=en_US.UTF-8
Jeśli używasz zsh, edytuj zshrc:
# Setting for the new UTF-8 terminal support in Lion
LC_CTYPE=en_US.UTF-8
LC_ALL=en_US.UTF-8
 410
Author: Allen Bargi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-16 10:09:24

Jeśli tworzysz rootfs używając debootstrap, będziesz musiał wygenerować ustawienia regionalne. Możesz to zrobić uruchamiając:

# (optional) enable missing locales
sudo nano /etc/locale.gen

# then regenerate
sudo locale-gen

Ta końcówka pochodzi z https://help.ubuntu.com/community/Xen

 170
Author: Marc,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-03 21:27:06

Ogólnie oznacza to, że nie ustawiłeś poprawnie ustawień regionalnych na swoim Linuksie.

Na Debianie lub Ubuntu, oznacza to, że musisz zrobić

$ sudo locale-gen
$ sudo dpkg-reconfigure locales

Zobacz także Man locale-gen .

 123
Author: Paul Tomblin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-03-23 15:24:26

Użycie:

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

Działa dla Debiana . Nie wiem dlaczego - ale locale-gen nie miał wyników.

Ważne! To tymczasowe rozwiązanie. Musi być uruchamiany dla każdej sesji.
 122
Author: artemn,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-07 08:56:18

Tylko dla użytkowników macOS i Mac OS X

Otrzymałem to samo ostrzeżenie podczas używania Git

Aby rozwiązać to Ostrzeżenie odznacz opcję Set locale environment variable on startup i uruchom ponownie terminal. Poniżej zrzut ekranu przedstawia Moje ustawienia terminala.

Tutaj wpisz opis obrazka

 79
Author: Inder Kumar Rathore,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-10 20:20:49

Jest to prosta poprawka w Ubuntu. Musisz wygenerować Lokalizacje od podstaw, uruchamiając następujące polecenia z linii poleceń:

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

To powinno utworzyć lokalizacje, a następnie je ponownie skonfigurować.

 34
Author: jfreak53,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-08 23:11:34

Używam teraz tego:

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

Następnie wyloguj się z sesji SSH i zaloguj się ponownie.

Stara odpowiedź:

Tylko to mi pomogło:

$ 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
 24
Author: warvariuc,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-23 16:42:05

Dodanie do /etc/environment naprawiono problem dla mnie na Debianie i Ubuntu (oczywiście zmodyfikuj, aby dopasować ustawienia regionalne, których chcesz użyć):

LANGUAGE=en_US.UTF-8
LC_ALL=en_US.UTF-8
LANG=en_US.UTF-8
LC_TYPE=en_US.UTF-8
 21
Author: joscarsson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-01-26 12:09:27

Na Debianie po długich poszukiwaniach udało się.

Pierwszy:

sudo apt-get purge locales

Wtedy:

sudo aptitude install locales

I słynny:

sudo dpkg-reconfigure locales

Powoduje to przerwanie systemu locale, a następnie ponowne zainstalowanie locale i obniżenie wersji libc6 z 2.19 do 2.13, co jest problemem. Następnie ponownie konfiguruje ustawienia regionalne.

 20
Author: tkjef,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-26 20:03:54

Jeśli używasz Mac OS X v10.10 (Yosemite) lub nowszego, aby połączyć się z serwerem Linux, możesz wykonać następujące kroki.

  1. Zachowaj oryginalny plik/etc/ssh / SSHD-config

  2. Załóż swoje~/.bash_profile

    export LANG="en_US"
    export LC_ALL=$LANG.UTF-8
    
  3. Run

    dpkg-reconfigure locales
    

    I wybierz " en_US.UTF-8"

 11
Author: dsandrade,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-08 23:18:07

Musisz odpowiednio skonfigurować locale w /etc/default/locale, Wyloguj się, Zaloguj się , a następnie uruchom zwykłe polecenia

root@host:~# echo -e 'LANG=en_US.UTF-8\nLC_ALL=en_US.UTF-8' > /etc/default/locale
root@host:~# exit
local-user@local:~$ ssh root@host
root@host:~# locale-gen en_US.UTF-8
root@host:~# dpkg-reconfigure locales
 10
Author: glarrain,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-14 17:38:53
sudo nano /etc/locale.gen

Odkomentuj lokalizacje, których chcesz użyć (np. en_US.UTF-8 UTF-8):

Następnie uruchom:

sudo /usr/sbin/locale-gen

Źródło: http://people.debian.org / ~schultmc/locales.html

 9
Author: Thomas Jensen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-06-16 13:46:36
perl: warning: Falling back to the standard locale ("C").
locale: Cannot set LC_ALL to default locale: No such file or directory

Rozwiązanie:

Spróbuj tego (uk_UA.UTF-8 to moje obecne ustawienia regionalne. Napisz swoje locale, na przykład en_US.UTF-8 !)

sudo locale-gen uk_UA.UTF-8
I to.
sudo dpkg-reconfigure locales
 9
Author: bogdanvlviv,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-28 14:01:16

Dla Ubuntu użyj tego,

#export LANGUAGE=en_US.UTF-8
#export LC_ALL=en_US.UTF-8
#export LANG=en_US.UTF-8
#export LC_TYPE=en_US.UTF-8
Zadziałało dla mnie.
 9
Author: Amjith,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-12 12:59:01

Dla mnie naprawiam ten błąd edytując .plik bashrc dodaj eksport. Dodaj po wstępnych komentarzach.

Dodaj obsługę języka.

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

Regady Typu,

 6
Author: LandiLeite,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-03 17:07:22

Po zaakceptowanej odpowiedzi:

LANG = C SSH hunter2.

LC_ALL=C SSH hunter2

Po stronie klienta zrobił dla mnie sztuczkę.

 4
Author: Alex Kosenkov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-08 23:02:37

Dodaj LC_ALL="en_GB.utf8" do /etc/environment i uruchom ponownie. To wszystko.

 3
Author: zires,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-08 23:13:41

Z zsh ohmyzsh dodałem to do .zshrc:

 # You may need to manually set your language environment
 LANGUAGE=en_US.UTF-8
 LANG=en_US.UTF-8
 LC_CTYPE=en_US.UTF-8
 LC_ALL=en_US.UTF-8

Poprzez usunięcie linii export LANG=en_US.UTF-8

Otworzyłem nową zakładkę i SSHed w, pracował dla mnie:)

 3
Author: Joseph Briggs,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-25 11:02:13

Jak zawsze diabeł tkwi w szczegółach...

On Mac OS X v10.7.5 (Lion), aby naprawić jakiś błąd Django , w moim ~/.bash_profile ustawiłem:

export LANG=en_EN.UTF-8
export LC_COLLATE=$LANG
export LC_CTYPE=$LANG
export LC_MESSAGES=$LANG
export LC_MONETARY=$LANG
export LC_NUMERIC=$LANG
export LC_TIME=$LANG
export LC_ALL=$LANG

I z kolei przez długi czas otrzymywałem to Ostrzeżenie podczas używania Perla.

Mój błąd! Jak zdałem sobie sprawę znacznie później, mój system jest en_US.UTF-8! Naprawiłem go po prostu zmieniając z
export LANG=en_EN.UTF-8

Do

export LANG=en_US.UTF-8
 2
Author: Luca Bonavita,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-08 23:08:19

Dla każdego, kto łączy się z DigitalOcean lub innym dostawcą usług hostingowych w chmurze z iTerm2.aplikacja na MacOS High Sierra i uzyskanie tego błędu w niektórych poleceniach:

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").

To naprawiło problem dla mnie:

Tutaj wpisz opis obrazka

Wiem, że ten wątek jest stary, ale może komuś się to przyda. Wiem, jakie to denerwujące.
 2
Author: Ogalb,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-25 17:52:26

Dodaj brakujące lokalizacje do .bash_profile

echo "export LANGUAGE=en_US.UTF-8
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8">>~/.bash_profile
/ Align = "left" / bash_profile
source ~/.bash_profile
 2
Author: Parinda Rajapaksha,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-08 09:44:11

W moim przypadku było to wyjście:

LANGUAGE = (unset),
LC_ALL = (unset),
LC_PAPER = "ro_RO.UTF-8",
LC_ADDRESS = "ro_RO.UTF-8",
....

Rozwiązaniem było:

sudo locale-gen ro_RO.UTF-8
 1
Author: Rodislav Moldovan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-08 23:10:15

ssh domyślnie zastępuje zmienne lokalne LC. Zobacz /etc/ssh/sshd_config:

AcceptEnv LANG LC_*

Więc może trzeba ustawić te zmienne w lokalnej powłoce.

 1
Author: garaboncias,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-08 23:14:26

Jeśli nie obchodzi cię problem z locale, możesz ustawić PERL_BADLANG=0. Oczywiście może to skutkować nieprawidłową lokalizacją.

 1
Author: Craig Ringer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-04 14:36:23

Dla mnie na Ubuntu 16.04 (Xenial Xerus) zadziałało:

root@host:~#locale-gen en_GB.UTF-8
root@host:~#localectl set-locale LANG=en_GB.UTF-8,LC_ALL=en_GB.UTF-8

Następnie uruchom ponownie...

 1
Author: Aleksandar Pavić,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-10 22:29:03

Wszystkie poprzednie odpowiedzi są błędne. Wiadomość jest jasna-brak locale. Rozwiązaniem jest dodanie odpowiedniej lokalizacji. Można to zrobić edytując plik/etc / locale.plik gen, Usuń znak # przed lokalizacją zgłoszoną jako brakującą, a następnie wydaj polecenie:

$ sudo locale-gen

Spowoduje to wygenerowanie ustawień regionalnych podanych w /etc/locale.gen i dlatego wiadomość nie zostanie wyświetlona.

 1
Author: Matthias Hryniszak,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-10 22:30:02

W moim przypadku, z debian8. 6, musiałem zmienić ustawienia w:

/etc/ssh/ssh_config dla #AcceptEnv LANG LC_*

Oraz sshd_config dla #SendEnv LANG LC_*

Następnie uruchom ponownie usługę ssh.

At last, did

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

 1
Author: 張祐榕,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-06 09:54:55

W Arch Linux używając klawiatury / locale UK miałem następujący błąd:

perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LANG = "en_US.utf8"
  • Eksportowanie moich lokalizacji w /etc/profile nie naprawiło tego.

  • Jednak naprawiłem to edytując /etc/locale.gen i włączając
    ustawienia regionalne en_US.utf8, Które perl powinny znaleźć i uruchomić local-gen.

(używam PAC-manager który wykorzystuje całą masę perl modułów z AUR, więc ponowna instalacjaperl w moim konkretnym przypadku byłaby uciążliwa)

 1
Author: Stuart Cardall,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-30 19:13:01

Dodanie poprawnego locale do ~/.bashrc, ~/.bash_profile, /etc/environment i tym podobne rozwiąże problem, jednak nie jest to zalecane, ponieważ zastępuje ustawienia z /etc/default/locale, co jest w najlepszym razie mylące i może prowadzić do tego, że lokalizacje nie są konsekwentnie stosowane w najgorszym.

Zamiast tego należy edytować /etc/default/locale bezpośrednio, co może wyglądać mniej więcej tak:

LANG=en_US.UTF-8
LANGUAGE=en_US:en
LC_CTYPE=en_US
 1
Author: Nuvanda,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-03 21:14:37