Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[RESOLU][locale] Problèmes de locale après mise-à-jour
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index French
View previous topic :: View next topic  
Author Message
razaina
n00b
n00b


Joined: 17 Jul 2012
Posts: 17

PostPosted: Tue Jul 17, 2012 7:01 pm    Post subject: [RESOLU][locale] Problèmes de locale après mise-à-jour Reply with quote

Bonjour,

étant newbie sur gentoo je me tourne vers vous après avoir tenté de régler tout seul ce problème de locale et n'ayant pas réussis après avoir essayé de resuivre le manuel sur la configuration UTF-8 et les locales.


j'ai fais une mise à jour de mon système :
Code:
> emerge --sync
> emerge -av --update --deep system world -e


dans cette mise à jour il y avait la mise à jour du kernel (3.2.21 --> 3.3.8 )

Donc après l'emerge je met à jour le noyau manuellement en n'oubliant pas de reprendre mon ancien .config. Je modifie le lien symbolique du répertoire "linux" vers celui du nouveau kernel.

Je fais un make menuconfig pour vérifier que tout est à sa place. Je compile le kernel et je met à jour le /boot/ et mon grub.

Je boot tous marche bien sauf que quand je passe en root avec su j'ai ce message :

Code:
> bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)


En tant que simple utilisateur tout est passé en anglais alors que j'étais en français (fr_FR.UTF-8 ) :

Code:


razaina ~ % 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=en_US.UTF-8
LC_CTYPE="en_US.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=en_US.UTF-8


En root pareil, tous est en anglais :

Code:


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=en_US.UTF-8
LC_CTYPE="en_US.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=en_US.UTF-8


Voici le contenu de mon /etc/env.d/02locale :

Code:

> cat /etc/env.d/02locale
LANG="fr_FR.UTF-8"


Voici mon locale.gen :

Code:

> cat /etc/locale.gen

fr_FR.UTF-8 UTF-8
fr_FR ISO-8859-1
fr_FR@euro ISO-8859-15



Quand je lance la commande locale-gen :

Code:


> locale-gen
/bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
 * Generating 3 locales (this might take a while) with 1 jobs
 *  (1/3) Generating fr_FR.UTF-8 ... [ ok ]
 *  (2/3) Generating fr_FR.ISO-8859-1 ... [ ok ]
 *  (3/3) Generating fr_FR.ISO-8859-15@euro ... [ ok ]
 * Generation complete


env-update && source /etc/profile
Code:

 > env-update && source /etc/profile
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
>>> Regenerating /etc/ld.so.cache...
sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)


Quand on fait locale c'est toujours en anglais.

Une autre remarque, j'avais le flag "-vanilla" que j'avais mis dans le USE global (je ne savais pas encore utilisé le fichier package.use) du coup je crois que cela a eu un impact sur glibc non ?

Depuis je l'ai viré et j'ai recompilé glibc en n'oubliant pas d'utilisé l'option --newuse.

Néanmoins le problème persiste toujours. Est-ce que bash est a recompilé aussi ? En simple utilisateur la touche supprimé ne marche plus ça imprime juste le caractère "~" au lieu de supprimer.

J'ai vérifié et revérifié le kernel 3.3.8, il y a bien le support de l'utf8 dans "Native Language Support" et "nls" est bien dans mon USE global.

D'ailleurs voici mon USE :

Code:

USE="optimization zsh-completion \
     vim-completion dbus exceptions dri nls zlib gdbm \
     ipv6 ncurses readline ssl crypt X bzip2 udev \
     xorg acl gpm unicode truetype xft nforce2 pmu \
     apache2 vim-syntax gtk lcms icu pam sasl gpg"



Merci d'avance pour vos suggestions, votre aide.


Last edited by razaina on Thu Jul 19, 2012 10:02 am; edited 2 times in total
Back to top
View user's profile Send private message
xaviermiller
Bodhisattva
Bodhisattva


Joined: 23 Jul 2004
Posts: 8706
Location: ~Brussels - Belgique

PostPosted: Tue Jul 17, 2012 7:26 pm    Post subject: Reply with quote

Bonjour,

Je te conseille de mettre des locale EN dans /etc/locale.gen.
_________________
Kind regards,
Xavier Miller
Back to top
View user's profile Send private message
nox23
n00b
n00b


Joined: 15 Jul 2012
Posts: 36

PostPosted: Tue Jul 17, 2012 11:18 pm    Post subject: Reply with quote

Bonjour,

suis bien ce guide : http://www.gentoo.org/doc/fr/guide-localization.xml

évite de lancer ce genre de commande pour update : emerge -av --update --deep system world -e

