博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
vnc, vncserver, ssh的locale问题
阅读量:2134 次
发布时间:2019-04-30

本文共 1104 字,大约阅读时间需要 3 分钟。

今天被服务器端的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_*到远程计算机。

(还是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就不再报错了。

大半夜了,不写那么细了,因为我真的困了。

转载地址:http://nsugf.baihongyu.com/

你可能感兴趣的文章
Linux下perf性能测试火焰图只显示函数地址不显示函数名的问题
查看>>
c结构体、c++结构体和c++类的区别以及错误纠正
查看>>
Linux下查看根目录各文件内存占用情况
查看>>
A星算法详解(个人认为最详细,最通俗易懂的一个版本)
查看>>
利用栈实现DFS
查看>>
逆序对的数量(递归+归并思想)
查看>>
数的范围(二分查找上下界)
查看>>
算法导论阅读顺序
查看>>
Windows程序设计:直线绘制
查看>>
linux之CentOS下文件解压方式
查看>>
Django字段的创建并连接MYSQL
查看>>
div标签布局的使用
查看>>
HTML中表格的使用
查看>>
(模板 重要)Tarjan算法解决LCA问题(PAT 1151 LCA in a Binary Tree)
查看>>
(PAT 1154) Vertex Coloring (图的广度优先遍历)
查看>>
(PAT 1115) Counting Nodes in a BST (二叉查找树-统计指定层元素个数)
查看>>
(PAT 1143) Lowest Common Ancestor (二叉查找树的LCA)
查看>>
(PAT 1061) Dating (字符串处理)
查看>>
(PAT 1118) Birds in Forest (并查集)
查看>>
数据结构 拓扑排序
查看>>