lokal tidak ditemukan / pengaturan lokal gagal - apa yang harus saya lakukan?

32

Saya telah menginstal Debian 7 i386 di VPS (OpenVZ) saya. Semuanya berfungsi dengan baik, kecuali lokal - setiap upaya untuk menginstal apa pun menunjukkan:

[...]
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LANG = "pl_PL.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
[...]

Apa yang saya coba:

  1. Menghasilkan lokal sendiri - update-locale LC_ALL="pl_PL.UTF-8"- menunjukkan: http://www.wklej.org/id/1248438/
  2. apt-get install --reinstall locales http://www.wklej.org/id/1248442/
  3. Sama dengan dpkg-reconfigure localespengaturan + pl_PL.UTF-8, pl_PL.ISO-8859-2atau bahkan en_US: http://www.wklej.org/id/1248446/
  4. export LC_ALL=pl_PL.UTF-8 (bahkan pada root):

    -bash: warning: setlocale: LC_ALL: cannot change locale (pl_PL.UTF-8)
    

Inilah yang menunjukkan lokal:

root:~# locale
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
LANG=pl_PL.UTF-8
LANGUAGE=
LC_CTYPE="pl_PL.UTF-8"
LC_NUMERIC="pl_PL.UTF-8"
LC_TIME="pl_PL.UTF-8"
LC_COLLATE="pl_PL.UTF-8"
LC_MONETARY="pl_PL.UTF-8"
LC_MESSAGES="pl_PL.UTF-8"
LC_PAPER="pl_PL.UTF-8"
LC_NAME="pl_PL.UTF-8"
LC_ADDRESS="pl_PL.UTF-8"
LC_TELEPHONE="pl_PL.UTF-8"
LC_MEASUREMENT="pl_PL.UTF-8"
LC_IDENTIFICATION="pl_PL.UTF-8"
LC_ALL=

Tidak ada yang menarik ditemukan di / var / log. Bahkan mengubah repo menjadi + pembersihan + lokal dan instalasi manual tidak memecahkan masalah saya, yang memanifestasikan dirinya pada setiap instalasi baru Debian 7.

luke_g
sumber

Jawaban:

22

Tampaknya tidak ada lokal yang dihasilkan. Sudahkah Anda memilih pl_PL.UTF-8dengan benar dpkg-reconfigure localesdengan menekan spacepada baris yang sesuai?

Jika ya, teleponnya

pl_PL.UTF-8 UTF-8

in /etc/locale.gentidak dikomentari (= tidak dimulai dengan #). Jika Anda perlu memperbaiki ini, Anda juga harus menjalankan locale-genuntuk menghasilkan lokal. Outputnya harus:

Generating locales (this might take a while)...
   pl_PL.UTF-8... done
Generation complete.

Jika tidak menampilkan lokal yang ingin Anda hasilkan, tampaknya ada yang salah dengan sistem Anda. Salah satu alasannya mungkin karena Anda telah localepurgemenginstal. Jika tidak ada file /usr/share/locale/pl/LC_MESSAGESatau /usr/share/locale/pl_PL/LC_MESSAGESini masalahnya atau sistem Anda rusak.

Jofel
sumber
1
Berhasil! Posisi yang dipilih di /etc/locale.gen masih berkomentar, tidak tahu mengapa (ya, saya ingat tentang bilah spasi) - mungkin ada yang salah dengan CHMOD. Terima kasih!
luke_g
1
Catatan itu -plowadalah default, jadi bisa dihilangkan. Anda hanya perlu menelepon dpkg-reconfigure, yang akan memanggil lokal-gen setelah Anda mencentang entri yang Anda inginkan.
Stéphane Chazelas
@StephaneChazelas terima kasih, saya menghapusnya dari jawaban dan menjelaskan penggunaannya locale-gen.
jofel
Kemungkinan lain adalah jika Anda telah mengkonfigurasi sistem Anda dll untuk en_US tetapi Anda /etc/locale.genhanya membatalkan komentar en_GB. Saya melihat kesalahan ini di utas ini di sini unix.stackexchange.com/q/287716/16920 Tolong, tambahkan juga ke strategi pemecahan masalah juga.
Léo Léopold Hertz 준영
12

pertama:

sudo apt-get purge locales

kemudian:

sudo aptitude install locales

dan yang terkenal:

sudo dpkg-reconfigure locales

Ini menjalankan sistem locales, kemudian menginstal ulang locales dan menurunkan libc6 dari 2.19 menjadi 2.13 yang merupakan masalah. Kemudian konfigurasikan kembali locales.

tkjef
sumber
Tampaknya membantu tetapi selanjutnya apt-get dist-upgradeakan mematahkannya lagi.
ceving
Mengapa itu melanggarnya? Pada saat itu bukankah locales harus kompatibel dengan libc6 yang digunakan? Libc6 saya diubah untuk menggunakan beberapa program lain. Saya telah menurunkannya kembali ke versi libc6 default sehingga sistem saya berfungsi dengan baik. Pada titik itu seharusnya sangat kompatibel dengan upgrade apt-get-dist
tkjef
1
Sebuah apt-get install localesmenginstal lokal pada wadah debian Docker saya.
Stephane
7

Cara cepat dan mudah (meskipun itu berarti lebih banyak disk yang digunakan daripada yang lain):

apt install locales-all
Yajo
sumber
1

coba jalankan

locale -a

jika kamu punya

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

Solusi untuk situasi ini adalah menginstal paket locales (dari paket glibc [1]) dalam rasa debian atau glibc-all-langpacks CentOS / Fedora

[1] https://tracker.debian.org/pkg/glibc

Sérgio
sumber
glibc-localepaket tidak ada di Debian
Yajo
harus paket lokal ... diperbaiki
Sérgio