zoukankan      html  css  js  c++  java
  • SSH 登陆服务器locale告警(-bash: warning: setlocale:)的处理方法(转)

    使用ssh远程登陆 IDC机房服务器,发现老是出现如下告警信息

    -bash: warning: setlocale: LC_CTYPE: cannot change locale (en_US.UTF-8): No such file or directory
    -bash: warning: setlocale: LC_COLLATE: cannot change locale (en_US.UTF-8): No such file or directory
    -bash: warning: setlocale: LC_MESSAGES: cannot change locale (en_US.UTF-8): No such file or directory
    -bash: warning: setlocale: LC_NUMERIC: cannot change locale (en_US.UTF-8): No such file or directory
    -bash: warning: setlocale: LC_TIME: cannot change locale (en_US.UTF-8): No such file or directory
     

    原因分析:

    根据上面登录警告提示可知,系统已经设置了默认地区_语言.字符集为en_US.UTF-8,但是在系统中没有定义对应的locale文件,
    所以只需要手动生成这个locale文件即可!
     

    解决办法:

    root@centos6-vm01 ~]# vim /etc/environment         #添加下面两行内容
     LANG="en_US.UTF-8"
     LC_ALL=
    [root@centos6-vm01 ~]# source /etc/environment
     
    [root@centos6-vm01 ~]# vim /etc/sysconfig/i18n
    LANG="en_US.UTF-8"
    SYSFONT="latarcyrheb-sun16"
    [root@centos6-vm01 ~]# cat /etc/sysconfig/i18n
     
    然后执行下面命令,生成 en_US.UTF-8这个字符集的locale文件
    [root@centos6-vm01 ~]# localedef -v -c -i en_US -f UTF-8 en_US.UTF-8
     
    如上操作后,再次ssh登陆后就不会出现这条告警信息了。
     

    如果出现:-bash: warning: setlocale: LC_ALL: cannot change locale (zh_CN.UTF-8)

    解决办法
    [root@localhost ~]# vim /etc/sysconfig/i18n
    LANG="zh_CN.UTF-8" 
    LC_ALL="zh_CN.UTF-8"
    SYSFONT="latarcyrheb-sun16"
     
    第一行解决了中文乱码问题
    第二行解决了"LC_ALL: cannot change locale (zh_CN.UTF-8)"的问题。
     
    [root@localhost ~]# source /etc/sysconfig/i18n
     
    接着安装:
    [root@localhost ~]# yum install glibc-common kde-l10n-Chinese
     
    安装之后,重启服务器,上述问题消失。
     

    注意:不同类型的服务器配置方法会有差异,需要根据实际机器情况,多尝试一些方法,才能解决问题。

    =======================================================================

    也有可能是系统中的glibc和locale的库版本不兼容。
    解决办法删除locale库再重建一下,前提是你的文件系统中要有相应的数据文件。

    [root@localhost ~]# rm -f /usr/lib/locale/locale-archive
    [root@localhost ~]# localedef -i en_US -f ISO-8859-1 -A /usr/share/locale/locale.alias en_US
    [root@localhost ~]# localedef -i zh_CN -f GB2312 -A /usr/share/locale/locale.alias zh_CN
    [root@localhost ~]# yum -y reinstall glibc-common
     

    ======================================================================

    再看一个在centos7系统上使用/bin/sh或su命令出现的告警:warning: setlocale: LC_ALL: cannot change locale (zh_CN.UTF-8) ,解决办法如下(注意:这种方法针对的是centos7,centos6系统不一样):

    [root@uatblockchain04 ~]# locale
    locale: Cannot set LC_CTYPE to default locale: No such file or directory
    locale: Cannot set LC_MESSAGES to default locale: No such file or directory
    locale: Cannot set LC_ALL to default locale: No such file or directory
     
    在物理机上,只要执行:
    [root@localhost ~]# yum -y install kde-l10n-Chinese telnet
    [root@localhost ~]# yum -y reinstall glibc-common
     
    还需要修改:
    [root@localhost ~]# vim /etc/locale.conf 
    LC_ALL="zh_CN.UTF-8"
    [root@localhost ~]# source /etc/locale.conf
     
    ----------------------------------------------------------------------
    注意如果是在在Dockerfile里面执行的时候,就不太一样了:
    必须执行三个步骤才不会出错  
    yum -y install kde-l10n-Chinese telnet && 
    yum -y reinstall glibc-common &&
    yum clean all  && 
    localedef -c -f UTF-8 -i zh_CN zh_CN.utf8  && 
     
    或加上
    cat /dev/null > /etc/locale.conf && echo "LC_ALL="zh_CN.UTF-8"" > /etc/locale.conf
     
    这样才可以保证中文不会有问题。
     
    其中碰到一个情况:在基础镜像的再安装软件的时候再次碰到这个异常提示
     
    最后的处理方案是:dockerfile构建过程执行警告的地方后,再执行一次 
    localedef -c -f UTF-8 -i zh_CN zh_CN.utf8

    转自:https://www.cnblogs.com/kevingrace/p/8191929.html

     
    联系方式:emhhbmdfbGlhbmcxOTkxQDEyNi5jb20=
  • 相关阅读:
    Unlicensed ARC session – terminating!
    ArcGIS读取dem格式数据
    OCIEnvCreate 失败,返回代码为 -1的解决方法
    PowerDesigner设计的数据库 ORA-0092
    Oracle空间查询 ORA-28595
    PowerDesigner添加表注释
    C# 动态解析表达式
    远程桌面不能交互复制粘贴
    ArcGIS10.4 Runtime Error R6034
    ArcGIS Add-in ValidateAddInXMLTask”任务意外失败
  • 原文地址:https://www.cnblogs.com/zl1991/p/15184885.html
Copyright © 2011-2022 走看看