Jak mohu opravit svůj problém jazyka?

465

Obdržím tuto zprávu pokaždé, když udělám něco jako spuštění nebo zastavení služby.

perl: warning: Setting locale failed.   
perl: warning: Please check that your locale settings:   
        LANGUAGE = "en_US:en",   
        LC_ALL = (unset),   
        LC_MESSAGES = "en_US.UTF-8",   
        LANG = "en_US.UTF-8"   
    are supported and installed on your system.   
perl: warning: Falling back to the standard locale ("C").   
locale: Cannot set LC_CTYPE to default locale: No such file or directory   
locale: Cannot set LC_MESSAGES to default locale: No such file or directory   
locale: Cannot set LC_ALL to default locale: No such file or directory   
(Reading database ... 21173 files and directories currently installed.)  
Removing bind9 ...  
 * Stopping domain name service... bind9                                        [ OK ]
Processing triggers for man-db ...   
locale: Cannot set LC_CTYPE to default locale: No such file or directory   
locale: Cannot set LC_MESSAGES to default locale: No such file or directory   
locale: Cannot set LC_ALL to default locale: No such file or directory   

Jak tuto chybu opravit?

    
dané HackToHell 11.07.2012 16:08

19 odpovědí

474

Nejprve spusťtelocale a zadejte seznam míst, které jsou aktuálně definovány pro aktuální uživatelský účet:

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

Vygenerujte chybějící národní prostředí a znovu nastavte lokalizované lokality, abyste si to všimli:

$ sudo locale-gen "en_US.UTF-8"
Generating locales...
  en_US.UTF-8... done
Generation complete.

$ sudo dpkg-reconfigure locales
Generating locales...
  en_US.UTF-8... up-to-date
Generation complete.

Nyní už nevidíte žádné chyby!

    
odpověděl Otto Kekäläinen 10.12.2012 13:45
342

V mém případě nebylo nic navrženo výše (Ubuntu Server 12.04LTS). Co konečně pomohlo byl vložen do souboru/etc/environment:

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

Z nějakého důvodu to chybělo. Výstupy pro národní prostředí a další příkazy se objevily jako správně definované proměnné. Jinými slovy nepovažujte za samozřejmé, že všechny základní věci jsou deklarovány tam, kde by měly být deklarovány.

    
odpověděl Marcin 16.12.2012 05:11
140

Měli by zmizet po vydání:

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

dpkg-reconfigure rekonfigurová balíčky po jejich ukončení        nainstalován. Projděte jimi názvy balíčků nebo balíčků, které chcete překonfigurovat.        Bude se ptát na konfigurační otázky, jako kdyby byl balíček        nejprve nainstalován.

    
odpověděl Rinzwind 11.07.2012 16:19
108

Stačí přidat do souboru.bashrc (za předpokladu, že používáte bash)

export LC_ALL="en_US.UTF-8"
    
odpověděl ratz 08.11.2012 10:42
88

Jedná se o běžný problém, pokud se připojujete vzdáleně, takže řešením není posunout své národní prostředí. Upravte/etc/ssh/ssh_config a vyjměte komentářSendEnv LANG LC_* line.

    
odpověděl user249697 01.10.2014 02:45
64

Existuje příkaz:

sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8

Aktualizuje/etc/default/locale s poskytnutými hodnotami.

    
odpověděl sgtpep 01.08.2014 13:51
30

Co pro mě bylo za 12.10 bylo toto:

apt-get install language-pack-en-base  

Toto bylo podpkg-reconfigure locales nevyvolané žádné výsledky.

    
odpověděl George Answerology 28.04.2013 04:01
16

Nezapomeňte ukončit relaci SSH (nebo X11) tím, že opustíte a znovu se přihlásíte. Všechny tyto návrhy nefungovaly pro mě, pokud jsem se nepřihlásil zpět ....

    
odpověděl Michael R. Hines 26.09.2014 08:51
11

Pro Ubuntu 12.10 žádný z výše uvedených postupů nepracoval, s výjimkou řešení ratzs. Doporučuji je přidat do souboru /etc/bash.bashrc:

export LC_ALL="en_ZA.UTF-8"
export LC_CTYPE="en_ZA.UTF-8"
    
odpověděl Lovemore Nalube 27.03.2013 04:19
11

Byl jsem uvíznutý v podivném stavu, kde je místní počítač nastaven naes, a tak byl vzdálený počítač (prostřednictvímvagrant) zajištěn v nezabezpečeném stavu. Proto jsem musel použít manuálníexport= pouze k usnadnění úspěšnéhodpkg-reconfigure. Pak je systém v pořádku.

export LC_ALL="en_US.UTF-8"
sudo dpkg-reconfigure locales
    
odpověděl charneykaye 22.03.2016 19:02
9

Pro opravu jsem napsal bash skript . nad výše uvedeným číslem. Výše ​​uvedené odpovědi jsou užitečné, ale nastavení proměnných jazyka prostým exportováním hodnot v proměnné prostředí bude fungovat pouze pro relaci. Tento problém jsem natrvalo vyřešil exportováním proměnných jazyka v souboru .bash_profile. Můžete také použít soubor/etc/profile namísto.bash_profile.

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

Nezapomeňte nasource.bash_profile a postupujte podle script v jednoduchém nastavení.

    
odpověděl Ajeet Khan 27.02.2016 20:26
8

Můžete zkusit:

