Site icon Tosolini.info

Perl Setting locale failed

Se durante un aggiornamento di Ubuntu vi trovate con  l’errore perl: warning: Setting locale failed seguito da una serie di parametri, significa che Perl non è stato in grado di determinare i corretti parametri della lingua installati nella vostra macchina. Di solito succede quando si hanno più lingue installate.

root@srv:/var/log# dpkg-reconfigure locales
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LC_PAPER = "it_IT.UTF-8",
LC_ADDRESS = "it_IT.UTF-8",
LC_MONETARY = "it_IT.UTF-8",
LC_NUMERIC = "it_IT.UTF-8",
LC_TELEPHONE = "it_IT.UTF-8",
LC_IDENTIFICATION = "it_IT.UTF-8",
LC_MEASUREMENT = "it_IT.UTF-8",
LC_TIME = "it_IT.UTF-8",
LC_NAME = "it_IT.UTF-8",
LANG = "it_IT.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
Generating locales...
en_GB.ISO-8859-1... done
en_GB.ISO-8859-15... done
en_GB.UTF-8... done
en_US.UTF-8... done
it_IT.ISO-8859-1... up-to-date
Generation complete.

Come si può vedere qua sopra i parametri Language e LC_ALL sono unset. Assumendo che abbiate la lingua italiana installata basterà dare i due seguenti comandi come root:

root@srv:/var/log# locale-gen it_IT it_IT.UTF-8
Generating locales...
it_IT.ISO-8859-1... up-to-date
it_IT.UTF-8... done
Generation complete.
root@srv:/var/log# dpkg-reconfigure locales
Generating locales...
en_GB.ISO-8859-1... done
en_GB.ISO-8859-15... done
en_GB.UTF-8... done
en_US.UTF-8... done
it_IT.ISO-8859-1... up-to-date
it_IT.UTF-8... up-to-date
Generation complete.

E’ importante fornire it_IT e it_IT.UTF-8 poiché solo il primo non basta. Una volta effettuata la riconfigurazione il problema non si ripresenterà più.

AGGIORNAMENTO: in un caso ho dovuto per forza effettuare un riavvio per ottenere l’efficacia di quanto sopra.

AGGIORNAMENTO 2: in un altra condizione quanto sopra non era sufficiente. Ho risolto forzando con i seguenti parametri e dando poi il dpkg-reconfigure locales

export LC_TYPE="it_IT.utf8"
export LC_ALL="it_IT"

AGGIORNAMENTO 3: a quanto pare i problemi continuano anche nel 2019 e le indicazioni di cui sopra non erano del tutto sufficienti (Ubuntu 16.04 e 18.04). C’erano ancora errori, ad esempio al login mi veniva riportato

can't set the locale; make sure $LC_* and $LANG are correct

Per cui alla fine si è reso necessario modificare manualmente il file che sta in /etc/default/locale

Qui ho aggiunto manualmente le parti relative a LC e LANG

#  File generated by update-locale
LANG=it_IT.UTF-8
LC_ALL=it_IT.UTF-8

indicazioni che come recita la prima riga commentata dovrebbe aver aggiunto dpkg-reconfigure ma evidentemente questo non succede.

Exit mobile version