vnc, vncserver, ssh的locale问题
来源:互联网 发布:真空上街 知乎 编辑:程序博客网 时间:2024/05/18 19:21
今天被服务器端的locale搞死了。
故事是这样的。本来,用Windwos上的git bash,对就是git bash来登录远程ubuntu服务器,配置的VNC server,启动一个gnome的桌面,外加一个gnome-termial。一切都是那么美好啊。然后我用一个Linux系统,ssh到同一台服务器,做了一些工作,然后要reboot。reboot了以后,重新开VNC server发现gnome-terminal起不来。
用gnome自带的xterm试着启动gnome-terminal发现报status 9错误。同时在启动VNC server时perl报了locale错误。于是认为是服务器的locale有问题导致的。于是设定了服务器的LANG和LANGUAGE都为en_US.UTF-8。而且还是尝试了诸如locale-gen,localectl set-locale之类的方法,都不能解决gnome-ternimal启动失败的问题,但是报错信息变成了status 8。
又查了一下,status 8就是代表locale设置有问题,最后列出服务器上的locale,发现locale设定与本机是相同的,于是看到网友说,ssh登录时会默认发送本地的LANG和LC_*到远程计算机。
https://stackoverflow.com/questions/2499794/how-to-fix-a-locale-setting-warning-from-perl
(还是stackoverflow saves my ass......)
于是注释掉了本地/etc/ssh/ssh_config中的SendEnv LANG LC_*
又修改了服务器端的默认locale设置,修改方法比较粗暴,就是改了以下文件
/etc/default/locale
/etc/environment
~/.profile
~/.bashrc
但是之后服务器上的locale变成了
LANG=en_US.UTF-8LANGUAGE=en_US.UTF-8LC_CTYPE="C"LC_NUMERIC="C"LC_TIME="C"LC_COLLATE="C"LC_MONETARY="C"LC_MESSAGES="C"LC_PAPER="C"LC_NAME="C"LC_ADDRESS="C"LC_TELEPHONE="C"LC_MEASUREMENT="C"LC_IDENTIFICATION="C"LC_ALL=C
非常不解,花了好久时间琢磨为什么LC_CTYPE之类的都是"C"。试了好多方法都不行,最后发现是LC_ALL设定为C造成的。将LC_ALL设定为en_US.UTF-8之后,locale变正常了。再启动gnome-terminal就不再报错了。
大半夜了,不写那么细了,因为我真的困了。
- vnc, vncserver, ssh的locale问题
- vnc无法连接vncserver的问题
- 树莓派VNC搭建相关教程 Ubuntu16.04的vncserver连接灰屏问题!
- vnc vncserver 远程连接
- Linux下VNCServer配置与win下的VNC客户端
- vncserver 使用遇到的问题
- vs2005 std::locale 的问题
- std::locale::global 的问题
- Debian 下的 locale问题
- 解决locale error 的问题
- 树莓派上手实战之SSH下配置VNC服务器实现远程桌面(可以实现开机自启动vncserver)
- SSH、VNC
- VNC 的问题
- 解决vncserver看不到桌面的问题
- CentOS7 上安装vncserver遇到的问题
- VNC通过putty加密通道连接VNCserver
- vnc操作使用指南----开启多个VNCserver
- locale问题
- 列表页面传递一个id给对应的详情页面(做项目时的简单总结)
- Linux静态库和动态库
- 企业实战之Spring拦截器《解决跨域问题》
- 从c语言中常用变量的生命周期,作用域,默认值,内存区域及链接属性
- vue.js 表单控件 输入绑定 v-model的使用
- vnc, vncserver, ssh的locale问题
- 大型网站技术架构
- 升级OSX High Sierra 10.13遇到一些问题及解决方法
- linux socket网络编程实例
- 自制ToolBox,支持自由展开多组
- typedef
- [C++技巧篇1]enable_if,lambda
- string相关的函数
- 结构体的大小