export LANGUAGE=ru_RU.UTF-8
export LC_CTYPE=ru_RU.UTF-8
export LC_NUMERIC=ru_RU.UTF-8
export LC_TIME=ru_RU.UTF-8
export LC_COLLATE=ru_RU.UTF-8
export LC_MONETARY=ru_RU.UTF-8
export LC_MESSAGES=ru_RU.UTF-8
export LC_PAPER=ru_RU.UTF-8
export LC_NAME=ru_RU.UTF-8
export LC_ADDRESS=ru_RU.UTF-8
export LC_TELEPHONE=ru_RU.UTF-8
export LC_MEASUREMENT=ru_RU.UTF-8
export LC_IDENTIFICATION=ru_RU.UTF-8
export LC_ALL=ru_RU.UTF-8

, kderu_RU je kód země.

    
odpověděl Koss 17.06.2013 15:34
6

Jak bylo řečeno zde v Debian Wiki , můžete upravit/etc/locale.gen a přidat všechny lokality (nebo je odkomentovat, Měl jsem seznam všech lokalizací, ale všech, kromě těch, které jsem použil jako připomínky), které chcete mít na vašem systému podporu. Potom spusťte

sudo dpkg-reconfigure locales

aktualizujte lokalizaci v systému. Nyní jsou všechny lokalizace, které jste přidali / nekomentovali v/etc/locale.gen, k dispozici ve vašem systému bez varování.

    
odpověděl msrd0 14.12.2014 12:28
6

Současná přijatá odpověď není dostatečná v strategii řešení problémů, protože můžete mít lidskou chybu. Nastavili jste systém naen_US, aleen_GB máte povoleno v/etc/locale.gen, jako jsem měl ve vlákně zde a> pro Raspberry Pi 3b. Měli byste mít all povolené lokalizace povolené v/etc/locale.gen.

Měl jsemen_GB.UTF-8 UTF-8 povolen pouze v/etc/locale.gen. Měl bych tam povolit pouzeen_US.UTF-8 UTF-8 kvůli ostatním příkazům spuštěným za to. Tak jsem komentoval GB a uncommented USA, a všechno funguje teď

masi@raspberrypi:~ $ sudo vim /etc/locale.gen

masi@raspberrypi:~ $ sudo locale-gen 
Generating locales (this might take a while)...
  en_US.UTF-8... done
Generation complete.

masi@raspberrypi:~ $ sudo a2enmod rewrite && a2enmod headers && a2enmod ssl
Module rewrite already enabled
Module headers already enabled
Considering dependency setenvif for ssl:
Module setenvif already enabled
Considering dependency mime for ssl:
Module mime already enabled
Considering dependency socache_shmcb for ssl:
Module socache_shmcb already enabled
Module ssl already enabled

Nyní tyto chyby v národních nastaveních nezískám s žádnými příkazy.

Systém: Raspbian Jessie
Hardware: Malina Pi 3b

    
odpověděl Léo Léopold Hertz 준영 22.06.2016 22:25
3

Pokud používáte prostředí KDE, zkontrolujte souborsetlocale.sh v~/.kde/env/:

$ cat ~/.kde/env/setlocale.sh 
export LANG=en_US.UTF-8
export LANGUAGE=en_US:ru:en
    
odpověděl MaximKostrikin 05.02.2014 09:36
2

  1. Možná budete muset spustit aplikacisudo dpkg-reconfigure také pro aplikaci, kterou jste nainstalovali, zatímco nastavení "locale" jsou neplatné / neodpovídají.

    Zatímco systémové prostředí bylo nesprávně nastaveno, nainstaloval jsemvim. Později, když byla lokalizace systému opravena, viděl jsem situaci, ževim zobrazoval utf-8 znaků nesprávně jako podivné symboly, zatímconano aless je zobrazoval správně. Spuštěno

    sudo dpkg-reconfigure vim
    

    Zdálo se, že problém vyřešil po opravě nastavení systému.

  2. Také jsem si všiml to samého, co jsem již zmínil: Možná bude nutné odpojit / znovu připojit SSH, aby byly změny viditelné.

odpověděl ajaaskel 18.12.2014 20:02
2

Přidání následujícího textu do složky~/.profile funguje pro mě:

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

Používám 64bitový server Ubuntu 16.04 LTS na Linode.

    
odpověděl Jingguo Yao 09.05.2017 05:07
1

Toto fungovalo pro mě, když jsem měl stejný problém (na základě řešení poskytl dman ):

sudo sh -c "echo -e 'LC_ALL=en_US.UTF-8\nLANG=en_US.UTF-8' >> /etc/environment"
    
odpověděl pythonhunter 27.08.2014 07:21
1

Měl jsem problém se spuštěním tématu "Agnoster" soh-my-zsh na mémdocker ized pracovní stanici s podobnými chybovými zprávami. (Je to rychlejší nežwsl IMO a já můžu připojit docker.sock do tohoto kontejneru pomocíHyper-V VM spravovanéhoDocker For Windows, což mi dovoluje dělat docker věci)

Kombinace některých návrhů s odpověďmi mi pomohla opravit.

Přidala jsem to na můjDockerfile

RUN apt-get install -y locales
RUN sudo locale-gen "en_US.UTF-8"
RUN echo 'LANG="en_US.UTF-8"' > /etc/profile.d/locale.sh
RUN echo 'LANGUAGE="en_US.UTF-8"' >> /etc/profile.d/locale.sh
RUN echo 'LC_ALL="en_US.UTF-8"' >> /etc/profile.d/locale.sh

Zde je návod, pokud si to zkusit.

    
odpověděl sdkks 30.06.2018 16:25