OSGeo-Live 8.0の日本語化
FOSS4G 2014 Tokyo
2014年11月1日(土) 15:00~東大駒場リサーチキャンパスAn棟
羽鳥 健太郎
【緊急】サーバ攻撃のご報告と パスワード変更のお願い
● 本Webサイト(openstreetmap.jp)では、コンテンツコンテンツ管理ソフトウエア(CMS)のDrupalを使用しています。
● 10月15日に発表されましたDrupalにおける極めて高い脆弱性の情報および修正情報につきまして、即日対応できず、対応が遅れました。
● その結果、本サイトに対する攻撃を許し、Webサイトのコンテンツ・ユーザ管理権限を奪取されるに至りました。
● 10月25日より、本サイトを停止し、新規Webサイトを再構築し、提供することを決定、本日(11月1日)再開いたします。
https://openstreetmap.jp/node/744?utm_medium=twitter&utm_source=twitterfeed
5
OSGeo-Live日本語化の背景
● SlackwareベースのLive版の日本語化● Slax/Porteus
● Debian/UbuntuベースのLive版に挑戦● OSGeo-Live7.9(ちょっと古い)● 日本語入力ができない● Remastersysで自動化してるのか● Ubuntuで手動方法が解説● トライ&エラーでやってみたら成功● 日本語環境でOSGeo-Live7.9が利用
6
OSGeo-Live8.0がリリース
8
OSGeo-Live8.0での印象
● 各国語対応の数が増えた● 英語表記の部分が増えた● 起動直後の言語&キーボード選択が面倒● やっぱり日本語入力できない● 日本語フォントが間延びして美しくない
10
基本的な作業工程
1. 必要なツールのインストール
2. CDの.isoの内容を抽出
3. デスクトップ・システムを抽出
4. 準備とchroot
5. カスタマイズ
6. デフォルトのキーボードの変更
7. クリーンアップ
8. gfxbootのデフォルト言語を変更
9. isoイメージの作成
11
必要なツールのインストール
● 作業環境はできるだけベースと同じ● OSGeo-Live8.0:Lubuntu14.04LTS● 自分の環境:Ubuntu14.04LTS
● 必要なパッケージをインストール
$ sudo apt-get install squashfs-tools genisoimage
12
CDの.isoの内容を抽出
● 作業ディレクトリを作って抽出
$ mkdir livecdtmp
$ cd livecdtmp
$ mv ~/Donwload/osgeo-live-8.0.iso .
$ mkdir mnt
$ sudo mount -o ro,loop osgeo-live-8.0.iso mnt
$ mkdir extract-cd
$ rsync --exclude=/casper/filesystem.squashfs -a mnt/ extract-cd
13
デスクトップ・システムを抽出
● 圧縮してあるファイルを解凍
$ sudo unsquashfs mnt/casper/filesystem.squashfs
$ sudo mv squashfs-root edit
14
準備とchroot
● 解凍した環境を変更するための下準備
$ cp /etc/resolv.conf edit/etc/
$ cp /etc/hosts edit/etc/
$ sudo mount --bind /dev/ edit/dev
$ sudo chroot edit
# mount -t proc none /proc
# mount -t sysfs none /sys
# mount -t devpts none /dev/pts
# export HOME=/root
# export LC_ALL=C
15
カスタマイズ(1)
● パッケージをアップグレードして日本語環境をインストール・設定
# apt-get update
# apt-get upgrade
# apt-get install ibus-mozc im-config
# locale-gen ja_JP.UTF-8
# update-locale LANG=ja_JP.UTF-8 LANGUAGE=ja_JP.UTF-8 LC_ALL=ja_JP.UTF-8
# export LANG=ja_JP.UTF-8
16
カスタマイズ(2)
● 日本語・英語以外の言語パックを削除
# dpkg -l | grep language-pack
# apt-get purge language-pack-hoge
注)言語数が多いので丹念に削除
● 日本語の言語パックを追加
# apt-get install language-pack-gnome-ja-base
# apt-get install language-pack-gnome-ja
# apt-get install firefox-locale-ja
17
カスタマイズ(3)
● 次のディレクトリ以下にある.desktopまたは.directoryファイルを日本語訳を追加● /etc/skel/Desktop● /usr/share/applications● /usr/share/desktop-directories
# vi hoge.desktop
# vi hoge.directory
Name[ja]=hogehoge を追加
注)あまりに多いのでちょっと手抜き (^^ゞ
18
カスタマイズ(4)
● /local/share/osgeo-desktop/welcome_message-ja.txt に日本語訳を追加
# vi welcome_message-ja.txt
注)Google翻訳にほとんど手伝ってもらいました (^^ゞ
● /etc/skel にもあるのでとりあえずコピー
19
カスタマイズ(5)
● usr/local/share/osgeo-desktop/welcome_message.sh を編集
# vi welcome_message.sh
if [ "$LANG" = "ja_JP.UTF-8" ] ; then
gxmessage -file /usr/local/share/osgeo-desktop/welcome_message-ja.txt -title "ようこそ" -center
else
gxmessage -file /usr/local/share/osgeo-desktop/welcome_message.txt -title "Welcome" -center
fi
20
デフォルトのキーボードの変更
● 次の2つのファイルのmodelとlayoutを日本語仕様のために行を追加
# cd /etc/skel
# vi .xinitrc
setxkbmap -layout jp -model jp106
# cd /etc/skel/gisvm/desktop-conf/menus/
# vi xkb-plugin-363.rc
model=jp106
layout=jp
21
クリーンアップ
● 作成するDVDに余計なファイルを入れないためにクリーンアップ
# apt-get clean
# rm -rf /tmp/*
# rm /etc/hosts
# rm /etc/resolv.conf
# umount /proc || umount -lf /proc
# umount /sys
# umount /dev/pts
# exit
$ sudo umount edit/dev
22
デフォルト言語を変更
● gfxboot でデフォルトの言語を ja に変更
$ sudo apt-get install dpkg-dev uck
$ sudo apt-get source gfxboot-theme-ubuntu gfxboot
$ cd gfxboot-theme-ubuntu*/
$ sudo make DEFAULT_LANG=ja
$ sudo cp -af boot/* ../extract-cd/isolinux/
$ cd -
23
Live用ファイル圧縮の前処理
● filesystem.manifest を生成
$ sudo chmod +w extract-cd/casper/filesystem.manifest
$ sudo chroot edit dpkg-query -W --showformat='${Package} ${Version}\n' > extract-cd/casper/filesystem.manifest
$ sudo cp extract-cd/casper/filesystem.manifest extract-cd/casper/filesystem.manifest-desktop
24
Live用ファイルを圧縮
● filesystem.squashfs を生成
$ sudo sed -i '/ubiquity/d' extract-cd/casper/filesystem.manifest-desktop
$ sudo sed -i '/casper/d' extract-cd/casper/filesystem.manifest-desktop
$ sudo rm extract-cd/casper/filesystem.squashfs
$ sudo mksquashfs edit extract-cd/casper/filesystem.squashfs -comp gzip -b 131072
25
Live用ファイル圧縮の後処理
● filesystem.size を生成
$ sudo -i
# cd /home/user/livecdtmp
# printf $(sudo du -sx --block-size=1 edit | cut -f1) > extract-cd/casper/filesystem.size
# exit
26
isoイメージの作成
● md5sum を生成して isoイメージを作成
$ cd extract-cd
$ sudo rm md5sum.txt
$ sudo find -type f -print0 | sudo xargs -0 md5sum | grep -v isolinux/boot.cat | sudo tee md5sum.txt
$ sudo mkisofs -D -r -V "$IMAGE_NAME" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ../osgeo-live-8.0-ja.iso .
28
参考文献
● LiveCD Customizationhttps://help.ubuntu.com/community/LiveCDCustomization