linux登入時候提示字符集有問題解決方法

2022-09-26 11:57:20 字數 1705 閱讀 8122

字符集報錯一直存在

locale: cannot set lc_ctype to default locale: no such file or directory

locale: cannot set lc_messages to default locaqbtezle: no such file or directory

locale: cannot set lc_all to default locale: no such file or directory

背景公司有台jenkins伺服器,因歷史原因一直使用centos6.5,突然登入時候提示字符集有問題,本人其實已經使用centos7很久,沒碰到過這樣問題,排查過程也一臉懵逼。

就是各種字符集報錯,設定無效,n天後經過不斷排查,發現為glibc導致,拍錯過程還發現不能使用2.15版本,我擦,趕緊記一下。

排錯過程

1.直接反應為字符集,百度查了多個文件,各種配置,各種更新外掛程式,就是不生效,再趕上手頭還有其他工作,也耽誤了幾天。

今天仔細想了一下,既然任何字符集都不生效,應該不是字符集問題,肯定載入過程出問題了,但是這幾天伺服器沒做啥工作啊,無聊翻了下百度,突然看到了glibc的相關帖子,然後繼續百度搜了一下,還真有別的哥們碰到過類似的,說編譯時候要加make localedwww.cppcns.comata/install-locales,了解辦法後趕緊嘗試。

2.系統預設是2.12,我因為有的外掛程式需求,我公升級到了2.14。我本想降到2.12,但是又一想,不如**個2.15,重新編譯,理論應該就都解決了。

3.網上找glibc-2.15資源,**,編譯,安裝,常規操作後,將/lib64/libc.so.6軟鏈結指向glibc-2.15,然後就又報錯了 illegal instruction (core dumped),系統也無法登陸了,趕緊修復 ld_preload=/lib64/libc-2.12.so ln -sf /lib64/libc-2.12.so /lib64/libc.so.6 先降會2.12,起碼字符集故障解決了,但是這樣不行啊,經過多次嘗試公升級2.15,最終還是失敗了,網上也沒找到相關解決辦法。

4.無奈,想是不是和系統相容問題,不放棄,又嘗試公升級2.17,依然常規操作,這次終於可以了。。。

具體過程

1.檢視系統glibc版本庫

strings /lib64/libc.so.6 |grep glibc_

發現最高到2.12,準備公升級到2.17,一定不要裝2.15程式設計客棧,我不程式設計客棧知道是不是我自己有問題,反正我裝不上

2.**安裝

進入**目錄/data/install,執行命令,具體不解釋了,都懂

wget

tar xvf glibc-2.17.tar.gz

mkdir glibc-build-2.17

cd glibc-build-2.17/

../glibc-2.17/configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin

make -j8 && make install && make localedata/install-locales

3.驗證

strings /lib64/libc.so.6 | grep glibc

都不用替換/lib64/libc.so.6檔案,而且檔案軟鏈結已指向glibc-2.17,完事了。

修改linux字符集

1 說明 windows的預設編碼為gbk,linux 的預設編碼為utf 8。在windows下編輯的中文,在linux下顯示為亂碼。為了解決此問題,修改linux的預設編碼為gbk。2 檢視支援的字符集 3 安裝英文版預設的字符集配置為 cat etc sysconfig i18n lang e...

Linux 字符集轉化

命令列 iconv list 檢視linux作業系統支援的字符集 iconv open 設定字符集轉化 iconv t iconv open const char tocode,const char fromcode 引數tocode目標字符集的字串 引數fromcode源字符集的字串 函式成功返回...

linux修改字符集

linux windows的預設編碼為gbk,linux的預設編碼為utf 8。在windows下編輯的中文,在linux下顯示為亂碼。為了解決此問題,修改linux的預設編碼為gbk 2 檢視支援的字符集 locale a 3 安裝英文版預設的字符集配置為 cat etc sysconfig i1...