Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Ubuntu 11.04 et locale ISO-8859-15 semble altérer le système

16 réponses
Avatar
denis.paris
Bonjour,

Pour des raisons personnelles je souhaite configurer une machine Ubuntu
11.04 pour travailler uniquement en ISO-8859-15 au lieu de UTF-8 (accès
concurrents sur un NAS de machines Windows et de Linux)

C'est une question qui revient régulièrement sur le WEB, avec des
"bidouilles" plus ou moins propres. Voici ce que j'ai fait:

1° dans /var/lib/locales/supported.d/local
uniquement la ligne
fr_FR ISO-8859-15, puis

dpkg-reconfigure locales


2° dans /etc/defaut/locale
LANG=fr_FR.ISO-8859-15

Cela semble fonctionner, mais il n'est plus possible d'administrer les
utilisateurs et les groupes: quand je tente d'ajouter un utilisateur
(avec l'interface graphique) j'ai le message suivante:

"Vous n'êtes pas autorisé à modifier
la configuration du système
une erreur est survenue lors de la vérification des
autorisations"

Alors que normalement c'est la fenêtre de demande d'authentification.

Pour pouvoir gérer les comptes, je re-modifie le fichier
/etc/defaut/locale et je remets la ligne:

LANG="fr_FR.UTF-8"

Je me reconnecte en resél-ectionnant la bonne langue le cas échéant et
ça remarche!

Je pense que le système bute alors sur un fichier qui n'est pas au bon
format et ne va pas plus loin.

Il y a-t-il une manière "propre" de gérer ce problème?

Merci pour vos réponses éventuelles.

6 réponses

1 2
Avatar
denis.paris
Le 15/11/2011 20:17, Fabien LE LEZ a écrit :
On Tue, 15 Nov 2011 10:30:59 +0100, "denis.paris" :

Bref, les mondes Windows et Linux ne sont pas encore prêts à cohabiter
simplement.



Honnêtement, je n'ai jamais rencontré de problèmes du côté des noms de
fichiers. Windows (2000, XP, Vista, 7) cause en UTF-16 ; Linux stocke
les noms de fichiers en UTF-8 ; et Samba se charge de faire les
conversions nécessaires.
Évidemment, si le serveur Linux est configuré pour travailler en autre
chose qu'UTF-8, tu es dans la merde.



Je te le fais pas dire, c'est le cas, sans doute au début le choix de
l'UTF-8 eût été préférable, mais maintenant c'est compliqué de revenir
en arrière: il y a des centaines de milliers de fichiers...

A moins de trouver une solution de renommer en masse les fichiers en
changeant leur codage, il faudra que je me penche sur la question. Le
problème est qu'il y a les profiles "errants" des utilisateurs, si on se
rate ça risque de tout casser.
Avatar
denis.paris
Le 15/11/2011 20:36, cLx a écrit :
On 15/11/2011 20:17, Fabien LE LEZ wrote:
On Tue, 15 Nov 2011 10:30:59 +0100, "denis.paris" :

Bref, les mondes Windows et Linux ne sont pas encore prêts à cohabiter
simplement.



Honnêtement, je n'ai jamais rencontré de problèmes du côté des noms de
fichiers. Windows (2000, XP, Vista, 7) cause en UTF-16 ; Linux stocke
les noms de fichiers en UTF-8 ; et Samba se charge de faire les
conversions nécessaires.
Évidemment, si le serveur Linux est configuré pour travailler en autre
chose qu'UTF-8, tu es dans la merde.



Comment on fait pour vérifier quel charset est utilisé pour le système de
fichiers d'ailleurs ?



C'est dans /var/lib/locales/supported.d/local et /etc/default/locale,
mais si on veut être sûr, perso je créé un fichier texte avec "vi"
contenant au moins un accent, puis "file <ce fichier>" retourne le
codage utilisé.
Avatar
cLx
On 15/11/2011 21:47, denis.paris wrote:
Le 15/11/2011 20:36, cLx a écrit :
On 15/11/2011 20:17, Fabien LE LEZ wrote:
Honnêtement, je n'ai jamais rencontré de problèmes du côté des noms de
fichiers. Windows (2000, XP, Vista, 7) cause en UTF-16 ; Linux stocke
les noms de fichiers en UTF-8 ; et Samba se charge de faire les
conversions nécessaires.
Évidemment, si le serveur Linux est configuré pour travailler en autre
chose qu'UTF-8, tu es dans la merde.



Comment on fait pour vérifier quel charset est utilisé pour le système de
fichiers d'ailleurs ?


C'est dans /var/lib/locales/supported.d/local et /etc/default/locale,



/var/lib/locales/ n'existe pas chez moi. dans /etc/default/locale j'ai bien
LANG=en_US.ISO-8859-15

qui est la locale par défaut, mais je ne suis toujours pas sûr que ce soit
celle là qui est employée pour les disques, n'est-ce pas ?

Mon serveur (Debian) est globalement en iso, mais j'utilise à la fois des
terminaux iso et en UTF-8 suivant les besoins. J'ai un LANG=en_US.utf8
automatique dans les sessions des terminaux virtuels qui sont en UTF-8. Je
n'ai pas les problèmes rencontrés par l'OP car je n'utilise même pas
d'interface graphique.

Et... En effet, les fichiers venant de windows sont bien crées avec des noms
en UTF-8 (je ne m'en étais jamais rendu compte, je n'avais jamais eu l'idée
de mettre des accents dans mes noms de fichiers). Mais ça confirmerait que ça
ne sert à rien de mettre la machine toute entière en ISO juste pour être
compatible avec les machines windows qui sont autour...

mais si
on veut être sûr, perso je créé un fichier texte avec "vi" contenant au moins
un accent, puis "file <ce fichier>" retourne le codage utilisé.



Ça ça va juste nous dire qu'elle est la locale en cours d'utilisation pour ce
terminal, ce que l'on sait déjà en tapant "locale".

-- cLx
Avatar
denis.paris
Le 16/11/2011 09:31, cLx a écrit :
On 15/11/2011 21:47, denis.paris wrote:
Le 15/11/2011 20:36, cLx a écrit :
On 15/11/2011 20:17, Fabien LE LEZ wrote:
Honnêtement, je n'ai jamais rencontré de problèmes du côté des noms de
fichiers. Windows (2000, XP, Vista, 7) cause en UTF-16 ; Linux stocke
les noms de fichiers en UTF-8 ; et Samba se charge de faire les
conversions nécessaires.
Évidemment, si le serveur Linux est configuré pour travailler en autre
chose qu'UTF-8, tu es dans la merde.



Comment on fait pour vérifier quel charset est utilisé pour le système de
fichiers d'ailleurs ?


C'est dans /var/lib/locales/supported.d/local et /etc/default/locale,



/var/lib/locales/ n'existe pas chez moi. dans /etc/default/locale j'ai bien
LANG=en_US.ISO-8859-15




En effet, sur debian je lance la commande "dpkg-reconfigure locales"
puis on choisit le jeu souhaité, c'est un script qui génère ensuite
/erc/default/locale

qui est la locale par défaut, mais je ne suis toujours pas sûr que ce soit
celle là qui est employée pour les disques, n'est-ce pas ?



Je suppose que c'est lié à l'environnement du compte / démon qui fait
les écritures disque. De base c'est très probablement UTF-8

Mon serveur (Debian) est globalement en iso, mais j'utilise à la fois des
terminaux iso et en UTF-8 suivant les besoins. J'ai un LANG=en_US.utf8
automatique dans les sessions des terminaux virtuels qui sont en UTF-8. Je
n'ai pas les problèmes rencontrés par l'OP car je n'utilise même pas
d'interface graphique.

Et... En effet, les fichiers venant de windows sont bien crées avec des noms
en UTF-8 (je ne m'en étais jamais rendu compte, je n'avais jamais eu l'idée
de mettre des accents dans mes noms de fichiers). Mais ça confirmerait que ça
ne sert à rien de mettre la machine toute entière en ISO juste pour être
compatible avec les machines windows qui sont autour...




Sauf si comme dans mon cas tu manipules les mêmes fichiers avec les deux
OS. Au départ je voulais travailler indifféremment depuis une station
Windows ou Linux, selon mon humeur. Je crois que c'était trop ambitieux...

mais si
on veut être sûr, perso je créé un fichier texte avec "vi" contenant au moins
un accent, puis "file<ce fichier>" retourne le codage utilisé.



Ça ça va juste nous dire qu'elle est la locale en cours d'utilisation pour ce
terminal, ce que l'on sait déjà en tapant "locale".




C'est juste.
Avatar
Yliur
Le Sun, 13 Nov 2011 17:50:08 +0100
"denis.paris" a écrit :

Bonjour,

Pour des raisons personnelles je souhaite configurer une machine
Ubuntu 11.04 pour travailler uniquement en ISO-8859-15 au lieu de
UTF-8 (accès concurrents sur un NAS de machines Windows et de Linux)

C'est une question qui revient régulièrement sur le WEB, avec des
"bidouilles" plus ou moins propres. Voici ce que j'ai fait:

1° dans /var/lib/locales/supported.d/local
uniquement la ligne
fr_FR ISO-8859-15, puis

dpkg-reconfigure locales


2° dans /etc/defaut/locale
LANG=fr_FR.ISO-8859-15

Cela semble fonctionner, mais il n'est plus possible d'administrer
les utilisateurs et les groupes: quand je tente d'ajouter un
utilisateur (avec l'interface graphique) j'ai le message suivante:

"Vous n'êtes pas autorisé à modifier
la configuration du système
une erreur est survenue lors de la vérification des
autorisations"

Alors que normalement c'est la fenêtre de demande d'authentification.

Pour pouvoir gérer les comptes, je re-modifie le fichier
/etc/defaut/locale et je remets la ligne:

LANG="fr_FR.UTF-8"

Je me reconnecte en resél-ectionnant la bonne langue le cas échéant
et ça remarche!

Je pense que le système bute alors sur un fichier qui n'est pas au
bon format et ne va pas plus loin.

Il y a-t-il une manière "propre" de gérer ce problème?

Merci pour vos réponses éventuelles.



Il n'y a pas une option de mount pour choisir l'encodage des noms de
fichier de la partition montée ? Il me semble que j'avais essayé une
fois pour éviter ces problèmes d'accents avec des fichiers sur
une partition FAT32.

Par contre ça n'avait pas marché, l'encodage en question n'était pas
trouvé (là on m'a parlé de recompilation du noyau et j'ai laissé tombé,
mais je ne sais pas ce qu'il en est réellement).
Avatar
Benoit Izac
Bonjour,

le 17/11/2011 à 00:32, Yliur a écrit dans le message
:

Il n'y a pas une option de mount pour choisir l'encodage des noms de
fichier de la partition montée ? Il me semble que j'avais essayé une
fois pour éviter ces problèmes d'accents avec des fichiers sur
une partition FAT32.



Oui, c'est iocharset pour la FAT, nls pour NTFS. La valeur par défaut
est fixée dans le noyau, pour la connaître :
% zgrep -Ei 'default_iocharset|nls_default' /proc/config.gz
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-15"
CONFIG_NLS_DEFAULT="utf8"

On peut changer d'encodage lors du montage :
# mount -t vfat -o iocharset=utf8 /dev/XXX /mnt/XXX

Par contre ça n'avait pas marché, l'encodage en question n'était pas
trouvé (là on m'a parlé de recompilation du noyau et j'ai laissé tombé,
mais je ne sais pas ce qu'il en est réellement).



C'est effectivement dans le noyau que se trouve le support. Généralement
les distributions mettent tout en module, auquel cas, il suffit de le
charger pour avoir le support.

--
Benoit Izac
1 2