1 votes

Paramètres linguistiques de Debian Squeeze

J'ai un problème avec une image Debian légèrement personnalisée sur laquelle j'essaie de travailler sans tête. Le problème est que la liste des locales installées a été réduite à ceci :

C
en_GB
en_GB.iso88591
en_GB.iso885915
en_GB.utf8
POSIX

Cependant, lorsque je me connecte en tant qu'utilisateur root (avec un profil identique à celui de l'utilisateur final), je trouve ceci :

~# set | grep LC_
LC_CTYPE=en_US.UTF-8

C'est la seule variable d'environnement LC_ définie, et cela signifie vraisemblablement qu'elle est explicitement définie quelque part (et étant donné que /etc/default/locale ne contient que LANG=en_GB, je ne vois pas d'autre alternative). Cependant, je ne vois pas où il est défini, et le fait qu'il soit incorrect empêche, par exemple, l'installation de postgresql-8.4. Je sais que je peux faire un

LC_CTYPE=en_GB apt-get install postgresql-8.4

de contourner ce problème, mais j'aimerais vraiment comprendre d'où vient ce paramètre, et je realmente Je n'aime pas l'idée d'installer une locale qui n'est pas nécessaire pour que cela disparaisse. Alors : d'où vient ce paramètre LC_CTYPE, et comment puis-je le faire disparaître ?

0 votes

Vérifier /etc/environment c'est l'endroit où il était placé auparavant. les autres options sont les suivantes /etc/bash.bashrc y /etc/profile.d/something.sh mais rien n'aurait dû installer automatiquement la variable dans ces fichiers.

0 votes

Et tu as couru locale-gen n'est-ce pas ?

0 votes

locale-gen a été exécuté, il n'y a rien dans /etc/environment (dossier vide). Je ne vois rien de pertinent dans /etc/bash.bashrc et la seule chose en /etc/profile.d es bash_completion.sh qui, d'après un scan du globe oculaire et un grep LC_ ne semble pas pertinent.

1voto

regularfry Points 215

Pour l'avenir, j'ai trouvé le problème, et il n'a rien à voir avec Bash.

Le problème est que sshd_config a l'entrée suivante :

AcceptEnv LANG LC_*

Cela permet à mes variables d'environnement locales nommées LC_whatever (y compris LC_CTYPE, la variable problématique) de remplacer les paramètres distants. Ainsi, lorsque je me suis connecté, le processus ssh a défini ses variables d'environnement en conséquence, et le processus bash les a consciencieusement héritées. Nulle part dans ce processus il n'y a une vérification que le paramètre LC_CTYPE est valide de l'autre côté de la connexion SSH.

Ma solution temporaire consiste à spécifier un bon LC_CTYPE dans la commande spécifique que j'exécute du côté opposé. Je ne sais pas quelle est la solution "correcte" à ce problème.

0voto

Michael Hampton Points 232226

Vous pouvez installer les locales manquantes :

apt-get install debconf
dpkg-reconfigure locales

Choisissez les locales que vous souhaitez installer.

0 votes

Ce n'est pas une solution idéale : l'image sur laquelle je travaillais est une image réduite pour le déploiement de la VM. Les locales ont été supprimées pour des raisons d'espace, et même si je voulais installer les locales, je devrais le faire pour chaque VM à laquelle je me connecte.

0 votes

Vous vouliez la "bonne" solution...

0 votes

Ajouter des paquets supplémentaires à un système mal configuré est rarement "correct", dans tous les sens du terme.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X