Nota: Este artículo fue publicado originalmente en 2018. Algunos pasos, comandos o versiones de software pueden haber cambiado. Consulta la documentación actual de Ubuntu para obtener la información más reciente.

Al trabajar con Ubuntu, a veces cuando te conectas remotamente por SSH a un servidor obtienes un montón de errores de locale que son bastante molestos. Afortunadamente, al usar Ubuntu 18 recibes un mensaje al iniciar sesión que es bastante útil:

_____________________________________________________________________
WARNING! Your environment specifies an invalid locale.
The unknown environment variables are:
LC_CTYPE=UTF-8 LC_ALL=
This can affect your user experience significantly, including the
ability to manage packages. You may install the locales by running:

sudo apt-get install language-pack-UTF-8
or
sudo locale-gen UTF-8

To see all available language packs, run:
apt-cache search "^language-pack-$"
To disable this message for all users, run:
sudo touch /var/lib/cloud/instance/locale-check.skip
_____________________________________________________________________

entonces, la clave aquí es que tu máquina cliente tiene un locale que tu servidor Ubuntu no puede reconocer. Lamentablemente, sigues las instrucciones solo para encontrarte con esto:

$ sudo apt-get install language-pack-UTF-8
 password for :
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package language-pack-UTF-8

o esto

$ sudo locale-gen UTF-8
Error: 'UTF-8' is not a supported language or locale

o esto

perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = "en_US.UTF-8",
LC_CTYPE = "en_US.UTF-8",
LANG = "en_US.UTF-8"
    are supported and installed on your system.

lo que te hace preguntarte… si no funcionan, ¿por qué dije que el mensaje era bastante útil? Bueno, porque nos apunta en la dirección correcta: Necesitamos instalar el paquete de idioma de alguna manera. Resulta que estoy usando un Mac y está en español, así que Ubuntu no puede traducir eso a uno de sus locales. Entonces, toma el ejemplo a continuación:

export LC_ALL="en_US.UTF-8"
export LC_CTYPE="en_US.UTF-8"
sudo dpkg-reconfigure locales

Esto le dirá que use en_us como predeterminado y listo. En mi caso, lo ejecuté para obtener el código de idioma para Español/México que es: **es_MX.UTF-8**. Asegúrate de instalar el idioma mientras estés en la pantalla de dpkg-reconfigure locales antes de intentar ejecutar los siguientes comandos. Eso significa que puedes buscar el tuyo si estás usando un idioma diferente e ingresarlo así:

export LC_ALL="es_MX.UTF-8"
export LC_CTYPE="es_MX.UTF-8"
sudo dpkg-reconfigure locales

¡y ahora todo debería funcionar perfectamente!

Resumen

Esta guía cubrió las causas comunes y soluciones para este problema de Ubuntu. Si el problema persiste, consulta la documentación oficial o los registros del sistema para obtener información de diagnóstico adicional.

Artículos relacionados