juste un emerge -au world suffit, ca t'évitera pas mal de soucis et assure la consistance de ton linux.

comme le collègue regen les locales :

cat /etc/locale.gen

en_US ISO-8859-1
en_US.UTF-8 UTF-8
fr_FR ISO-8859-1
fr_FR@euro ISO-8859-15
fr_FR.UTF-8 UTF-8

et emerge --oneshot glibc
Back to top
View user's profile Send private message
razaina
n00b
n00b


Joined: 17 Jul 2012
Posts: 17

PostPosted: Wed Jul 18, 2012 5:30 pm    Post subject: Reply with quote

Bonjour,

j'ai suivi vos conseils, je n'ai plus de soucis de locale par rapport à l'environnement globale.

C'est à dire, je n'ai plus d'erreurs liées aux locales quand je lance "su", ou quand j'utilise python ou perl, etc.

mais je n'arrive toujours pas à retourner en full français :

En root :

Code:

> locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.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=en_US.UTF-8


En simple user:

Code:

> locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.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=en_US.UTF-8


J'ai bien recompilé avec emerge --oneshot glibc après modifications de locale.gen.


Voici l'état actuel de mes locales :

cat /etc/locale.gen

Code:


en_US ISO-8859-1
en_US.UTF-8 UTF-8
fr_FR.UTF-8 UTF-8
fr_FR ISO-8859-1
fr_FR@euro ISO-8859-15



cat /etc/env.d/02locale

Code:


LANG="fr_FR.UTF-8"
LC_COLLATE="C"


Pour la keymap :

cat /etc/conf.d/keymaps :

Code:
 
keymap="fr-latin9"


Dans le .bashrc :

cat ~/.bashrc

Code:

export LANG="fr_FR.UTF-8"
export LC_COLLATE="C"


Dans le terminal la touche "Del" "PgUp" et "PgDown" me sort toujours des "~" quand je suis en utilisateur normal. Ca ne le fait pas quand je suis en root. La seule différence c'est que en simple utilisateur j'utilise zsh, et j'ai laissé bash en root. J'utilise urxvt comme terminal.

Est-ce lié au shell + locale le problème des touches ? ou shell + locale + terminal ?
Back to top
View user's profile Send private message
boozo
Advocate
Advocate


Joined: 01 Jul 2004
Posts: 3193

PostPosted: Wed Jul 18, 2012 6:13 pm    Post subject: Reply with quote

'alute

