perl: warning: Setting locale failed

Conectamos por ssh contra nuestro servidor, lanzamos un comando erróneo y aparte del mensaje de error el intérprete de comandos nos suelta el siguiente sermón:

# comando erróneo
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
	LANGUAGE = (unset),
	LC_ALL = (unset),
	LC_PAPER = "es_ES.UTF-8",
	LC_ADDRESS = "es_ES.UTF-8",
	LC_MONETARY = "es_ES.UTF-8",
	LC_NUMERIC = "es_ES.UTF-8",
	LC_TELEPHONE = "es_ES.UTF-8",
	LC_IDENTIFICATION = "es_ES.UTF-8",
	LC_MEASUREMENT = "es_ES.UTF-8",
	LC_TIME = "es_ES.UTF-8",
	LC_NAME = "es_ES.UTF-8",
	LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
ERROR: (algo relacionado con el comando erróneo)

Mmmh… ¿por qué? Pues porque en el fichero /etc/ssh/sshd_config tenemos una linea como la siguiente:

AcceptEnv LANG LC_*

Que viene a decir: las variables de entorno relacionadas con el idioma del usuario deben ser exportadas al intérprete de comandos destino de una conexión ssh. En mi caso, el soporte es_ES. El problema es que los paquetes de ese idioma en el servidor destino no están instalados… de ahí que Linux se queje amargamente.
Bueno, para evitarlo hay varias formas. La más sencilla: basta con comentar la línea en cuestión de /etc/ssh/sshd_config (añadiéndole un # por delante) y ¡listo!

3 comentarios en «perl: warning: Setting locale failed»

  1. Funcionó perfectamente, aunque tengo que decir que en mi caso no era la opción AcceptEnv LANG LC_* sino SendEnv LANG LC_*.

    Muchas gracias por la info, había probado varios métodos y ninguno me había funcionado.

    Saludos!!

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.