OVH Cloud OVH Cloud

locales cassés

5 réponses
Avatar
Krys
Bonjour,

Je me sert de Linux que depuis 2 mois. Peut-etre ma question est newbies
mais avec google je trouve pas d'explications claires pour mon problème.

J'utilise les commandes "#dpkg-reconfigure locales" et "#apt-get intall
locales" et j'obtiens des messages d'erreurs.

Quelques c'est comment purger cette configuration qui fonctionne po et
comment installer de la bonne façon pour que ce soit fait une fois pour
toute.

Voici les 2 commandes et le résultats, message d'erreur que j'obtiens:

christian@chezmoi:~$ su
Password:
root@chezmoi:/home/christian# dpkg-reconfigure locales
/usr/sbin/dpkg-reconfigure: locales is broken or not fully installed
root@chezmoi:/home/christian# apt-get install locales
Reading Package Lists... Done
Building Dependency Tree... Done
locales is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 5 not upgraded.
1 not fully installed or removed.
Need to get 0B of archives.
After unpacking 0B of additional disk space will be used.
Setting up locales (2.3.2.ds1-12) ...
Generating locales...
be_BY.CP1251... done
bg_BG.CP1251... done
br_FR.ISO-8859-1... done
ca_ES.ISO-8859-15@euro... done
cs_CZ.ISO-8859-2... done
da_DK.ISO-8859-1... done
de_AT.ISO-8859-15@euro... done
de_AT.ISO-8859-1... done
de_BE.ISO-8859-15@euro... done
de_BE.ISO-8859-1... done
de_CH.ISO-8859-1... done
de_CH.UTF-8... done
de_DE.ISO-8859-15@euro... done
de_DE.ISO-8859-1... done
de_DE.UTF-8@euro... done
de_DE.UTF-8... done
de_LU.ISO-8859-15@euro... done
de_LU.ISO-8859-1... done
el_GR.ISO-8859-7... done
el_GR.UTF-8... done
en_AU.ISO-8859-1... done
en_BW.ISO-8859-1... done
en_CA.ISO-8859-1... done
en_DK.ISO-8859-1... done
en_GB.ISO-8859-1... done
en_HK.ISO-8859-1... done
en_IE.ISO-8859-15@euro... done
en_IE.ISO-8859-1... done
en_IN.UTF-8... done
en_NZ.ISO-8859-1... done
en_PH.ISO-8859-1... done
en_SG.ISO-8859-1... done
en_US.ISO-8859-1... done
en_US.UTF-8... done
en_ZA.ISO-8859-1... done
en_ZW.ISO-8859-1... done
es_ES.ISO-8859-15@euro... done
es_ES.ISO-8859-1... done
es_US.ISO-8859-1... done
et_EE.ISO-8859-1... done
eu_ES.ISO-8859-15@euro... done
eu_ES.ISO-8859-1... done
fa_IR.UTF-8... done
fi_FI.ISO-8859-15@euro... done
fi_FI.ISO-8859-1... done
fr_BE.ISO-8859-15@euro... done
fr_BE.ISO-8859-1... done
fr_CA.ISO-8859-1... done
fr_CH.ISO-8859-1... done
fr_FR.ISO-8859-15@euro... done
fr_FR.ISO-8859-1... done
fr_LU.ISO-8859-15@euro... done
fr_LU.ISO-8859-1... done
ga_IE.ISO-8859-15@euro... done
ga_IE.ISO-8859-1... done
gl_ES.ISO-8859-15@euro... done
gl_ES.ISO-8859-1... done
gv_GB.ISO-8859-1... done
he_IL.ISO-8859-8... done
hi_IN.UTF-8... done
hr_HR.ISO-8859-2... done
hu_HU.ISO-8859-2... done
id_ID.ISO-8859-1... done
is_IS.ISO-8859-1... done
it_CH.ISO-8859-1... done
it_IT.ISO-8859-15@euro... done
it_IT.ISO-8859-1... done
iw_IL.ISO-8859-8... done
ja_JP.EUC-JP... done
ja_JP.UTF-8... done
lt_LT.ISO-8859-13... done
lv_LV.ISO-8859-13... done
mi_NZ.ISO-8859-13... done
mk_MK.ISO-8859-5... done
mr_IN.UTF-8... done
ms_MY.ISO-8859-1... done
mt_MT.ISO-8859-3... done
nl_BE.ISO-8859-15@euro... done
nl_BE.ISO-8859-1... done
nl_NL.ISO-8859-15@euro... done
nl_NL.ISO-8859-1... done
nn_NO.ISO-8859-1... done
no_NO.ISO-8859-1... done
oc_FR.ISO-8859-1... done
pl_PL.ISO-8859-2... done
pt_BR.ISO-8859-1... done
pt_PT.ISO-8859-15@euro... done
pt_PT.ISO-8859-1... done
ro_RO.ISO-8859-2...LC_ADDRESS: `country_ab3' value does not match
`country_num' value
dpkg: error processing locales (--configure):
subprocess post-installation script returned error exit status 1
Errors were encountered while processing:
locales
E: Sub-process /usr/bin/dpkg returned an error code (1)
root@chezmoi:/home/christian#


