Je viens d'installer CentOS 6 et chaque fois que je me connecte au système via SSH à distance, j'obtiens l'erreur suivante:
-bash: warning: setlocale: LC_CTYPE: cannot change locale (UTF-8)
Lorsque je tape "locale" sur la ligne de commande, j'obtiens la sortie suivante:
locale: Cannot set LC_CTYPE 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
LC_CTYPE=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=
Quel peut être le problème? Comment puis-je résoudre ce problème?
Réponses:
Sur le serveur d'où vous venez, avez-vous des paramètres régionaux définis via une variable d'environnement? En regardant mon installation CentOS 6, le seul environnement local que je peux trouver pris en charge est identifié comme
en_US.utf8
(découvert à l'aide de lalocale -a
commande). Est-ce que ceci pourrait être le problème?Lors de mes tests, lorsque j'ai défini la
LC_ALL
variable d'environnement suren_US.UTF-8
, ssh'd sur le serveur, la sortie de ma commande locale a été définiePOSIX
dans mon cas. C'est la même chose que lorsque je n'ai PAS défini (c'est-à-dire non défini) laLC_ALL
variable avant ssh'ing.Lorsque j'ai défini ma
LC_ALL
variable suren_US.utf8
ouen_US.utf-8
, ssh sur ma boîte CentOS 6, la sortie des paramètres régionaux était la même que celle définie sur la boîte source.Remarquez que je n'ai pas utilisé de capuchons pour UTF également.
la source
Résolu cela en désactivant «Définir les variables d'environnement locales au démarrage» dans Paramètres du terminal> Avancé selon cette capture d'écran.
REMARQUE: si vous utilisez iTerm2, vous pouvez désactiver l'option "Définir automatiquement les variables locales" dans Préférences> Profils> Terminal
la source
unset LC_CTYPE
ouexport LC_CTYPE=en_US.UTF-8
fixup le problème après la connexion.Manière simple:
Ajouter
à
/etc/sysconfig/i18n
.la source
Ce qui a fonctionné pour moi a été d'ajouter un lien symbolique dans le serveur CentOS comme ceci:
Une fois que vous avez fait ces commandes comme ceci,
Si vous ne le faites pas, cette dernière commande échoue avec cette erreur:
Maintenant, une solution encore plus simple consiste simplement à ajouter cette ligne à / etc / bashrc dans le serveur:
la source
J'ai ce message spécifique lorsque je me connecte d'un Solaris X à un hôte Centos.
Le problème vient de 2 paramètres:
Envoyer des variables d'environnement liées aux paramètres régionaux SendEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
Sur mon hôte source, ces paramètres ont été définis de cette façon:
SOURCE # LANG = LC_CTYPE = fr_FR.UTF-8 LC_NUMERIC = fr_FR.UTF-8 LC_TIME = fr_FR.UTF-8 LC_COLLATE = fr_FR.UTF-8 LC_MONETARY = fr_FR.UTF-8 LC_MESSAGES = fr.UTF-8 LC_ALL =
Mais, comme vous pouvez le voir, le LC_MESSAGES est défini sur fr.UTF-8, qui n'est pas une option sur mon hôte de destination.
Le problème a été résolu en forçant sur mon hôte source, sur .bash_profile: # export LC_ALL = fr_FR.UTF-8 export LANG = fr_FR.UTF-8
J'aurais pu le résoudre en demandant à mon hôte dest de ne pas prendre cette variable à partir d'une connexion ssh (généralement, ou en créant un fichier ssh_config local pour mon utilisateur)
la source
Sur un système Centos 6.2 local: cela n'a pas aidé:
Cela a fonctionné:
J'ai également supprimé
locale-archive
dans/usr/lib/locale
. Je ne sais pas si c'était nécessaire.la source
C'était mon correctif dans le passé pour les erreurs locales.
Exécutez ce qui suit: locale-gen
Modifiez ensuite /etc/locale.gen. Assurez-vous que les éléments suivants ne sont pas commentés:
la source
Avec Iterm2 , c'est différent.
Allez à
Iterm2 -> Preferences
, puis allez à l'Profiles
onglet et choisissez l'Terminal
onglet en bas.Accédez à la
Environment
catégorie et décochez;Enfin, fermez et démarrez une nouvelle session.
la source
et assurez-vous
LC_ALL="en_US.UTF-8"
est dans ou ajouté au / etc / sysconifg / i18nexemple de contenu
la source
Éditer
/etc/sysconfig/i18n
Remplacer
LANG="us"
parLANG="en_US"
Enregistrez et quittez, déconnectez-vous et reconnectez-vous.
la source