คำสั่ง locale-gen ใน centos6


17

ในระบบ centos6.5 ของฉันซึ่งเป็นที่dockerบรรจุระบบen_US.utf-8ภาษาจะหายไป:

bash-4.1# locale -a
C
POSIX

โดยปกติใน Ubuntu มีคำสั่งlocale-genให้ทำเช่นนี้:

# locale-gen en_US.UTF-8
# echo 'LANG="en_US.UTF-8"' > /etc/default/locale

ฉันจะทำสิ่งนี้ใน centos 6.5 ได้อย่างไร

คำตอบ:


32

locale-genCentos/Fedoraคือไม่ได้อยู่ใน

คุณต้องใช้localedef:

localedef -v -c -i en_US -f UTF-8 en_US.UTF-8

จากman localedef:

NAME
       localedef - define locale environment

SYNOPSIS
       localedef [-c][-f charmap][-i sourcefile][-u code_set_name] name

DESCRIPTION
       The localedef utility shall convert source definitions for locale cate‐
       gories into a format usable by the functions and utilities whose opera‐
       tional behavior is determined by the setting of the locale  environment
       variables    defined    in    the    Base    Definitions    volume   of
       IEEE Std 1003.1-2001, Chapter 7, Locale. It  is  implementation-defined
       whether users have the capability to create new locales, in addition to
       those  supplied  by  the  implementation.  If  the  symbolic   constant
       POSIX2_LOCALEDEF  is  defined,  the system supports the creation of new
       locales.    On   XSI-conformant   systems,   the   symbolic    constant
       POSIX2_LOCALEDEF shall be defined.

ขอบคุณyum whatprovides */localedefรายงานสำหรับglibc-commonแพ็คเกจในขณะที่/usr/bin/localedefไม่มีอยู่ แปลกเพราะนักเทียบท่า?
larrycai

@larrycai: ฉันไม่แน่ใจไม่เคยเห็นปัญหานี้มาก่อน ldd /usr/bin/localedefสิ่งที่เป็นผล
cuonglm

ไฟล์ไม่มีอยู่localeคำสั่งเท่านั้น หากคุณรู้จักนักเทียบท่าคุณสามารถเรียกใช้docker run -i -t centos bashเพื่อตรวจสอบได้เช่นกัน
larrycai

ครับขอบคุณ ~ ผมได้รับค่อนข้างรำคาญโดยตัวอักษรแปลก ๆ :)
เอ็ดดี้ B

8

ฉันให้ข้อมูลเพิ่มเติมตามคำตอบ @Gnouc (localedefจะใช้เป็น )

centos dockerเป็นภาพพิเศษซึ่งมีแพคเกจที่น้อยที่สุดดูสคริปต์https://github.com/dotcloud/docker/blob/master/contrib/mkimage-yum.sh

rm -rf "$target"/usr/{{lib,share}/locale,{lib,lib64}/gconv,bin/localedef,sbin/build-locale-archive}

คำสั่ง Inside localedefจะถูกลบglibc-commonแพ็กเกจซึ่งรวมถึงสิ่งนี้จะถูกติดตั้งใหม่

yum reinstall glibc-common

ขนาดจะเพิ่มขึ้นอย่างแน่นอน


yum reinstall glibc-commonทำให้ localedef พร้อมใช้งานสำหรับฉันบน Amazon Linux 2.17-196.172.amzn1Docker container: hub.docker.com/r/ambakshi/amazon-linuxและอนุญาตให้ฉันติดตั้ง Elixir
Kevin Johnson
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.