Blackhold

locales rebeldes

Posted on març 7th, 2011 by admin

Pues he tenido un problema de locales rebeldes que no se cambiaban, así que hemos tenido que repasar un poquito este tema :P

El problema estaba que al crear una maquina virtual openvz con debian 6.0 los locales no se generaron correctamente y ponía que eran POSIX pero las requería en UTF-8 ya que todos los sistemas que tengo trabajan en esta codificación.

La forma elegante de hacerlo es mediante dpkg-reconfigure locales

# dpkg-reconfigure locales

Y le indicamos la locale deseada.

Aún así a mi no me estaba haciendo caso, ni siquiera reiniciando la maquina, así que he probado con otra forma un poco mas bruta:

# vi /etc/locale.gen
en_US.UTF-8 UTF-8

La línea estaba comentada, reinicio y el mismo problema, las locale POSIX

root@v-www-conway:/etc# locale
LANG=
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=

En /etc/default/locale

# vi /etc/default/locale
LANG=en_US.UTF-8

Así que hemos tirado por mas fuerza bruta aún, he añadido esta línea al final de /etc/profile

# vi /etc/profile
: ${LANG:=en_US.UTF-8}; export LANG

y luego si ha funcionado. El : no lo conocía, y supongo que es el equivalente a export.

root@v-www-conway:/etc# 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=

Pues hasta aquí el tip of the day ;)

Leave a Response

« »

guy fawkes