Centos

Docker CentOS7 鏡像和語言環境編譯問題

  • June 10, 2015

我正在設置一個需要本地化支持的 Docker 映像。我還需要根據此執行緒上的評論 #21 修補 pt_BR 語言環境。所以我基本上在做的是

  • 重新安裝 glibc 以恢復失去的語言環境
  • 根據提到的執行緒編譯 pt_BR 。

但是當我執行 localedef 時,我得到了編譯錯誤。所以我最終嘗試重新編譯 pt_BR 語言環境本身,認為它可能與我的源文件有關,但我仍然遇到相同的錯誤。

我不應該能夠使用 /usr/share/i18n/locales 中的文件重新編譯語言環境嗎?

您將在下面找到更多詳細資訊

Dockerfile

FROM centos:7
RUN yum reinstall -q -y glibc-common
RUN cp /usr/share/i18n/locales/pt_BR pt_BR_abnt\.src
RUN mkdir /usr/lib/locale/pt_BR_utf8_abnt
RUN localedef --verbose -c -i pt_BR_abnt.src -f UTF-8 /usr/lib/locale pt_BR_utf8_abnt

錯誤

pt_BR_abnt.src:22: non-symbolic character value should not be used
pt_BR_abnt.src:23: non-symbolic character value should not be used
pt_BR_abnt.src:24: non-symbolic character value should not be used
pt_BR_abnt.src:26: non-symbolic character value should not be used
pt_BR_abnt.src:29: non-symbolic character value should not be used
pt_BR_abnt.src:30: non-symbolic character value should not be used
pt_BR_abnt.src:31: non-symbolic character value should not be used
pt_BR_abnt.src:32: non-symbolic character value should not be used
pt_BR_abnt.src:34: non-symbolic character value should not be used
pt_BR_abnt.src:35: non-symbolic character value should not be used
pt_BR_abnt.src:36: non-symbolic character value should not be used
pt_BR_abnt.src:37: non-symbolic character value should not be used
pt_BR_abnt.src:38: non-symbolic character value should not be used
pt_BR_abnt.src:39: non-symbolic character value should not be used
pt_BR_abnt.src:40: non-symbolic character value should not be used
pt_BR_abnt.src:41: non-symbolic character value should not be used
pt_BR_abnt.src:42: non-symbolic character value should not be used
pt_BR_abnt.src:43: non-symbolic character value should not be used
pt_BR_abnt.src:44: non-symbolic character value should not be used
pt_BR_abnt.src:49: non-symbolic character value should not be used
/usr/share/i18n/locales/iso14651_t1:3: non-symbolic character value should not be used
pt_BR_abnt.src:76: non-symbolic character value should not be used
/usr/share/i18n/locales/pt_PT:49: non-symbolic character value should not be used
/usr/share/i18n/locales/i18n:1425: non-symbolic character value should not be used
/usr/share/i18n/locales/i18n:1674: non-symbolic character value should not be used
/usr/share/i18n/locales/i18n:1719: non-symbolic character value should not be used
/usr/share/i18n/locales/i18n:1756: non-symbolic character value should not be used
/usr/share/i18n/locales/pt_PT:56: non-symbolic character value should not be used
/usr/share/i18n/locales/translit_neutral:10: non-symbolic character value should not be used
/usr/share/i18n/locales/translit_neutral:11: non-symbolic character value should not be used
/usr/share/i18n/locales/translit_neutral:12: non-symbolic character value should not be used
/usr/share/i18n/locales/translit_neutral:13: non-symbolic character value should not be used
/usr/share/i18n/locales/translit_neutral:14: non-symbolic character value should not be used
/usr/share/i18n/locales/translit_neutral:15: non-symbolic character value should not be used
/usr/share/i18n/locales/translit_neutral:16: non-symbolic character value should not be used
/usr/share/i18n/locales/translit_neutral:17: non-symbolic character value should not be used
LC_NAME: field `name_gen' not defined
LC_NAME: field `name_mr' not defined
LC_NAME: field `name_mrs' not defined
LC_NAME: field `name_miss' not defined
LC_NAME: field `name_ms' not defined
LC_ADDRESS: field `country_name' not defined
LC_ADDRESS: field `country_post' not defined
LC_ADDRESS: field `country_car' not defined
LC_ADDRESS: field `country_isbn' not defined
LC_ADDRESS: field `lang_name' not defined
LC_ADDRESS: field `lang_term' not defined
LC_ADDRESS: field `lang_ab' not defined
LC_IDENTIFICATION: field `audience' not defined
LC_IDENTIFICATION: field `application' not defined
LC_IDENTIFICATION: field `abbreviation' not defined
LC_IDENTIFICATION: no identification for category `LC_MEASUREMENT'
LC_CTYPE: table for class "upper": 1756 bytes
LC_CTYPE: table for class "lower": 1756 bytes
LC_CTYPE: table for class "alpha": 4320 bytes
LC_CTYPE: table for class "digit": 600 bytes
LC_CTYPE: table for class "xdigit": 600 bytes
LC_CTYPE: table for class "space": 856 bytes
LC_CTYPE: table for class "print": 5976 bytes
LC_CTYPE: table for class "graph": 5976 bytes
LC_CTYPE: table for class "blank": 856 bytes
LC_CTYPE: table for class "cntrl": 664 bytes
LC_CTYPE: table for class "punct": 4824 bytes
LC_CTYPE: table for class "alnum": 4320 bytes
LC_CTYPE: table for class "combining": 3152 bytes
LC_CTYPE: table for class "combining_level3": 2832 bytes
LC_CTYPE: table for map "toupper": 16924 bytes
LC_CTYPE: table for map "tolower": 15388 bytes
LC_CTYPE: table for map "totitle": 16924 bytes
LC_CTYPE: table for width: 26712 bytes

所以經過一番探勘後,我發現使用–quite,它只會報告致命錯誤,讓我可以毫無問題地編譯 pt_BR 語言環境。

引用自:https://unix.stackexchange.com/questions/208521