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.