Problema di Impossibile impostare la locale; assicurati che $ LC_ * e $ LANG siano corretti!


49

Quando provo sempre a installare un nuovo pacchetto ricevo questo messaggio:

Can't set locale; make sure $LC_* and $LANG are correct!
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = "en_GB:en",
    LC_ALL = (unset),
    LC_CTYPE = "en_GB.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_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory

Il mio sistema operativo è Debian Jessie 8.3 (Mate) che usa l'inglese con la tastiera francese. Quando digito locale, ottengo questo:

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
LANG=en_US.UTF-8
LANGUAGE=en_GB:en
LC_CTYPE=en_GB.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=

Risposte:


62

Debian spedisce i local in forma sorgente. Devono essere compilati in modo esplicito. La ragione di ciò è che i locali compilati utilizzano molto più spazio su disco, ma la maggior parte delle persone ne utilizza solo alcuni.

Esegui dpkg-reconfigure localescome root, seleziona le impostazioni locali che desideri nell'elenco (con le tue impostazioni, è necessario en_GBe en_US.UTF-8- ti consiglio di selezionare en_USe en_GB.UTF-8anche), quindi premi <OK>.

In alternativa, modifica /etc/locale.gen, decommenta le linee per le impostazioni locali desiderate ed esegui locale-gencome root.

(Nota: su Ubuntu funziona diversamente: esegui locale-gencon le impostazioni locali che vuoi generare come argomenti, ad es sudo locale-gen en_GB en_US en_GB.UTF-8 en_US.UTF-8.)

In alternativa, Debian ora ha un pacchetto locales-allche è possibile installare invece di locales. Ha tutte le localizzazioni pre-generate. Il rovescio della medaglia è che usano più spazio su disco (112 MB contro 16 MB).


1
Ha funzionato, ma solo dopo che mi sono disconnesso e poi riconnesso.
— Forivin,

Ha funzionato anche per me!
— Jamie Ivanov,

il montaggio /etc/locale.gennon ha funzionato per me (ha fatto il logout / login), ma locale-genho risolto il mio tmux: need UTF-8 locale (LC_CTYPE)problemaDebian 4.9.82
— eapo

2
@eapo Come dichiaro nella mia risposta, è necessario modificare /etc/locale.gen ed eseguire locale-gen.
— Gilles 'SO- smetti di essere malvagio'

Mi mancava un po 'anche l'abilitazione en_US.UTF-8e la tua locale. L'ho scoperto nel modo più difficile, poi sono tornato in cerchio qui per dare la mia risposta prima di rendermi conto che era sempre qui.
— Alastair McCormack,

19

La soluzione più votata non ha aiutato nel mio caso, quindi ho usato questo:

export LC_ALL="en_US.UTF-8"
sudo dpkg-reconfigure locales

Successivamente, mi sono disconnesso e ho effettuato l'accesso e mancava l'errore.


2
L'uso di LC_ALL è fortemente scoraggiato in quanto ignora tutto. Utilizzalo solo durante il test e non impostarlo mai in un file di avvio. come da: wiki.debian.org/Locale
— Pitone Maledetto il

6

Questi comandi mi hanno salvato la vita

# echo "LC_ALL=en_US.UTF-8" >> /etc/environment
# echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen
# echo "LANG=en_US.UTF-8" > /etc/locale.conf
# locale-gen en_US.UTF-8

6

Se stai riscontrando questo problema su un raspberry pi (o altro?) E stai ricevendo l'errore quando sei ssh al pi ci sono altre 2 soluzioni

Uno è modificare /etc/ssh/sshd_configsul pi e commentare la riga

AcceptEnv LANG LC_*

per esempio sudo nano /etc/ssh/sshd_config

Dopo di che dovresti riavviare il server SSH

sudo systemctl restart ssh

L'altro è sul tuo computer client ( non il pi ) modifica /etc/ssh/ssh_config(percorso diverso dall'alto) e commenta la riga

SendEnv LANG LC_*

Entrambi sono senza commento per me, ma il problema si pone ancora. (RPi3, macOS10.14)
— jorijnsmit

Ha commentato fuori la linea ora. Non ho davvero l'opportunità di testare, ma suona in modo più logico in questo modo ... Grazie.
— jorijnsmit,

2

Devi installare il pacchetto locales(o locales-allo la locale en_GB, a seconda della versione di Debian che hai).

Una soluzione non avere tali errori: set LANG=Cdi radice, in modo che userà non locali.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.