刚刚给gitolite添加用户,又见到了下面的错误:
1 | perl: warning: Setting locale failed. |
以前觉得烦,就没去管,这下好了,不光本机这问题,阿里云的ECS也这问题!
是到了该下决心弄一下的时候了!
先脑补了基础知识:locale的设定及其LANG、LC_ALL、LANGUAGE环境变量的区别
然后开始具体操作。
首先按照网上很多人建议的传统方法编辑.bashrc文件,在最后加上export LC_ALL=C
然后应用资源文件:source ~/.bashrc
很多人的问题到这一步就能解决,但由于阿里云的ECS作为云服务器,资源占用是比较重要的一个指标,默认是不给用户提供那么多locale的,所以这一步行到这里行不通。
根据上面脑补的文章内容对情况进行判断,问题应该出在LC_ALL环境变量和zh_CN.UTF-8这个locale上!
那么开始,先把.bashrc文件中的输出变量语句内容改成:export LC_ALL='zh_CN.UTF-8'
我们不用C进行poxis传递了,直接明了指定使用zh_CN.UTF-8,然后应用资源:source ~/.bashrc
现在系统提示变成了:LC_ALL: cannot change locale
哦,没找到这个locale,这好办:
1 | sudo locale-gen zh_CN.UTF-8 |
使用管理员权限,给系统重新生成zh_CN.UTF-8这个locale,然后更新。
这之后我们再次应用资源文件:source ~/.bashrc
无错误,直接返回,然后测试了一下重新push gitolite的keydir到ECS,无错误提示,这下不烦了~