Mengapa saya mendapatkan "Gagal menyetel lokal, default ke C" saat menggunakan yum?

21

Setiap kali saya berlari yum installatau yum update, saya mengerti

Gagal menyetel lokal, default ke C

dan kemudian informasi lainnya.

Bagaimana saya bisa menghindari mendapat peringatan ini?

Pops
sumber

Jawaban:

19

Saya menempatkan pengaturan terkait lokal berikut di /etc/bashrc(untuk semua pengguna, bash):

export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8
export LC_COLLATE=C
export LC_CTYPE=en_US.UTF-8

lalu lari:

source /etc/bashrc

atau logoff dan logon.

ohho
sumber
2
Ini mungkin harus masuk /etc/profile.d/lang.shdan bukan ke /etc/bashrcyang kemungkinan akan ditimpa oleh pembaruan.
ccpizza
@ccpizza Saya meletakkan garis-garis itu di bagian bawah lang.shdan berhasil 👍.
Andrew Keeton
6

Lari

yum reinstall glibc-common

dan kemudian pastikan tidak ada proses yang menghapus file /usr/lib/locale/locale-archive.*.

ZaSter
sumber
1
Saya mencoba ini dulu dan itu membantu saya (tidak memeriksa prosesnya)
chro
Ini tidak berhasil untuk saya.
Angelo
3
Dalam distribusi Linux berbasis Red Hat yang lebih baru (Fedora 24+, RHEL 8+) ini akan menjadi glibc-langpack-<language>, misalnya glibc-langpack-en.
Michael Hampton
Pada gambar Centos Docker ada bug yang dilaporkan: bugzilla.redhat.com/show_bug.cgi?id=1392855
Rowinson Gallego
2

Anda dapat mencoba

export LANG=en_US

Atau atur ke yang serupa. Jika itu menyelesaikan masalah untuk Anda, Anda bisa membuatnya tetap dengan memodifikasi profil bash.

Serigala tua
sumber
Itu tidak berhasil untuk saya. Ada saran lain
ctilley79
2

Saya mendapatkan kesalahan yang sama pada MacOS. Ketika Anda ssh ke kotak linux, mereka menolak untuk mengatur UTF-8lokal. Anda dapat melihat perbedaan dalam pengaturan lokal dengan menjalankan localeperintah pada terminal MacOS Anda dan kotak Linux.

Untuk memperbaiki kesalahan ini buka terminal -> preferensi -> profil -> Tingkat lanjut dan hapus Set locale environment variables on startuppada mac Anda.

Sekarang ketika Anda menjalankan localedi mac. Anda dapat melihat bahwa perubahan ini telah menetapkan LC_CTYPE="C"yang LC_CTYPE="UTF-8"dengan pengaturan sebelumnya.

Anda harus menutup terminal Anda untuk mengambil efek ini dan sekarang masuk ke kotak linux Anda dan jalankan yum update.

Semoga bermanfaat :)

Tarun Vashisth
sumber
2

Jika Anda menggunakan SSH untuk terhubung ke host ini dari mesin desktop, itu biasa untuk /etc/ssh/sshd_configmengandung

AcceptEnv LANG LC_*

yang memungkinkan klien untuk menyebarkan nilai-nilai variabel lingkungan ke dalam sesi baru. Namun, ini akan menyebabkan variabel lokal diset kembali menjadi kosong dalam sesi SSH Anda di server yang Anda konfigurasikan, jika lokal tersebut tidak disetel dengan benar PADA MESIN DESKTOP ANDA .

Memperbaiki:

Misalnya, di jendela Ubuntu 10 Ubuntu Shell, pertama lakukan ( CATATAN: ubah semua entri di bawah ini agar sesuai dengan lokal Anda jika bukan "en_US.UTF-8" ):

sudo locale-gen en_US.UTF-8
sudo dpkg-reconfigure locales

Kemudian tutup jendela shell Ubuntu dan buka kembali, dan kemudian SSH ke server yang Anda coba konfigurasi dan lihat apakah semuanya sekarang baik-baik saja ...

Jika tidak, maka SSH ke server Anda dan lakukan:

vi /etc/profile.d/custom.lang.sh

Kemudian tekan Iuntuk masuk ke mode "masukkan". Kemudian rekatkan entri di bawah ini. Kemudian ZZuntuk menyimpan dan keluar:

## US English ##
export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8
export LC_ALL=en_US.UTF-8
export LC_CTYPE=en_US.UTF-8

Kemudian jalankan hal berikut:

source /etc/profile.d/lang.sh
source /etc/profile.d/custom.lang.sh

Kemudian:

reboot

Lihat apakah itu membuat semuanya berhenti mengeluh tentang vars lokal!

Praktek Pertama
sumber