En un nuevo servidor para un cliente necesité generar un locale (configuración regional) faltante. Para ello simplemente se debe recurrir a la herramienta locale-gen.



Esta herramienta se encarga de generar locales. Estos son utilizados por librerías y programas en sistemas Unix para determinar cómo visualizar correctamente texto, valores monetarios, números, fechas, etc. Un locale es básicamente un directorio que contiene archivos, los cuales especifican el formato que se debe utilizar en cada uno de estos valores (texto, números, fechas, etc.).

Al intentar crear una base de datos Postgres me encontré con el siguiente error:

ERROR:  invalid locale name es_ES.iso88591 postgres

Este error indica que el locale "es_ES.iso88591" es desconocido, por ende es necesario generarlo. Muchos sistemas GNU/Linux no incluyen todos los posibles locales, sino sólo aquellos indicados por el usuario durante la instalación del sistema operativo.

Para saber cuales son los locales disponibles, es posible utilizar el siguiente comando:

root@debian:~# locale -a
C
C.UTF-8
en_US.utf8
POSIX

Se observa que el locale "es_ES.iso88591" no está disponible. Para generar un nuevo locale se debe utilizar la herramienta locale-gen. Editar el archivo de configuración /etc/locale.gen. Dentro del mismo se encuentran configurados todos los locales disponibles.

root@debian:~# nano /etc/locale.gen

En Debian y derivados, este archivo incluye todos los posibles locales admitidos, los cuales se encuentran comentados (mediante un # al comienzo de la línea). Para habilitar un nuevo locale, basta con descomentar la línea. En otras distribuciones tal vez sea necesario directamente agregar la línea, la cual está conformada por un nombre de locale y una codificación (encoding o conjunto de caracteres) separados por un espacio en blanco.

Luego de descomentar o agregar nuevas líneas, el sistema queda configurado con los siguientes locales:

root@debian:~# grep -v "^#" /etc/locale.gen 


en_US.UTF-8 UTF-8
es_AR ISO-8859-1
es_AR.UTF-8 UTF-8
es_ES ISO-8859-1
es_ES.UTF-8 UTF-8

Sólo resta generarlos, para ello ejecutar locale-gen:

root@debian:~# locale-gen 
Generating locales (this might take a while)...
  en_US.UTF-8... done
  es_AR.ISO-8859-1... done
  es_AR.UTF-8... done
  es_ES.ISO-8859-1... done
  es_ES.UTF-8... done
Generation complete.

Ahora locale -a reporta los nuevos locales soportados:

root@debian:~# locale -a
C
C.UTF-8
en_US.utf8
es_AR
es_AR.iso88591
es_AR.utf8
es_ES
es_ES.iso88591
es_ES.utf8
POSIX
spanish

Referencias


Tal vez pueda interesarte


Compartí este artículo