gpt4 book ai didi

ruby - 在 Docker 中更改语言环境会停止执行许多命令?

转载 作者:太空宇宙 更新时间:2023-11-04 12:34:21 25 4
gpt4 key购买 nike

当我使用这个在 Dockerfile 中更改语言环境时,为什么会这样...:

ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8

...这样我就可以实现区域设置的更改...

LANG=  
LANGUAGE=
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=

..为此..

LANG=en_US.UTF-8  
LANGUAGE=en_US:en
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=en_US.UTF-8

然后我遇到问题,例如没有执行任何命令:

root@820760edeb77:/# irb
bash:irb:找不到命令

但如果我对语言环境进行这些更改,并在重建容器后将它们保持原样,那么一切都会按预期进行??:

# ENV LANG en_US.UTF-8
# ENV LANGUAGE en_US:en
# ENV LC_ALL en_US.UTF-8

root@820760edeb77:/# irb
2.3.1 :001 >

我不太确定是什么导致了这个问题,更改后的语言环境会阻止命令工作,但我怀疑这可能只是 Docker 容器中语言环境发生这种变化的副作用,并且可能不是真正的问题?

最佳答案

所以我想通了,原来我为 Docker 使用了错误的语言环境类型,这与这个问题有关here .

Cen_US 的一个小而重要的区别:

错误

ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8

正确

ENV LANG C.UTF-8
ENV LANGUAGE C.UTF-8
ENV LC_ALL C.UTF-8

谁能告诉我为什么 Docker 使用 C 作为语言环境,而不是 en_US 或任何其他语言环境?

现在 Ruby/irb 成功运行了(虽然,我的生命损失了 4 小时......)

关于ruby - 在 Docker 中更改语言环境会停止执行许多命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42386451/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com