DELOGs
[サーバ構築編#4] Ubuntu初期設定-日本語化

サーバ構築編#4
Ubuntu初期設定-日本語化

Ubuntu Server 24.04.1LTSの言語設定の日本語化とシステム時間の日本時間ゾーン設定

初回公開日

最終更新日

サーバ構築編第4回はWebサーバの初期設定を続きを進めていきます。 Ubuntuの日本語化、ロケーション設定、システム時間の日本時間設定を行います。 日本語化について、別にやらなくてもいい作業になります。私は日本語の方がわかりやすいので行いました。
サーバ構築編第3回までで作成、設定した下記の内容を利用しますので、事前に用意してください。
  • 秘密鍵ファイルとパスフレーズ
  • WebサーバのグローバルIP
  • 管理ユーザとパスワード
  • sshのポート番号

1.Ubuntuの日本語化

手順は下記の通りです。
まずはSSHでサーバへ接続
bash
1ssh -p [ポート番号] -i "~/filename.pem" username@xxx.xxx.xxx.xxx
-pでポートを指定、xxxx.xxxx.xxx.xxxはサーバのグローバルIPです。
リポジトリを更新しておきます。
bash
1sudo apt update
準備完了です。

日本語言語パック & マニュアルページのインストール

下記のコマンドで、インストール
bash
1sudo apt install -y language-pack-ja manpages-ja manpages-ja-dev

システムのデフォルトロケールを更新

日本語言語パックとマニュアルページをインストールしただけでは、まだ日本語化はできません。 システムのデフォルトロケールを編集して、日本語を適用させます。
ロケール設定の編集
bash
1sudo vi /etc/default/locale
bash : locale
1LANG=ja_JP.UTF-8 2LANGUAGE=ja_JP:ja 3# 上記のように変更 4 5LC_ALL="en_US.UTF-8" <- これを削除
シンプルに下記のようにします。
bash : locale
1LANG=ja_JP.UTF-8 2LANGUAGE=ja_JP:ja
続いて、下記のコマンドで設定を適用させます。
bash
1# ロケールの適用 2source /etc/default/locale
本当はこれでもうOKのはずなのですが、私の場合はダメでした。。
現在のセッションで変更が反映されているか確認
bash
1locale
bash
1LANG=ja_JP.UTF-8 2LANGUAGE=ja_JP:ja 3LC_CTYPE="en_US.UTF-8" 4LC_NUMERIC="en_US.UTF-8" 5LC_TIME="en_US.UTF-8" 6LC_COLLATE="en_US.UTF-8" 7LC_MONETARY="en_US.UTF-8" 8LC_MESSAGES="en_US.UTF-8" 9LC_PAPER="en_US.UTF-8" 10LC_NAME="en_US.UTF-8" 11LC_ADDRESS="en_US.UTF-8" 12LC_TELEPHONE="en_US.UTF-8" 13LC_MEASUREMENT="en_US.UTF-8" 14LC_IDENTIFICATION="en_US.UTF-8" 15LC_ALL=en_US.UTF-8
LC_ALLの内容がどこかに残ってしまっていました。 私の環境ではユーザ毎に言語設定するような高尚なことはしていないので、
bash
1grep -r 'LC_ALL' /etc/profile /etc/bash.bashrc ~/.bashrc ~/.profile
などとしても何も見つかりません。 そこで、LC_ALLを一旦無効化してみました。
bash
1unset LC_ALL
bash
1#再度ロケールの状態を確認 2locale
日本語適用ができました!
bash
1LANG=ja_JP.UTF-8 2LANGUAGE=ja_JP:ja 3LC_CTYPE="ja_JP.UTF-8" 4LC_NUMERIC="ja_JP.UTF-8" 5LC_TIME="ja_JP.UTF-8" 6LC_COLLATE="ja_JP.UTF-8" 7LC_MONETARY="ja_JP.UTF-8" 8LC_MESSAGES="ja_JP.UTF-8" 9LC_PAPER="ja_JP.UTF-8" 10LC_NAME="ja_JP.UTF-8" 11LC_ADDRESS="ja_JP.UTF-8" 12LC_TELEPHONE="ja_JP.UTF-8" 13LC_MEASUREMENT="ja_JP.UTF-8" 14LC_IDENTIFICATION="ja_JP.UTF-8" 15LC_ALL=
一応、一度ログアウト(exit)して、再度SSH接続しても日本語ロケールが生きているか確認して問題ないことを確認しました。 下記のように適当にマニュアルを参照して日本語で説明文が出てくればOKです。
bash
1man ls

システム時間のタイムゾーンを確認

現状のタイムゾーン設定を確認
bash
1timedatectl status
すでに Asia/Tokyoタイムゾーンであれば、下記のようになります。
bash
1 Local time: 水 2025-03-12 14:01:38 JST 2 Universal time: 水 2025-03-12 05:01:38 UTC 3 RTC time: 水 2025-03-12 05:01:38 4 Time zone: Asia/Tokyo (JST, +0900) 5System clock synchronized: yes 6 NTP service: active 7 RTC in local TZ: no
もし、タイムゾーンが Asia/Tokyo以外の場合は、下記のコマンドで Asia/Tokyoに変更可能です。
bash
1sudo timedatectl set-timezone Asia/Tokyo

2.日本語化のまとめ

おそらく日本語化云々は、もうほとんどイジることがないので、備忘録として各種設定内容の詳細をまとめておきます。

localeの各項目の説明

項目説明現在の値
LANGシステム全体のデフォルト言語ja_JP.UTF-8(日本語)
LANGUAGEメッセージの優先言語(LANG より影響が強い)ja_JP:ja(日本語)
LC_CTYPE文字の分類(大文字小文字の区別、文字エンコーディング)ja_JP.UTF-8(日本語のUTF-8)
LC_NUMERIC数値の表示形式(小数点 . or , の違いなど)ja_JP.UTF-8(1,000.50 の形式)
LC_TIME日付・時刻の表示形式ja_JP.UTF-8(2025年3月12日(水)など)
LC_COLLATE文字列の並び順(ソートのルール)ja_JP.UTF-8(日本語の並び順)
LC_MONETARY通貨の表示形式ja_JP.UTF-8(¥1,000 のような形式)
LC_MESSAGESシステムメッセージの言語(エラーメッセージなど)ja_JP.UTF-8(日本語で表示)
LC_PAPER用紙サイズのデフォルト設定ja_JP.UTF-8(A4が標準)
LC_NAME人名の表記ルール(文化依存)ja_JP.UTF-8(日本語表記)
LC_ADDRESS住所表記のルールja_JP.UTF-8(日本の住所形式)
LC_TELEPHONE電話番号のフォーマットja_JP.UTF-8(日本の電話番号形式)
LC_MEASUREMENT測定単位(メートル法 or インチ・ポンド)ja_JP.UTF-8(メートル法)
LC_IDENTIFICATIONロケールの識別情報(ほぼ影響なし)ja_JP.UTF-8
LC_ALLすべてのロケール設定を上書きする(空なら個別設定が有効)空欄(問題なし!)

timedatectl status の確認ポイント

項目説明現在の値
Local timeシステムの現在時刻(日本時間)2025-03-12 14:01:38 JST
Universal time (UTC)世界標準時(UTC)2025-03-12 05:01:38 UTC
RTC timeハードウェアクロックの時刻(通常UTC)2025-03-12 05:01:38
Time zone設定されたタイムゾーンAsia/Tokyo (JST, +0900)
System clock synchronizedNTP(時刻同期)が動作しているかyes → 時刻ズレなし!
NTP serviceNTPサービスが有効かactive → 正確な時刻を維持!
RTC in local TZハードウェアクロック(RTC)がローカルタイムかno(通常は no でOK)
続きはこちら...
前回の確認はこちら...
この記事の執筆・編集担当
DE

松本 孝太郎

DELOGs編集部/中年新米プログラマー

ここ数年はReact&MUIのフロントエンドエンジニアって感じでしたが、Next.jsを学んで少しずつできることが広がりつつあります。その実践記録をできるだけ共有していければと思っています。