If you run across Ubuntu/Debian perl or shell script and see the following locale error:
perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = (unset), LC_ALL = (unset), LC_CTYPE = "UTF-8", LANG = "en_GB.UTF-8" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C").
Then it is more likely that your Ubuntu/Debian locale is not configured properly. I had found this error messages when I was trying to activate tightvncserver on my Raspberry Pi running a Debian Wheezy like below:
pi@raspi ~ $ tightvncserver perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = (unset), LC_ALL = (unset), LC_CTYPE = "UTF-8", LANG = "en_GB.UTF-8" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C"). New 'X' desktop is raspi:1 Starting applications specified in /home/pi/.vnc/xstartup Log file is /home/pi/.vnc/raspi:1.log pi@raspi ~ $
To get rid of this error, I execute the following command as root and make sure that your current user are a sudoer or currently allowed to execute sudo command:
pi@raspi: ~ $ sudo -i password: root@raspi:~ # dpkg-reconfigure locales perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = "en_US.UTF-8", LC_ALL = "en_US.UTF-8", LC_CTYPE = "UTF-8", LANG = "en_US.UTF-8" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C"). locale: Cannot set LC_CTYPE to default locale: No such file or directory locale: Cannot set LC_MESSAGES to default locale: No such file or directory locale: Cannot set LC_ALL to default locale: No such file or directory /usr/bin/locale: Cannot set LC_CTYPE to default locale: No such file or directory /usr/bin/locale: Cannot set LC_MESSAGES to default locale: No such file or directory /usr/bin/locale: Cannot set LC_ALL to default locale: No such file or directory ... at this point, select your desired locale settings, ... select only locale settings you need ... AND uncheck/untick the All locale, ... otherwise your system will generate all locale which takes a long time ... then select your desired default locale ... in my case, I only configure all en_US locale and set en_US as the default locale Generating locales (this might take a while)... en_US.ISO-8859-1... done en_US.ISO-8859-15... done en_US.UTF-8... done Generation complete. root@raspi:~ # exit pi@raspi: ~ $
Try to execute the former shell command that show you the locale error. This time, you won’t see the locale error anymore. Great!
pi@raspi ~ $ vncserver -kill :1 Can't find file /home/pi/.vnc/raspi:1.pid You'll have to kill the Xtightvnc process manually pi@raspi ~ $ tightvncserver New 'X' desktop is raspi:1 Starting applications specified in /home/pi/.vnc/xstartup Log file is /home/pi/.vnc/raspi:1.log pi@raspi ~ $ vncserver -kill :1 Killing Xtightvnc process ID 11604 pi@raspi ~ $