`Gtk-WARNING **: Impostazioni locali non supportate dalla libreria C. `all'avvio delle app dalla riga di comando


31

Non ho ricevuto risposta ma non stavo facendo nulla e questo è un argomento interessante. In Ubuntu 12.04, quando apro un file in gedit o se sto lavorando sulla riga di comando in dpkg, mi viene restituito l'errore "locale non supportato, tornando alle librerie" C "predefinite e quello sotto,

Gtk-WARNING **: Locale not supported by C library.
    Using the fallback 'C' locale.

Le tue localizzazioni sembrano essere rotte. Come hai installato Ubuntu esattamente? Sembra che tu l'abbia installato in modo che le impostazioni locali non siano configurate correttamente. Fornisci ulteriori informazioni in merito a ciò nella tua domanda (modificalo). E no, la Clocale è dove ricade se non è disponibile alcuna localizzazione. Viene dal linguaggio di programmazione C.
gertvdijk,

Grazie per la risposta. La mia installazione di Ubuntu è una cartella all'interno della directory di Windows. So perché l'ho installato lì. Ero pigro all'installazione e ho permesso al demone Linux di fare quella parte per me.
Diogenes Lantern

Risposte:


30

Per prima cosa assicurati che la lingua della tua libreria sia installata

sudo apt-get install language-pack-en-base,

per esempio.

Quindi, come superutente, accorcia il lavoro consentendo a Ubuntu di configurarli automaticamente:

sudo dpkg-reconfigure locales

Controlla la tua configurazione, se è corretta, allora va bene. Ma se hai le impostazioni LANG=o LANGUAGE=vuote, eseguilo nella riga di comando:

locale -a

Che genera i locali installati e disponibili per te.

Scegli la locale dall'output generato adatto alla tua situazione ed esporta tale impostazione per sostituire le tue impostazioni locali, ad esempio:

export LC_ALL="en.utf-8"

Per l'installazione manuale utilizzare exportper impostare manualmente le impostazioni locali che installeranno manualmente le localizzazioni personalizzate, eseguire prima l'impostazione come sopra.

Quindi, diciamo che si desidera installare "en_us-8"per la lingua, ma hanno bisogno di un altro locale per NUMERICe TIME, si potrebbe desiderare di utilizzare "en_NZ.utf-8"(ricordate: questi sono case-sensitive) oppure LANGUAGE="en_GB.utf-8"e NUMERIC="en.dk.ISO-8859-15". Viaggiando in Nuova Zelanda, potrei cambiare le impostazioni locali LANGUAGE="en.NZ". Per la Germania, dovrei solo installare le localizzazioni pkg per esso e inserire, nel terminale, come negli esempi seguenti:

export LC_ALL="en_US"
export LANG="en_US"
export LANGUAGE="en_NZ"
export C_CTYPE="en_US"
export LC_NUMERIC=
export LC_TIME=en"en_US"

LC_ALL= potrebbe rimanere vuoto.


3

primo:

sudo apt-get purge locales

poi:

sudo aptitude install locales

e il famoso:

sudo dpkg-reconfigure locales

Questo elimina il sistema delle versioni locali, quindi reinstalla le versioni locali e esegue il downgrade di libc6 da 2.19 a 2.13, che è il problema. Quindi configura nuovamente le impostazioni locali.


1
Questo è molto fuorviante. Non usare mai questa risposta, il primo comando eliminerà molto software insieme ai loro dati, ad es postgresql.
Eric Wang,

@EricWang hai ragione sul fatto che potrebbe far cadere altri software, e ciò accadrà perché quel software si basa sulla libreria libc6 2.19 (o qualcosa di più alto). Molto spesso quel software è stato la cosa che ha aggiornato il tuo sistema e messo in questo stato di locali non supportato dalla libreria C. Indipendentemente da ciò, è necessario rivedere ciò che viene rimosso prima di confermare.
tkjef,

3

Questo mi è venuto in mente più di una volta, sul mio compagno di zecca 18, basato su Ubuntu 16.04, quindi mi piacerebbe condividere la soluzione che ho trovato, nel caso qualcuno ne avesse bisogno.

passi:

(Questi passaggi funzionano per il compagno di zecca, ma Ubuntu potrebbe avere configurazioni simili, non sono sicuro)

  • Apri "Impostazioni lingua".
  • Installa le lingue, se mancano. (Per me, installerei le lingue cinese e giapponese oltre all'inglese)
  • Per l'opzione Languagee Region, assicurati che la lingua predefinita sia corretta, ad es. Impostata su "Inglese, Stati Uniti UTF-8",
  • Riavvia, se vengono apportate modifiche.
  • Controlla se va bene.

0

Con locales devi rimuovere la lingua che è in conflitto con il tuo sistema, questo ha funzionato per me, su ubunty kylin 16.04, l'ho installato su Ubuntu 14.04


0

ha funzionato bene per me andando su gnome-terminal e digitando il comando apt --fix locales e riavvia il tuo linux e la tua attesa per l'errore del terminale è finita. questa volta sarebbe sicuramente sul tuo monitor.


0
$ mkdir -p $HOME/.locale
$ I18NPATH=./wrk/ localedef -f UTF-8 -i fi_SE $HOME/.locale/fi_SE.UTF-8
$ LOCPATH=$HOME/.locale LC_ALL=fi_SE.UTF-8 date
$ echo "export LOCPATH=\$HOME/.locale" >> $HOME/.bashrc
$ echo "export LANG=fi_SE.UTF-8" >> $HOME/.bashrc

fi_SE sul tuo LOCALE e vedi UTF-8 o utf8


0

Sono riuscito a causarlo da solo durante la migrazione dei file dot della directory home su una nuova macchina e non sono riuscito a identificare la causa per un po 'a causa della ricerca dei file, LC_ma non LOC.

Il ~/.bashrcfile che ho copiato aveva il seguente:

export LOCPATH=/var/guix/profiles/per-user/root/guix-profile/lib/locale

(il valore particolare qui era a causa di precedenti esperimenti con GNU Guix sulla vecchia macchina; ma il fatto rilevante è semplicemente che la variabile d'ambiente era impostata su un percorso ora non valido.)

Ciò ha comportato il seguente errore durante l'esecuzione di vari programmi:

Warning: locale not supported by C library, locale unchanged

E questi errori durante l'esecuzione locale:

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

Rimuovere (o commentare) la LOCPATHriga ha risolto i miei problemi.

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.