これは、なにをしたくて書いたもの?
最近、手元のOSをUbuntu Linux 22.04 LTSから24.04 LTSにアップグレードしました。今後はこのブログで扱うOSもUbuntu Linux 24.04 LTSに
切り替えていこうと思います。
今回はVagrantで使っているBoxの日本語化です。
こちらのエントリーの24.04 LTS版を書いていこうと思います。
Vagrantで使っているUbuntu Linux 22.04 LTSを日本語化する - CLOVER🍀
Vagrantで使っているUbuntu Linux 20.04を日本語化する - CLOVER🍀
使用するBoxは、ふだんならこちらの後継を使うのですが。
どうやらUbuntu LinuxではVagrantのイメージを提供しなくなったようです。ubuntu/noble64
みたいなものもありません。
Starting in Ubuntu 24.04, Ubuntu no longer produces Vagrant images.
候補はこのあたりです。
今回はcloud-image/ubuntu-24.04
にすることにしました。
環境
今回の環境はこちら。
$ vagrant version Installed Version: 2.4.3 Latest Version: 2.4.3 You're running an up-to-date version of Vagrant! $ vagrant plugin list vagrant-libvirt (0.12.2, global)
使用するBoxのバージョン。
$ vagrant box list | grep 24.04 cloud-image/ubuntu-24.04 (libvirt, 20240822.0.0, (amd64))
仮想マシンの起動と初期状態
まずはvagrant init
からSSH接続まで。
$ vagrant init cloud-image/ubuntu-24.04 $ vagrant up $ vagrant ssh
パッケージの最新化をしておきます。
$ sudo apt update && sudo apt upgrade -y
1度仮想マシンから出て再起動。
$ vagrant reload
現状確認。
$ uname -srvmpio Linux 6.8.0-49-generic #49-Ubuntu SMP PREEMPT_DYNAMIC Mon Nov 4 02:06:24 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux $ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 24.04.1 LTS Release: 24.04 Codename: noble
$ date Sat Nov 23 06:35:49 UTC 2024
ロケール。
$ env | grep LANG LANG=C.UTF-8 $ locale LANG=C.UTF-8 LANGUAGE= LC_CTYPE="C.UTF-8" LC_NUMERIC="C.UTF-8" LC_TIME="C.UTF-8" LC_COLLATE="C.UTF-8" LC_MONETARY="C.UTF-8" LC_MESSAGES="C.UTF-8" LC_PAPER="C.UTF-8" LC_NAME="C.UTF-8" LC_ADDRESS="C.UTF-8" LC_TELEPHONE="C.UTF-8" LC_MEASUREMENT="C.UTF-8" LC_IDENTIFICATION="C.UTF-8" LC_ALL=
使えるロケールの一覧。
$ locale -a C C.utf8 POSIX en_US.utf8
タイムゾーンの設定。
$ cat /etc/timezone Etc/UTC $ ll /etc/localtime lrwxrwxrwx 1 root root 27 Aug 22 08:36 /etc/localtime -> /usr/share/zoneinfo/Etc/UTC
Asia/Tokyo
タイムゾーンはあります。
$ timedatectl list-timezones | grep Asia/Tokyo Asia/Tokyo
manページの状態。
$ man grep GREP(1) User Commands GREP(1) NAME grep, egrep, fgrep, rgrep - print lines that match patterns SYNOPSIS grep [OPTION...] PATTERNS [FILE...] grep [OPTION...] -e PATTERNS ... [FILE...] grep [OPTION...] -f PATTERN_FILE ... [FILE...] DESCRIPTION grep searches for PATTERNS in each FILE. PATTERNS is one or more patterns separated by newline characters, and grep prints each line that matches a pattern. Typically PATTERNS should be quoted when grep is used in a shell command. A FILE of “-” stands for standard input. If no FILE is given, recursive searches examine the working directory, and nonrecursive searches read standard input. 〜省略〜
apt show
を見た時の状態。
$ apt show grep Package: grep Version: 3.11-4build1 Priority: required Essential: yes Section: utils Origin: Ubuntu Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> Original-Maintainer: Anibal Monsalve Salazar <anibal@debian.org> Bugs: https://bugs.launchpad.net/ubuntu/+filebug Installed-Size: 352 kB Provides: rgrep Pre-Depends: libc6 (>= 2.38), libpcre2-8-0 (>= 10.32) Conflicts: rgrep Homepage: https://www.gnu.org/software/grep/ Task: minimal Download-Size: 162 kB APT-Manual-Installed: yes APT-Sources: http://archive.ubuntu.com/ubuntu noble/main amd64 Packages Description: GNU grep, egrep and fgrep 'grep' is a utility to search for text in files; it can be used from the command line or in scripts. Even if you don't want to use it, other packages on your system probably will. . The GNU family of grep utilities may be the "fastest grep in the west". GNU grep is based on a fast lazy-state deterministic matcher (about twice as fast as stock Unix egrep) hybridized with a Boyer-Moore-Gosper search for a fixed string that eliminates impossible text from being considered by the full regexp matcher without necessarily having to look at every character. The result is typically many times faster than Unix grep or egrep. (Regular expressions containing backreferencing will run more slowly, however.)
日本語化
それでは日本語化していきます。
日本語言語パックのインストール。
$ sudo apt install language-pack-ja ### または $ sudo locale-gen ja_JP.UTF-8
ロケールの一覧にja_JP.utf8
が追加されました。
$ locale -a C C.utf8 POSIX en_US.utf8 ja_JP.utf8
LANG
およびLANGUAGE
環境変数の設定。
$ export LANG=ja_JP.UTF-8 $ export LANGUAGE=ja_JP:
環境変数で変更した場合は、即座に現在のシェルに反映されます。
システム全体のロケールを変更する場合。
$ sudo update-locale LANG=ja_JP.UTF-8 LANGUAGE=ja_JP: ### または $ sudo localectl set-locale LANG=ja_JP.UTF-8 LANGUAGE=ja_JP:
この場合、シェルに再ログインすると日本語化されます。
$ env | grep LANG LANGUAGE=ja_JP: LANG=ja_JP.UTF-8 $ localectl System Locale: LANG=ja_JP.UTF-8 LANGUAGE=ja_JP: VC Keymap: (unset) X11 Layout: us X11 Model: pc105 $ locale LANG=ja_JP.UTF-8 LANGUAGE=ja_JP: LC_CTYPE="ja_JP.UTF-8" LC_NUMERIC="ja_JP.UTF-8" LC_TIME="ja_JP.UTF-8" LC_COLLATE="ja_JP.UTF-8" LC_MONETARY="ja_JP.UTF-8" LC_MESSAGES="ja_JP.UTF-8" LC_PAPER="ja_JP.UTF-8" LC_NAME="ja_JP.UTF-8" LC_ADDRESS="ja_JP.UTF-8" LC_TELEPHONE="ja_JP.UTF-8" LC_MEASUREMENT="ja_JP.UTF-8" LC_IDENTIFICATION="ja_JP.UTF-8" LC_ALL=
タイムゾーンの変更。
$ sudo timedatectl set-timezone Asia/Tokyo
date
コマンドの結果が変わりました。
$ date 2024年 11月 23日 土曜日 15:44:16 JST
/etc/timezone
は変わりませんね…。
$ cat /etc/timezone Etc/UTC
/etc/localtime
には反映されたようです。
$ ll /etc/localtime lrwxrwxrwx 1 root root 30 11月 23 15:43 /etc/localtime -> /usr/share/zoneinfo/Asia/Tokyo
日本語manページのインストール。
$ sudo apt install manpages-ja manpages-ja-dev
manページが日本語化されました。
$ man grep GREP(1) GREP(1) 名前 grep, egrep, fgrep - パターンにマッチする行を表示する 書式 grep [OPTIONS] PATTERN [FILE...] grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...] 説明 grep は FILE で名前を指定されたファイルを検索して、与えられた PATTERN にマッチする部分を含む行を探します。 ファイルが指定されていない場合や、 ファイル名の代 わりに 1 個のマイナス記号 “-” が指定されている場合は、 grep は標準入力から検索します。 デフォルトでは、 grep はマッチした行を表示します。 さらに、兄弟プログラム egrep と fgrep は、それぞれ grep -E と grep -F と同じです。 これらの兄弟プログラムは非推奨ですが、後方互換性のために用意されています。 オプション 〜省略〜
apt
も日本語表示します。
こんなファイルを作成して
/etc/apt/apt.conf.d/99translations
Acquire::Language "ja_JP";
apt update
$ sudo apt update
日本語化されました。
$ apt show grep Package: grep Version: 3.11-4build1 Priority: required Essential: yes Section: utils Origin: Ubuntu Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> Original-Maintainer: Anibal Monsalve Salazar <anibal@debian.org> Bugs: https://bugs.launchpad.net/ubuntu/+filebug Installed-Size: 352 kB Provides: rgrep Pre-Depends: libc6 (>= 2.38), libpcre2-8-0 (>= 10.32) Conflicts: rgrep Homepage: https://www.gnu.org/software/grep/ Task: minimal Download-Size: 162 kB APT-Manual-Installed: yes APT-Sources: http://archive.ubuntu.com/ubuntu noble/main amd64 Packages Description: GNU grep, egrep, fgrep 'grep' はファイル内の文字列を検索するユーティリティです。コマンドラインか ら、またスクリプトから使用できます。あなたが使用しないとしても、おそらくあ なたのシステムにある他のパッケージが使用するでしょう。 . grep ユーティリティの GNU ファミリは "西洋最速の grep" かもしれません。GNU grep は、高速な遅延状態決定性照合器 (元祖 Unix の egrep より約 2 倍速い) を 元に固定長文字列に対して Boyer-Moore-Gosper 検索を併用し、一致するはずのな い文字列を完全正規表現照合器で除いており、不必要なすべての文字の探索はしな いようになっています。このため、一般には Unix の grep や egrep より数倍高速 です (しかし後方参照を含む正規表現では他より遅くなるでしょう)。
ちなみに、以下でも可です。
$ sudo LANG=ja_JP.UTF-8 apt update
apt update
での日本語情報取得結果。
$ ll /var/lib/apt/lists/*-ja -rw-r--r-- 1 root root 1838294 4月 26 2024 /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble_main_i18n_Translation-ja -rw-r--r-- 1 root root 22549 4月 26 2024 /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble_multiverse_i18n_Translation-ja -rw-r--r-- 1 root root 9876790 4月 26 2024 /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_noble_universe_i18n_Translation-ja
こんなところでしょうか。
おわりに
Ubuntu Linux 24.04 LTSを日本語化してみました。
概ねUbuntu Linux 22.04 LTSと同じ方法で日本語化できましたが、少し違いもあったのでこうやってバージョンアップの度に確認してみるのが
大事ですね。