Locale
di lingkungan sistem operasi Unix salah satunya dipakai untuk mengatur tentang bahasa & tipe encoding. Misalnya saya bisa mengatur supaya Linux saya menggunakan bahasa “English US” (en_US
) & ingin menggunakan tipe encoding UTF8
. Nah tadi saya menemukan masalah dengan setting tersebut saat mencoba memasang sebuah paket. Error-nya kurang lebih seperti ini :
perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = "en_US:en", LC_ALL = (unset), LC_CTYPE = "UTF-8", LANG = "en_US.UTF-8" are supported and installed on your system.
Ini contoh tampilan lengkap saat saya ingin memasang paket mdadm
di Debian 7 :
root@debian01-new:~# apt-get install mdadm initramfs-tools Reading package lists... Done Building dependency tree Reading state information... Done initramfs-tools is already the newest version. The following NEW packages will be installed: mdadm 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 0 B/566 kB of archives. After this operation, 1098 kB of additional disk space will be used. Do you want to continue [Y/n]? Y Media change: please insert the disc labeled 'Debian GNU/Linux 7.1.0 _Wheezy_ - Official i386 CD Binary-1 20130615-21:54' in the drive '/media/cdrom/' and press enter Can't set locale; make sure $LC_* and $LANG are correct! perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = "en_US:en", LC_ALL = (unset), 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_ALL to default locale: No such file or directory Preconfiguring packages ... perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = "en_US:en", LC_ALL = (unset), 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"). perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = "en_US:en", LC_ALL = (unset), 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"). /usr/bin/locale: Cannot set LC_CTYPE to default locale: No such file or directory /usr/bin/locale: Cannot set LC_ALL to default locale: No such file or directory perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = "en_US:en", LC_ALL = (unset), 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"). perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = "en_US:en", LC_ALL = (unset), 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"). Selecting previously unselected package mdadm. (Reading database ... 45904 files and directories currently installed.) Unpacking mdadm (from .../m/mdadm/mdadm_3.2.5-5_i386.deb) ... Processing triggers for man-db ... locale: Cannot set LC_CTYPE to default locale: No such file or directory locale: Cannot set LC_ALL to default locale: No such file or directory Setting up mdadm (3.2.5-5) ... locale: Cannot set LC_CTYPE to default locale: No such file or directory locale: Cannot set LC_ALL to default locale: No such file or directory Generating array device nodes... done. Generating mdadm.conf... done. update-initramfs: deferring update (trigger activated) [ ok ] Assembling MD arrays...done (no arrays found in config file or automatically). [ ok ] Starting MD monitoring service: mdadm --monitor. Processing triggers for initramfs-tools ... update-initramfs: Generating /boot/initrd.img-3.2.0-4-686-pae W: mdadm: /etc/mdadm/mdadm.conf defines no arrays. W: mdadm: no arrays defined in configuration file. root@debian01-new:~#
Untuk menghilangkan error “locale” tadi, saya perlu menjalankan perintah berikut ini :
root@debian01-new:~# export LANGUAGE=en_US.UTF-8 root@debian01-new:~# export LANG=en_US.UTF-8 root@debian01-new:~# export LC_ALL=en_US.UTF-8 root@debian01-new:~# locale-gen en_US.UTF-8 Generating locales (this might take a while)... en_US.UTF-8... done Generation complete. root@debian01-new:~# dpkg-reconfigure locales Generating locales (this might take a while)... en_US.UTF-8... done Generation complete. root@debian01-new:~#
Setelah mengatur ulang bahasa & encoding-nya sekarang Debian sudah menggunakan parameter yang tepat.
root@debian01-new:~# locale LANG=en_US.UTF-8 LANGUAGE=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=en_US.UTF-8 root@debian01-new:~#
Untuk membuat pengaturan ini permanen saya perlu menambahkan 3 baris berikut ke dalam /etc/profile
:
export LANGUAGE=en_US.UTF-8 export LANG=en_US.UTF-8 export LC_ALL=en_US.UTF-8