Bonne journée,

Krys (Christian)

5 réponses

Avatar
nicolas
On Thu, 03 Jun 2004 18:49:43 +0200, Krys wrote:

Bonjour,

Voici les 2 commandes et le résultats, message d'erreur que j'obtiens:

:~$ su
Password:
:/home/christian# dpkg-reconfigure locales
/usr/sbin/dpkg-reconfigure: locales is broken or not fully installed
:/home/christian# apt-get install locales Reading Package
Lists... Done
Building Dependency Tree... Done
locales is already the newest version. 0 upgraded, 0 newly installed, 0
to remove and 5 not upgraded. 1 not fully installed or removed.
Need to get 0B of archives.
After unpacking 0B of additional disk space will be used. Setting up
locales (2.3.2.ds1-12) ... Generating locales...

... done
fr_FR.ISO-8859-1... done


Es-tu sûr d'avoir besoin d'autant de locales ? Je n'utilise chez moi que
(génial, tout est en unicode) et
au cas où.

nicolas patrois : pts noir asocial
--
GLOU-GLOU

P : Ouerk ! C'est dégueulasse, j'ai bu la tasse !
M : Panique pas... La mer est pleine de microbes, mais tellement dilués qu'ils sont inoffensifs...
P : C'est ça... La mer, c'est de la merde homéopathique !

Avatar
Krys


... done
fr_FR.ISO-8859-1... done



Es-tu sûr d'avoir besoin d'autant de locales ? Je n'utilise chez moi que
(génial, tout est en unicode) et
au cas où.

nicolas patrois : pts noir asocial


Ben non j'ai po besoin. Moi je suis en fr_CA.ISO-8859.1 et c'est la
seule que j'ai besoin, peut-etre aussi en_CA.ISO-8859.1 mais je pense
que c'est déjà inclus dans le premier peut-etre aussi en_US.UFT-8

Je suis à Québec, en français..


Mais comment purger les autres locales ? Où se trouve le(s) fichier(s)
que je dois modifier pour que ce soit mes locales installés. Je pense
que les locales d'un système définissent le comportement du système et
des programmes au niveaux: langue, clavier, fuseau horaire, et ?

Krys


Avatar
Nicolas George
Krys wrote in message <J0Lvc.22911$:




Beurk.

Ben non j'ai po besoin. Moi je suis en fr_CA.ISO-8859.1 et c'est la


ISO-8859-1 avec un tiret.

seule que j'ai besoin, peut-etre aussi en_CA.ISO-8859.1 mais je pense
que c'est déjà inclus dans le premier


Non, pas du tout, c'est essentiellement distinct.

peut-etre aussi en_US.UFT-8


UTF, pas UFT. C'est très souhaitable.

Mais comment purger les autres locales ?


