locale
locale-archive
や /usr/share/locale
はそれぞれ102MBと89MBを消費しており、一般的に日本語と英語以外は使用する可能性は低いので他の言語は除去しても良いかもしれない。
glibc-common
言語ファイルは glibc-common
パッケージでインストールされている。
glibc-common
パッケージには GNU libc ライブラリ用の共通バイナリと各国語(ロケール)サポートが含まれる。 1
locale-archive のサイズ
du -h /usr/lib/locale/locale-archive
102M /usr/lib/locale/locale-archive
locale-archive のサイズを確認すると102MBある。
言語の確認
使用可能な言語の確認
localedef --list-archive | less
locale --all-locales | less
使用可能な言語は localedef --list-archive
または locale --all-locales
コマンドで確認ができる。
locale -a
は localedef --list
の結果に加えて C
と POSIX
が出力される。
残す言語の確認
localedef --list-archive | egrep --ignore-case "^(ja|en_US)"
en_US
en_US.iso88591
en_US.iso885915
en_US.utf8
ja_JP
ja_JP.eucjp
ja_JP.ujis
ja_JP.utf8
japanese
japanese.euc
英語と日本語以外を削除する場合の正規表現の確認。この結果を除外した一覧を作成して削除する。
不要な言語の削除
localedef --list-archive | egrep --invert-match --ignore-case "^(ja|en_US)" | xargs localedef --delete-from-archive && \
mv --force /usr/lib/locale/locale-archive{,.tmpl} && \
build-locale-archive --verbose
input archive file: /usr/lib/locale/locale-archive.tmpl
input alias file: /usr/share/locale/locale.alias
input locale directory prefix: /usr/lib/locale/
output archive file: /usr/lib/locale/locale-archive
先ほど作成した残す言語の一覧を除外した一覧を作成して xargs
で localedef --delete-from-archive
コマンドに渡した後に build-locale-archive
コマンドを実行すると削除される。
その際に locale-archive.tmpl
ファイルがないと build-locale-archive: cannot read archive header
とエラーが出るので、事前に locale-archive
を locale-archive.tmpl
にリネームする。
削除後の言語の確認
locale -a
C
POSIX
en_US
en_US.iso88591
en_US.iso885915
en_US.utf8
ja_JP
ja_JP.eucjp
ja_JP.ujis
ja_JP.utf8
japanese
japanese.euc
japanese.eucjp
locale-archive のサイズの再確認
du -h /usr/lib/locale/locale-archive
3.8M /usr/lib/locale/locale-archive
102MB から 3.8MB まで削減された。
/usr/share/locale
/usr/share/locale の容量
du -h --max-depth=1 /usr/share/locale | sort -hr | head
89M /usr/share/locale/
4.9M /usr/share/locale/uk
4.2M /usr/share/locale/fr
3.6M /usr/share/locale/de
3.5M /usr/share/locale/pl
3.5M /usr/share/locale/es
3.3M /usr/share/locale/sv
3.2M /usr/share/locale/vi
3.2M /usr/share/locale/ru
3.1M /usr/share/locale/ja
/usr/share/locale
配下のファイルは build-locale-archive
コマンドでは削除されない。
削除するメッセージカタログの確認
ls -1 /usr/share/locale | egrep -v "^(default|en|ja|locale)" | less
メッセージカタログの削除
cd /usr/share/locale && \
ls -1 /usr/share/locale | egrep -v "^(default|en|ja|locale)" | xargs rm -fr
du -h --max-depth=1 /usr/share/locale | sort -hr | head -n1
5.6M /usr/share/locale
89MB から 5.6MB まで削減された。
/usr/share/i18n/locales の容量
du -h --max-depth=1 /usr/share/i18n/locales
6.3M /usr/share/i18n/locales
/usr/share/man
du -h --max-depth=1 /usr/share/man | sort -hr | head
19M /usr/share/man
8.3M /usr/share/man/man1
3.5M /usr/share/man/man8
2.0M /usr/share/man/man3
1.5M /usr/share/man/man5
360K /usr/share/man/ru
324K /usr/share/man/man7
296K /usr/share/man/fr
272K /usr/share/man/ja
252K /usr/share/man/it
ls -1 /usr/share/man/ | egrep -v "^(en|ja|man)" | less
cd /usr/share/man/ && \
ls -1 /usr/share/man/ | egrep -v "^(en|ja|man)" | xargs rm -fr
du -h --max-depth=1 /usr/share/man | sort -hr | head -n1
16M /usr/share/man
/var/cache/man
du -h --max-depth=1 /var/cache/man | sort -hr | head
940K /var/cache/man
28K /var/cache/man/ru
24K /var/cache/man/fr
20K /var/cache/man/zh_TW
20K /var/cache/man/zh_CN
20K /var/cache/man/zh
20K /var/cache/man/tr
20K /var/cache/man/sv
20K /var/cache/man/sk
20K /var/cache/man/ro
du -h --max-depth=1 /usr/share/vim/vim74/lang/ | sort -hr | head
6.3M /usr/share/vim/vim74/lang/
216K /usr/share/vim/vim74/lang/ru
196K /usr/share/vim/vim74/lang/uk
188K /usr/share/vim/vim74/lang/ja
168K /usr/share/vim/vim74/lang/ru.cp1251
168K /usr/share/vim/vim74/lang/pl.UTF-8
168K /usr/share/vim/vim74/lang/it
168K /usr/share/vim/vim74/lang/fr
164K /usr/share/vim/vim74/lang/pl.cp1250
164K /usr/share/vim/vim74/lang/pl
別の方法
echo '%_install_langs en_US:ja' > /etc/rpm/macros.lang && \
yum --assumeyes reinstall glibc-common
Remi's RPM repository の Remi Collet が How remove unused locale? - Ask Fedora: Community Knowledge Base and Support Forum で「最近のディスク容量じゃ0.5GBくらいたいした問題じゃないけど」と言いつつ build-locale-archive
コマンドを使わない別の方法を提示している。
この方法でも locale-archive
ファイルのサイズ以外は特に影響がない模様。
空ディレクトリーの削除
find . -type d -empty | xargs rm -r && \
find . -type d -empty | xargs rm -r
- 日本語ロケールに ja_JP.SJIS を使用するように設定する - Knowledgebase - Red Hat Customer Portal
- ja_JP.UTF-8 と ja_JP.utf8 に違いはありますか? - Knowledgebase - Red Hat Customer Portal
-
"The glibc-common package includes common binaries for the GNU libc libraries, as well as national language (locale) support." - Description - glibc-common-2.17-260.el7_6.3.x86_64.rpm ↩