locale non trouvée / la configuration de la locale a échoué - que dois-je faire?

32

J'ai installé Debian 7 i386 sur mon VPS (OpenVZ). Tout fonctionne bien, sauf les paramètres régionaux. Toute tentative d'installation ne montre rien:

[...]
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LANG = "pl_PL.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
[...]

Ce que j'ai essayé

  1. Génération de paramètres locaux moi-même - update-locale LC_ALL="pl_PL.UTF-8"- montre: http://www.wklej.org/id/1248438/
  2. apt-get install --reinstall locales http://www.wklej.org/id/1248442/
  3. La même chose avec dpkg-reconfigure locales+ setting pl_PL.UTF-8, pl_PL.ISO-8859-2ou même en_US: http://www.wklej.org/id/1248446/
  4. export LC_ALL=pl_PL.UTF-8 (même sur la racine):

    -bash: warning: setlocale: LC_ALL: cannot change locale (pl_PL.UTF-8)
    

Voici ce qui montre locale:

root:~# 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
LANG=pl_PL.UTF-8
LANGUAGE=
LC_CTYPE="pl_PL.UTF-8"
LC_NUMERIC="pl_PL.UTF-8"
LC_TIME="pl_PL.UTF-8"
LC_COLLATE="pl_PL.UTF-8"
LC_MONETARY="pl_PL.UTF-8"
LC_MESSAGES="pl_PL.UTF-8"
LC_PAPER="pl_PL.UTF-8"
LC_NAME="pl_PL.UTF-8"
LC_ADDRESS="pl_PL.UTF-8"
LC_TELEPHONE="pl_PL.UTF-8"
LC_MEASUREMENT="pl_PL.UTF-8"
LC_IDENTIFICATION="pl_PL.UTF-8"
LC_ALL=

Rien d'intéressant trouvé dans / var / log. Même changer de dépôt en local officiel + de nettoyage et d’installation manuelle ne résout pas mon problème, qui se manifeste à chaque nouvelle installation de Debian 7.

luke_g
la source

Réponses:

22

Il semble qu'aucun environnement local n'est généré. Avez-vous sélectionné pl_PL.UTF-8correctement en dpkg-reconfigure localesappuyant spacesur la ligne correspondante?

Si oui, la ligne

pl_PL.UTF-8 UTF-8

in /etc/locale.genn'est pas commenté (= ne commence pas par #). Si vous devez résoudre ce problème, vous devez également exécuter locale-genpour générer les paramètres régionaux. Sa sortie devrait être:

Generating locales (this might take a while)...
   pl_PL.UTF-8... done
Generation complete.

Si les paramètres régionaux que vous souhaitez générer ne sont pas générés, il semble y avoir un problème avec votre système. Une des raisons pourrait être que vous avez localepurgeinstallé. S'il n'y a aucun fichier dans /usr/share/locale/pl/LC_MESSAGESou si /usr/share/locale/pl_PL/LC_MESSAGESc'est le cas ou si votre système est en panne.

jofel
la source
1
Ça marche! La position sélectionnée dans /etc/locale.gen était toujours commentée, je ne sais pas pourquoi (oui, je me souviens de la barre d'espace) - peut-être que quelque chose ne va pas avec CHMOD. Merci!
luke_g
1
Notez que -plowc'est la valeur par défaut, donc peut être omis Il vous suffit d'appeler dpkg-reconfigure, ce qui appellera locale-gen après avoir coché l'entrée souhaitée.
Stéphane Chazelas le
@StephaneChazelas merci, je l'ai retiré de la réponse et clarifié l'utilisation de locale-gen.
Jofel
Une autre possibilité est que vous ayez configuré votre système, etc., pour en_US mais que votre /etc/locale.gencommentaire ne soit pas commenté en_GB. J'ai remarqué cette erreur dans ce fil ici unix.stackexchange.com/q/287716/16920 S'il vous plaît, ajoutez-le aussi à la stratégie de throubleshoot.
Léo Léopold Hertz 준영
12

première:

sudo apt-get purge locales

puis:

sudo aptitude install locales

et le célèbre:

sudo dpkg-reconfigure locales

Cela élimine le système de locales, puis réinstalle les locales et rétrograde libc6 de 2.19 à 2.13, ce qui est le problème. Puis configure à nouveau les paramètres régionaux.

tkjef
la source
Semble aider mais le prochain apt-get dist-upgradeva le casser à nouveau.
Ceving
Pourquoi le casserait-il? A ce stade, les environnements locaux ne devraient-ils pas être compatibles avec la libc6 utilisée? Ma libc6 a été modifiée pour utiliser un autre programme. Je l'ai rétrogradé à la version par défaut de libc6 afin que mon système fonctionne correctement. À ce stade, il devrait être très compatible avec apt-get dist-upgrade
tkjef
1
An a apt-get install localesinstallé les locales sur mon conteneur Debian Docker.
Stéphane
7

Le moyen rapide et facile (bien que cela signifie plus de disque utilisé que d’autres):

apt install locales-all
Yajo
la source
1

essayer de courir

locale -a

si tu as

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

La solution à cette situation consiste à installer les paramètres régionaux du paquet (à partir du paquet glibc [1]) dans l'arborescence Debian ou dans glibc-all-langpacks CentOS / Fedora.

[1] https://tracker.debian.org/pkg/glibc

Sérgio
la source
glibc-localepaquet n'existe pas dans Debian
Yajo
devrait être paquet locale ... corrigé
Sérgio