Ça dépend de la version de la libc. Avec une glibc 2.3, le fait de
reconstruire les locales avec locale-gen (appelé par dpkg-reconfigure) a
cet effet (aucun mystère, le script dit « rm -rf /usr/lib/locale/* »).
Avec une glibc plus vieille (par exemple celle de Woody), il faut
supprimer les répertoires inutiles dans /usr/lib/locale (qui ne sert
qu'à ça, normalement).

Où se trouve le(s) fichier(s)
que je dois modifier pour que ce soit mes locales installés.


dpkg-reconfigure locales présente normalement un menu pour sélectionner
quelles locales sont compilées ou pas. Il est possible, selon la
configuration de debconf, que cette question te soit épargnée. Dans ce
cas, soit dpkg-reconfigure debconf pour avoir plus de détails, soit
éditer /etc/locale.gen à la main.

Je pense
que les locales d'un système définissent le comportement du système et
des programmes au niveaux: langue, clavier, fuseau horaire, et ?


Pas exactement. Un jour(tm) j'écrirai une page web qui explique ça,
parce que beaucoup de monde n'y comprend rien. Pour le moment, sous GNU,
il y a 12 catégories de locales, définissables par des variables
d'environnement :

LC_CTYPE : ceci définit l'encodage par défaut, quoi que ça puisse
vouloir dire ; il est souhaitable que cette variable corresponde à
l'encodage des terminaux utilisés.

LC_NUMERIC : le format dont les nombres sont écrits, en particulier s'il
faut une virgule plutôt qu'un point ; c'est à mon avis une très mauvaise
idée de l'avoir à autre chose que C (ou POSIX, c'est équivalent).

LC_TIME : le format d'une date ; là aussi, il me paraît risqué de jouer
avec ça.

LC_COLLATE : définit l'ordre alphabétique ; là encore, il est risqué de
le modifier.

LC_MESSAGES : la langue dans laquelle les programmes doivent parler ; on
peut le changer sans risque de tout casser, le problème est que les
traductions sont souvent foireuses (à croire que ceux qui traduisent ne
parlent ni français ni anglais) et/ou pas à jour.

LC_MONETARY, LC_PAPER, LC_NAME, LC_ADDRESS, LC_TELEPHONE,
LC_MEASUREMENT, LC_IDENTIFICATION : quelques paramètres locaux, très peu
utilisés (LC_PAPER est utilisé par a2ps, c'est le seul exemple que j'aie
en tête), probablement inoffensif.

À ceci, il faut ajouter LC_ALL, qui sert à donner une valeur à toutes
les catégories d'un coup, en écrasant les valeurs données spécifiquement
par d'autres LC_*, et LANG, qui définit des valeurs de celles qui n'ont
pas de valeurs dans des LC_*. En d'autres termes : chaque catégorie
prendra en priorité la locale désignée par LC_ALL, à défaut la valeur
désignée par le bon LC_*, et en dernier recours la valeur indiquée par
LANG ; si rien de ça n'est défini, c'est C/POSIX qui est utilisé.

Personnellement, je définis uniquement LC_CTYPE (à fr_FR ou
fr_FR.UTF-8), parfois LC_MESSAGES.

Les trucs compilées avec dpkg-reconfigure locales/locale-gen sont des
bases de données nécessaires pour pouvoir utiliser une valeur. À noter
que les traductions des logiciels (affectées par LC_MESSAGES) sont
fournies par les différents paquets, et ne peuvent pas être supprimées
(il y a un package apt-localepurge qui le fait, mais elles reviennent à
la moindre upgrade du paquet), mais ne sont utilisables que si la locale
correspondante est compilée.

Quant au clavier et au fuseau horaire, ça n'a rien à voir. Le premier
est défini par les fichiers présents dans /usr/share/keymaps/ (pour le
mode texte, chargé par les scripts de boot) et /usr/X11R6/lib/X11/xkb/
(pour X11, suivant la configuration dans XF86Config). Le second est
défini par les fichiers présents dans /usr/share/zoneinfo/, suivant ce
qui est sélectionné dans /etc/localtime (c'est une copie ou un lien vers
un de ces fichiers) ou la variable d'environnement TZ.


Avatar
Alexandre Gilardoni
Krys écrivait :

ro_RO.ISO-8859-2...LC_ADDRESS: `country_ab3' value does not match
country_num' value


Sans autre considération philosphico-technique sur la nécessité qu'il y
a à compiler tout ce bataclan ;-) , remplacer ROU par ROM à la
« rubrique » LC_ADDRESS du fichier /usr/share/i18n/locales/ro_RO, ce qui
donne :

country_ab3 "<U0052><U004F><U004D>"

à la place de :

country_ab3 "<U0052><U004F><U0055>"
--
Alexandre

Avatar
Krys
Krys écrivait :


ro_RO.ISO-8859-2...LC_ADDRESS: `country_ab3' value does not match
country_num' value



Sans autre considération philosphico-technique sur la nécessité qu'il y
a à compiler tout ce bataclan ;-) , remplacer ROU par ROM à la
« rubrique » LC_ADDRESS du fichier /usr/share/i18n/locales/ro_RO, ce qui
donne :

country_ab3 "<U0052><U004F><U004D>"

à la place de :

country_ab3 "<U0052><U004F><U0055>"


Un sincère merci, Alexandre, la modification que tu m'indique permet de
compléter la génération des locales.

...
pt_PT.ISO-8859-1... done
ro_RO.ISO-8859-2... done
ru_RU.ISO-8859-5... done
ru_RU.KOI8-R... done
ru_RU.UTF-8... done
ru_UA.KOI8-U... done
sk_SK.ISO-8859-2... done
sl_SI.ISO-8859-2... done
sq_AL.ISO-8859-1... done
done
sv_FI.ISO-8859-1... done
sv_SE.ISO-8859-1... done
ta_IN.UTF-8... done
te_IN.UTF-8... done
th_TH.TIS-620... done
tr_TR.ISO-8859-9... done
uk_UA.KOI8-U... done
vi_VN.UTF-8... done
zh_CN.GB18030... done
zh_CN.GB2312... done
zh_CN.GBK... done
zh_CN.UTF-8... done
zh_HK.BIG5-HKSCS... done
zh_HK.UTF-8... done
zh_TW.Big5... done
da_DK.ISO-8859-15... done
en_GB.ISO-8859-15... done
en_US.ISO-8859-15... done
sv_SE.ISO-8859-15... done
Generation complete.

:/usr/share/i18n/locales#


a+

Krys