Linuxにログインする際の文字セットの問題を解決する方法

Linuxにログインする際の文字セットの問題を解決する方法

文字セットエラーは常に存在する

ロケール: LC_CTYPE をデフォルト ロケールに設定できません: そのようなファイルまたはディレクトリはありません
ロケール: LC_MESSAGES をデフォルトのロケールに設定できません: そのようなファイルまたはディレクトリはありません
ロケール: LC_ALL をデフォルト ロケールに設定できません: そのようなファイルまたはディレクトリはありません

背景

会社にはJenkinsサーバーがあります。歴史的な理由により、CentOS 6.5を使用しています。突然、ログイン時に文字セットに問題があるというメッセージが表示されました。実は私は長い間CentOS 7を使用してきましたが、このような問題は一度もありませんでした。トラブルシューティングのプロセス中にも混乱しました。

さまざまな文字セットエラーや無効な設定がありました。n日間調査を続けた後、glibcが原因であることがわかりました。エラーを撮影する過程で、バージョン2.15が使用できないこともわかりました。しまった、すぐにメモしました。

トラブルシューティングのプロセス

1. 直接的な対応は文字セットでした。Baidu の複数のドキュメント、さまざまな設定、さまざまな更新プラグインを確認しましたが、機能しませんでした。さらに、手元に他の作業があったため、数日間遅れました。

今日、じっくり考えてみました。どの文字セットも有効ではないので、文字セットの問題ではないはずです。読み込みプロセスに問題があるに違いありません。しかし、サーバーはここ数日何もしていません。退屈してBaiduを閲覧しました。突然、glibcに関連する投稿を見ました。それからBaiduの検索を続けました。本当に他にも同様の問題に遭遇した人がいます。彼らは、コンパイル時にmake localedata/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バージョンライブラリを確認する

文字列 /lib64/libc.so.6 |grep GLIBC_

最高は 2.12 であることがわかったので、2.17 にアップグレードするつもりです。2.15 はインストールしないでください。私のせいかどうかわかりませんが、とにかくインストールできません。

2.ダウンロードしてインストールする

ダウンロードディレクトリ/data/installに入り、コマンドを実行します。詳細は説明しません。理解していただけると思います。

https://ftp.gnu.org/gnu/glibc/glibc-2.17.tar.gz をダウンロードしてください

tar xvf glibc-2.17.tar.gz

glibc-build-2.17 を mkdir します

glibc-build-2.17/ をインストールします

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

-j8 を作成し、インストールし、localedata/install-locales を作成します。

3. 検証

文字列 /lib64/libc.so.6 | grep GLIBC

/lib64/libc.so.6 ファイルを置き換える必要はなく、ファイルのソフトリンクはすでに glibc-2.17 を指しているので、これで完了です。

上記はいずれも関連する知識ポイントです。私たちがまとめた内容が皆様のお役に立てれば幸いです。

以下もご興味があるかもしれません:
  • Linux 上の MySQL 5.5/5.6 で文字セットのエンコーディングを UTF8 に変更する方法

<<:  MySQL の完全なデータベース バックアップからデータベースとテーブルを復元する方法

>>:  mysql-8.0.15-winx64 解凍バージョンのインストールチュートリアルと終了する 3 つの方法

推薦する

Tomcatの再構成後に起動が遅くなる問題を迅速に解決

Jenkins+Tomcatサーバーの設定中に、Tomcat設定ファイルが変更され、サーバーのTom...

CSSは、入力ボックスのフローティングテキスト効果を実現するために、placeholder-shown疑似クラスを使用します。

この記事では、:placeholder-shown 疑似クラスを使用して、純粋な CSS で浮動疑問...

VMware ESXi6.7 の簡単なセットアップ(画像とテキスト付き)

1. VMware vSphere の概要VMware vSphere は、業界をリードする最も信...

Ubuntu Server のターミナルのウェルカム メッセージで広告を無効にする方法

最新の Ubuntu Server バージョンを使用している場合、ようこそメッセージに、Ubuntu...

CSS 8 目を引く HOVER 効果のサンプル コード

1. エフェクトHTMLを送信する <div id="送信ボタン">...

MySQL 5.7.17 とワークベンチのインストールと設定のグラフィックチュートリアル

この記事では、MySQL 5.7.17ワークベンチのインストールと設定方法を参考までに紹介します。具...

div+cssとウェブ標準ページの利点

div 要素は、HTML ドキュメント内のブロックレベル コンテンツの構造と背景を提供するために使用...

他の人が私のウェブページを保存したり、サイトをコピーしたりするのを防ぐためのヒント

現在、インターネット上でウェブサイトをコピーすることは非常に一般的です。では、他人が私たちのウェブサ...

MySQL で 1000 万件のレコードをすばやくクエリする方法

目次通常のページングクエリ最適化する方法大きなオフセット使用ID制限大量データ問題の最適化通常のペー...

Echatsチャートの大画面適応を実装する方法

目次説明する成し遂げるプロジェクトのディレクトリ構造は次のとおりです。効果図は以下のとおりです要約す...

Linux 3.X/4.x/5.x でパゴダ パネルのパスワードを忘れた場合の解決方法

ssh に入り、次のコマンドを入力してパスワードをリセットします (コマンドの末尾の「testpas...

Navicat 8でMySQL用のデータベースを作成する方法

ウェブサイトを開発する場合、データを保存するためにデータベースを使用する必要があることがよくあります...

React onClickにパラメータを渡す問題について話しましょう

背景下のようなリストでは、削除ボタンをクリックすると削除操作を実行する必要があります。 リスト生成:...

Linux での SSH 非秘密通信の実装

SSHとは何か管理者はリモートでログインして、インターネット経由で接続されたさまざまな場所にある複数...

Ubuntu の Python で C/C++ メソッドを呼び出すダイナミック リンク ライブラリの詳細な説明

ブーストをインストールPython から C/C++ を呼び出す方法はたくさんあります。この記事では...