En premier lieu, peux-tu éditer ton premier post et mettre le titre du fil en accords avec nos conventions stp (voir section 3/3 du 1er post en sticky sur le forum) ? :wink: (comme tu peux le voir le formalisme n'est pas tellement en accords avec les autres topics ; par avance merci)

Pour ton pb de locales, le LC_ALL et LC_COLLATE n'ont - la plupart du temps - pas besoin d'être définis pour que cela fonctionne correctement (voire dans certains cas ça pose plus de problèmes que ça n'en corrige)

Donc dans un premier temps, commente tes 2 lignes dans ton bashrc et ne conserve que LANG dans le fichier de conf des locales.
_________________
" Un psychotique, c'est quelqu'un qui croit dur comme fer que 2 et 2 font 5, et qui en est pleinement satisfait.
Un névrosé, c'est quelqu'un qui sait pertinemment que 2 et 2 font 4, et ça le rend malade ! "
Back to top
View user's profile Send private message
razaina
n00b
n00b


Joined: 17 Jul 2012
Posts: 17

PostPosted: Wed Jul 18, 2012 6:41 pm    Post subject: Reply with quote

Titre modifié.

J'ai viré les export qui étaient dans le bashrc, j'ai quitté X et je me suis reloggué. Ca n'a rien changé. :(

Y a-t'il un paquet en particulier que je dois recompiler ? j'ai déjà recompilé bash, zsh, urxvt dans le doute. A moins que tous le système doit être recompilé ? Y a-t'il quelque chose d'anormal dans mon USE globale dans le /etc/make.conf (voir un peu plus haut).
Back to top
View user's profile Send private message
xaviermiller
Bodhisattva
Bodhisattva


Joined: 23 Jul 2004
Posts: 8706
Location: ~Brussels - Belgique

PostPosted: Wed Jul 18, 2012 7:06 pm    Post subject: Reply with quote

as-tu lancé env-update après avoir changé LC* ?
_________________
Kind regards,
Xavier Miller
Back to top
View user's profile Send private message
razaina
n00b
n00b


Joined: 17 Jul 2012
Posts: 17

PostPosted: Wed Jul 18, 2012 7:14 pm    Post subject: Reply with quote

oui. A chaque fois que j'utilise locale-gen je n'oublie jamais de faire env-update && source /etc/profile.

Je suppose qu'il n'y a pas besoin de rebooter. Quitter X suffit non?
Back to top
View user's profile Send private message
razaina
n00b
n00b


Joined: 17 Jul 2012
Posts: 17

PostPosted: Wed Jul 18, 2012 8:26 pm    Post subject: Reply with quote

Bon mon soucis des touches qui se transformaient en "~" est résolu et n'avait strictement rien avoir avec les locales. La solution était ici https://forums.gentoo.org/viewtopic.php?p=1570687.

Sinon, malgré toutes les modifs que j'ai faite, le problème des locales qui persistent à rester en en_US au lieu de fr_FR est bizarre. Le seul endroit ou je précise en_US c'est dans locale.gen comme vous m'aviez conseillé un peu plus haut. Ce qui a résolu d'ailleurs le problème du "Cannot change locale" à chaque fois que j'exécutais quelque chose.
Back to top
View user's profile Send private message
razaina
n00b
n00b


Joined: 17 Jul 2012
Posts: 17

PostPosted: Thu Jul 19, 2012 7:11 am    Post subject: Reply with quote

Bonjour,

étant donné que mon soucis est quasi résolu (plus de messages d'erreurs concernant les locales) je peux clore ce topic non ? A moins que pour vous, le fait de ne pas réussir à passer full fr_FR reste un problème à résoudre par rapport au topic ? je me souviens qu'avant l'update tous mes LC_* étaient en fr_FR.*

Pour l'instant, mon système à l'air stable, je n'ai pas de bug d'accents etc., pas de bug de caractères dans le shell ni vim. Donc au pire, si pour vous tout semble normal, par rapport au prints que j'ai fait avant, je peux clore ce topic.
Back to top
View user's profile Send private message
boozo
Advocate
Advocate


Joined: 01 Jul 2004
Posts: 3193

PostPosted: Thu Jul 19, 2012 7:44 am    Post subject: Reply with quote

ben non c'est pas résolu du tout en fait :( le fait de coller au moins une locales en "US" permet de switcher correctement sur la valeur automatique par défault du système en cas de défaillance quelque part (d'où la disparition du warning) mais avec ces définitions en FR cela devrait fonctionner normalement.

Vu que tu le soulèves, j'ai souvenir d'avoir lu un pb dans ce goût-là il y a longtemps et je crois que le reboot a été nécessaire pour réinitialiser certaines variables ; les sources/refresh des variables d'environnement ni killer le X n'était pas suffisant - a tester -
_________________
" Un psychotique, c'est quelqu'un qui croit dur comme fer que 2 et 2 font 5, et qui en est pleinement satisfait.
Un névrosé, c'est quelqu'un qui sait pertinemment que 2 et 2 font 4, et ça le rend malade ! "
Back to top
View user's profile Send private message
razaina
n00b
n00b


Joined: 17 Jul 2012
Posts: 17

PostPosted: Thu Jul 19, 2012 7:52 am    Post subject: Reply with quote

J'ai refais/rechecké toutes les modifs que vous m'aviez conseillé tout au long de ce topic.

Après reboot, toujours rien.

Que ce soit en root ou en simple user, j'ai toujours tout en en_*, sauf LANG qui est resté en fr_FR.

Qu'est-ce que je peux fournir de plus ici, pour y voir plus clair ? (des fichiers de conf, ou de log en particulier etc.)

Quel programme s'occupe de "setter" les locales ? à quel moment particulier ? Un programme peux modifier ces locales à n'importe quel moment ?
Back to top
View user's profile Send private message
boozo
Advocate
Advocate


Joined: 01 Jul 2004
Posts: 3193

PostPosted: Thu Jul 19, 2012 8:07 am    Post subject: Reply with quote

m**** ! Ce qui cloche je pense c'est d'avoir eu un LC_ALL positionné à un moment donné mais là avec tout en bonne et due forme il aurait dû revenir à blanc... :?
Là, je sèche un peu à cet instant.

As-tu vérifié/testé en jouant avec #eselect locale {list, set <num>}
_________________
" Un psychotique, c'est quelqu'un qui croit dur comme fer que 2 et 2 font 5, et qui en est pleinement satisfait.
Un névrosé, c'est quelqu'un qui sait pertinemment que 2 et 2 font 4, et ça le rend malade ! "
Back to top
View user's profile Send private message
nox23
n00b
n00b


Joined: 15 Jul 2012
Posts: 36

PostPosted: Thu Jul 19, 2012 8:16 am    Post subject: Reply with quote

si dans un terminal tu fais :

export LANG="fr_FR.UTF-8"

puis

locale

que te donne la commande ?
Back to top
View user's profile Send private message
razaina
n00b
n00b


Joined: 17 Jul 2012
Posts: 17

PostPosted: Thu Jul 19, 2012 8:25 am    Post subject: Reply with quote

Voici les résultats du eselect locale :


eselect locale list :

Code:


Available targets for the LANG variable:
  [1]   C
  [2]   en_US
  [3]   en_US.iso88591
  [4]   en_US.utf8
  [5]   français
  [6]   french
  [7]   fr_FR
  [8]   fr_FR@euro
  [9]   fr_FR.iso88591
  [10]  fr_FR.iso885915@euro
  [11]  fr_FR.utf8
  [12]  POSIX
  [13]  fr_FR.UTF-8 *
  [ ]   (free form)


Et quand je fais export LANG="fr_FR.UTF-8", en tant que simple user j'ai ceci quand je tape locale:

Code:

LANG=fr_FR.UTF-8
LC_CTYPE="en_US.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=en_US.UTF-8
Back to top
View user's profile Send private message
boozo
Advocate
Advocate


Joined: 01 Jul 2004
Posts: 3193

PostPosted: Thu Jul 19, 2012 8:35 am    Post subject: Reply with quote

*grmmllh* (make some noise) - je vois vraiment pas ce qui cloche... :(

Avec ton user, tu as fait un $source du bashrc modifié ?
_________________
" Un psychotique, c'est quelqu'un qui croit dur comme fer que 2 et 2 font 5, et qui en est pleinement satisfait.
Un névrosé, c'est quelqu'un qui sait pertinemment que 2 et 2 font 4, et ça le rend malade ! "
Back to top
View user's profile Send private message
razaina
n00b
n00b


Joined: 17 Jul 2012
Posts: 17

PostPosted: Thu Jul 19, 2012 8:38 am    Post subject: Reply with quote

Je n'ai rien dans mon bashrc :D. Avant j'avais juste les export LANG et LC_*.

mais, comme dit plus haut,:
boozo wrote:

Donc dans un premier temps, commente tes 2 lignes dans ton bashrc et ne conserve que LANG dans le fichier de conf des locales.


je les ai retiré, et du coup je n'ai plus rien dans mon bashrc.
Back to top
View user's profile Send private message
boozo
Advocate
Advocate


Joined: 01 Jul 2004
Posts: 3193

PostPosted: Thu Jul 19, 2012 8:50 am    Post subject: Reply with quote

oui oui j'avais bien lu mais comme la conf locale du user a pris le pas sur la var globale le "sourcer" sans les export permet de voir si qqch change (ou non) sur le positionnement des autres LC_* de $locale

Edit: bon c'est bête mais il est évident que si ton user n'utilises pas bash, c'est /etc/profile qu'il faut sourcer à la place - Au fait, tu en as parlé mais tu utilises zsh ? auquel cas, y'a peut-être des choses à vérifier ou des choses connues dans ce sens... vais regarder
_________________
" Un psychotique, c'est quelqu'un qui croit dur comme fer que 2 et 2 font 5, et qui en est pleinement satisfait.
Un névrosé, c'est quelqu'un qui sait pertinemment que 2 et 2 font 4, et ça le rend malade ! "
Back to top
View user's profile Send private message
razaina
n00b
n00b


Joined: 17 Jul 2012
Posts: 17

PostPosted: Thu Jul 19, 2012 10:01 am    Post subject: Reply with quote

boozo wrote:

Au fait, tu en as parlé mais tu utilises zsh ?


Tu as mis le doigt pile sur le problème :). Je n'y avais pas du tout pensé, mais du tout... sorry.

En effet zsh exportait en anglais les locales... du coup tout s'explique... J'ai commenté les bonnes lignes dans mon fichier de configuration. J'avais repris la config zsh de mon ordi au taf qui était full anglais utf8, j'y avais pas du tout pensé.

Merci à tous en tout cas. Je peux clore le topic.
Back to top
View user's profile Send private message
boozo
Advocate
Advocate


Joined: 01 Jul 2004
Posts: 3193

PostPosted: Thu Jul 19, 2012 10:08 am    Post subject: Reply with quote

Bah c'est rien, c'est en relisant le tout que ça m'est venu à l'esprit - je commençais à ne plus avoir d'idée où chercher la cause éventuelle du pb et je craignais de devoir éplucher le bugzilla glibc :lol:
_________________
" Un psychotique, c'est quelqu'un qui croit dur comme fer que 2 et 2 font 5, et qui en est pleinement satisfait.
Un névrosé, c'est quelqu'un qui sait pertinemment que 2 et 2 font 4, et ça le rend malade ! "
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index French All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum