Untuk mengkonfigurasi zona waktu, saya pertama-tama membuat '/ etc / localtime' sebagai tautan lunak ke file zoneinfo yang sesuai di bawah direktori '/ usr / share / zoneinfo'. Kemudian, saya menjalankan perintah dpkg-reconfigure , dan semuanya akan diberlakukan. Jadi, misalnya, untuk mengatur zona waktu 'Eropa / Brussels':
AREA='Europe'
ZONE='Brussels'
ZONEINFO_FILE='/usr/share/zoneinfo/'"${AREA}"'/'"${ZONE}"
ln --force --symbolic "${ZONEINFO_FILE}" '/etc/localtime'
dpkg-reconfigure --frontend=noninteractive tzdata
(Perhatikan bahwa AREA adalah subdirektori di bawah '/ usr / share / info', dan ZONE adalah file di bawah subdirektori AREA).
Untuk mengkonfigurasi locales, saya pertama kali menjalankan skrip sed yang akan membuat salinan baru dari file '/etc/locale.gen', berdasarkan pada isi file '/ usr / share / i18n / SUPPORTED'. Setiap baris dari file input akan disalin, tetapi akan diubah menjadi komentar kecuali itu adalah entri dari UTF-8 lokal untuk bahasa yang ingin saya sediakan di sistem saya (misalnya, Inggris, Belanda, Perancis, dan Jerman):
sed --regexp-extended --expression='
1 {
i\
# This file lists locales that you wish to have built. You can find a list\
# of valid supported locales at /usr/share/i18n/SUPPORTED, and you can add\
# user defined locales to /usr/local/share/i18n/SUPPORTED. If you change\
# this file, you need to rerun locale-gen.\
\
}
/^(en|nl|fr|de)(_[[:upper:]]+)?(\.UTF-8)?(@[^[:space:]]+)?[[:space:]]+UTF-8$/! s/^/# /
' /usr/share/i18n/SUPPORTED > /etc/locale.gen
Selanjutnya, saya mengatur lokal lingkungan default di database debconf, misalnya, ke British English :
debconf-set-selections <<< 'locales locales/default_environment_locale select en_GB.UTF-8'
Saya kemudian menghapus file '/ etc / default / locale' yang ada (hanya untuk memastikan bahwa konten yang lama tidak akan mengganggu pengaturan baru saya), dan menjalankan perintah dpkg-mengkonfigurasi ulang untuk menghasilkan semua lokal yang dipilih oleh skrip sed , dan untuk membuat file '/ etc / default / locale' baru dengan hanya sebuah entri untuk mengatur variabel 'LANG' menjadi lokal lingkungan default yang saya pilih:
rm --force --verbose /etc/default/locale
dpkg-reconfigure --frontend=noninteractive locales
Kemudian, tergantung pada persyaratan saya, saya mungkin ingin menjalankan beberapa perintah pembaruan-lokal , untuk mengesampingkan, misalnya, variabel yang memengaruhi pemformatan nilai, dan mengaturnya ke lokal yang berbeda (seperti Bahasa Inggris Irlandia ):
update-locale LC_NUMERIC='en_IE.UTF-8'
update-locale LC_TIME='en_IE.UTF-8'
update-locale LC_MONETARY='en_IE.UTF-8'
update-locale LC_PAPER='en_IE.UTF-8'
update-locale LC_NAME='en_IE.UTF-8'
update-locale LC_ADDRESS='en_IE.UTF-8'
update-locale LC_TELEPHONE='en_IE.UTF-8'
update-locale LC_MEASUREMENT='en_IE.UTF-8'
update-locale LC_IDENTIFICATION='en_IE.UTF-8'
(Saya bisa menentukan semua parameter ini pada satu permintaan tunggal perintah pembaruan-lokal , tetapi tampaknya, urutan entri dapat ditulis ke file '/ etc / default / locale' tidak dapat diprediksi jika saya melakukannya. Saya lebih suka mereka selalu dalam urutan yang sama, itulah sebabnya saya membuat mereka satu per satu.)
Dan akhirnya, saya mungkin ingin menjalankan perintah pembaruan-lokal untuk yang terakhir kalinya, untuk mengatur variabel LANGUAGE (yaitu, daftar bahasa tempat saya ingin pesan teks yang dapat diterjemahkan ditampilkan):
update-locale LANGUAGE='en_GB:en_US:en'
File "/usr/share/apt-listchanges/ALChacks.py", line 32, in <module> sys.stderr.write(_("Can't set locale; make sure $LC_* and $LANG are correct!\n"))
...