2014-12-04 48 views

回答

16

我建議在Vagrantfile

Vagrant.configure(2) do |config| 

    config.vm.box = "ubuntu/vivid64" 

    ENV['LC_ALL']="en_US.UTF-8" 

end 

的變化重寫主機的語言環境是不可見的流浪外部(主機ENV變量保持不變)

+0

請給你的答案添加一些解釋。代碼只有答案一般認爲是低質量 – Tristan 2016-01-04 01:41:26

+0

很好的答案!我會檢查並接受它,如果它工作 – kharandziuk 2016-01-04 09:45:38

+0

我想它的工作。但有一個問題:ENV ['LC_ALL'] =「en_US.UTF-8」'是否最終會改變主機上的某些東西? – kharandziuk 2016-01-04 09:58:56

1

當連接到我的Vagrant Ubuntu機箱時,我在OSX上遇到了同樣的問題(該解決方案與Linux類似)。

# SendEnv LANG LC_* 

這基本上是從發送LANGLC_ALL(所有LC_變量)到遠程停止ssh

我簡單地通過編輯/etc/ssh_config(或/etc/ssh/ssh_config在Linux上)和註釋以下行「解決」它主機,從而導致使用框上的默認值。在這種情況下,en_US.UTF-8

顯然這將導致您的遠程連接始終使用默認的語言環境,這可能不是您想要的。

我相信你也可以設置每個主機的SSH偏好,但從來沒有這樣做。我對此感興趣,可能值得期待。

1

我的回答:我只是添加一行來我ansible劇本。但它不是唯一的方面回答流浪

- name: set locale 
    lineinfile: dest=/etc/default/locale line="LC_ALL=C" 
0
LC_ALL=en_US.UTF-8 
LC_CTYPE=en_US.UTF-8 

通過無業遊民

0

正確的方法將這些行添加到虛擬機的〜/ .bash_profile中,並重新啓動虛擬機是配置虛擬機中的ssh守護進程不接受這個環境變量。如果您使用泊塢作爲供應者,你可以把你的Dockerfile

$ cat /etc/ssh/sshd_config | grep AcceptEnv 
# AcceptEnv LANG LC_* 

sed -i 's/AcceptEnv/# AcceptEnv/' /etc/ssh/sshd_config 

修改您的開發環境中的文件/etc/ssh/sshd_config和發表意見AcceptEnv線這樣的還需要生成並設置默認語言環境。你可以這樣做:

# Set the locale 
ENV LANG en_US.UTF-8 
RUN locale-gen en_US.UTF-8 && update-locale LANG=en_US.UTF-8