Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
OSGeo-Live
をハックする
OSC2015 Hokkaido
2015年6月13日(土) 15:15~
札幌コンベンション・センター
羽鳥 健太郎
3
OSGeo-Live日本語化の背景
● SlackwareベースのLive版の日本語化
● Slax/Porteus
● Debian/UbuntuベースのLive版に挑戦
● OSGeo-Live7.9(ちょっと古い)
● 日本語入力がで...
4
OSGeo-Live8.0がリリース
6
OSGeo-Live8.0での印象
● 各国語対応の数が増えた
● 英語表記の部分が増えた
● 起動直後の言語&キーボード選択が面倒
● やっぱり日本語入力できない
● 日本語フォントが間延びして美しくない
7
使えるように早速
OSGeo-Live8.0を日本語化
8
基本的な作業工程
1. 必要なツールのインストール
2. CDの.isoの内容を抽出
3. デスクトップ・システムを抽出
4. 準備とchroot
5. カスタマイズ
6. デフォルトのキーボードの変更
7. クリーンアップ
8. gfxb...
9
必要なツールのインストール
● 作業環境はできるだけベースと同じ
● OSGeo-Live8.0:Lubuntu14.04LTS
● 自分の環境:Ubuntu14.04LTS(64bit)
● 必要なパッケージをインストール
$ sudo ...
11
いい仕事をしたなと思ったら
OSGeo-Live8.5がリリース
13
再び使えるように
OSGeo-Live8.5を日本語化
14
必要なツールのインストール
● 作業環境はできるだけベースと同じ
● OSGeo-Live8.5:Lubuntu14.04.02LTS
● 現在の環境:Ubuntu15.04(64bit)
● 必要なパッケージはインストール済
$ sud...
16
CDの.isoの内容を抽出
● 作業ディレクトリを作って抽出
$ mkdir livecdtmp
$ cd livecdtmp
$ mv ~/Donwload/osgeo-live-8.5.iso .
$ mkdir mnt
$ sudo...
17
デスクトップ・システムを抽出
● 圧縮してあるファイルを解凍
$ sudo unsquashfs
mnt/casper/filesystem.squashfs
$ sudo mv squashfs-root edit
18
準備とchroot
● 解凍した環境を変更するための下準備
$ cp /etc/resolv.conf edit/etc/
$ cp /etc/hosts edit/etc/
$ sudo mount --bind /dev/ edit/...
19
カスタマイズ(1)
● パッケージをアップグレードして日本語環境
をインストール・設定
# apt-get update
# apt-get upgrade
# apt-get install ibus-mozc im-config
# ...
20
構築するプラットフォームの変更
● 現在の環境
● OSGeo-Live8.5:Lubuntu14.04.02LTS
● プラットフォーム:Ubuntu15.04(64bit)
● 環境を合わせる
● OSGeo-Live8.5:Lubu...
21
カスタマイズ(2)
● 日本語・英語以外の言語パックを削除
# dpkg -l | grep language-pack
# apt-get purge language-pack-hoge
注)言語数が多いので丹念に削除
● 日本語の言...
22
カスタマイズ(3)
● 次のディレクトリ以下にある.desktopまた
は.directoryファイルを日本語訳を追加
● /etc/skel/Desktop
● /usr/share/applications
●
/usr/share/...
23
カスタマイズ(4)
● /local/share/osgeo-desktop/
welcome_message-ja.txt に日本語訳を追加
# vi welcome_message-ja.txt
注)Google翻訳にほとんど手伝って...
24
カスタマイズ(5)
● usr/local/share/osgeo-desktop/
welcome_message.sh を編集
# vi welcome_message.sh
if [ "$LANG" = "ja_JP.UTF-8" ...
25
デフォルトのキーボードの変更
● 次の2つのファイルのmodelとlayoutを日本
語仕様のために行を追加
# cd /etc/skel
# vi .xinitrc
setxkbmap -layout jp -model jp106
#...
26
クリーンアップ
● 作成するDVDに余計なファイルを入れない
ためにクリーンアップ
# apt-get clean
# rm -rf /tmp/*
# rm /etc/hosts
# rm /etc/resolv.conf
# umoun...
27
デフォルト言語を変更
● gfxboot でデフォルトの言語を ja に変更
$ sudo apt-get install dpkg-dev uck
$ sudo apt-get source gfxboot-theme-
ubuntu ...
28
Live用ファイル圧縮の前処理
● filesystem.manifest を生成
$ sudo chmod +w extract-
cd/casper/filesystem.manifest
$ sudo chroot edit dpk...
29
Live用ファイルを圧縮
● filesystem.squashfs を生成
$ sudo sed -i '/ubiquity/d' extract-
cd/casper/filesystem.manifest-desktop
$ sud...
30
Live用ファイル圧縮の後処理
● filesystem.size を生成
$ sudo -i
# cd /home/user/livecdtmp
# printf $(sudo du -sx --block-size=1 edit
| ...
31
isoイメージの作成
● md5sum を生成して isoイメージを作成
$ cd extract-cd
$ sudo rm md5sum.txt
$ sudo find -type f -print0 | sudo xargs
-0 m...
33
参考文献
● LiveCD Customization
https://help.ubuntu.com/community/LiveCD
Customization
OSGeo-Liveをハックする
OSGeo-Liveをハックする
OSGeo-Liveをハックする
OSGeo-Liveをハックする
OSGeo-Liveをハックする
OSGeo-Liveをハックする
Upcoming SlideShare
Loading in …5
×

OSGeo-Liveをハックする

487 views

Published on

オープンな地理情報システムのカタログ集であるOSGeo-Liveは、インストールなしにCD/DVDから起動して様々な地理情報システムを試すことができます。本家のものはローカライズされているのですが、日本語版は日本語入力できず翻訳ももうちょっとの状態だったので、ハックしてラストワンマイルを縮めました。

Published in: Technology
  • Be the first to comment

OSGeo-Liveをハックする

  1. 1. OSGeo-Live をハックする OSC2015 Hokkaido 2015年6月13日(土) 15:15~ 札幌コンベンション・センター 羽鳥 健太郎
  2. 2. 3 OSGeo-Live日本語化の背景 ● SlackwareベースのLive版の日本語化 ● Slax/Porteus ● Debian/UbuntuベースのLive版に挑戦 ● OSGeo-Live7.9(ちょっと古い) ● 日本語入力ができない ● Remastersysで自動化してるのか ● Ubuntuで手動方法が解説 ● トライ&エラーでやってみたら成功 ● 日本語環境でOSGeo-Live7.9が利用
  3. 3. 4 OSGeo-Live8.0がリリース
  4. 4. 6 OSGeo-Live8.0での印象 ● 各国語対応の数が増えた ● 英語表記の部分が増えた ● 起動直後の言語&キーボード選択が面倒 ● やっぱり日本語入力できない ● 日本語フォントが間延びして美しくない
  5. 5. 7 使えるように早速 OSGeo-Live8.0を日本語化
  6. 6. 8 基本的な作業工程 1. 必要なツールのインストール 2. CDの.isoの内容を抽出 3. デスクトップ・システムを抽出 4. 準備とchroot 5. カスタマイズ 6. デフォルトのキーボードの変更 7. クリーンアップ 8. gfxbootのデフォルト言語を変更 9. isoイメージの作成
  7. 7. 9 必要なツールのインストール ● 作業環境はできるだけベースと同じ ● OSGeo-Live8.0:Lubuntu14.04LTS ● 自分の環境:Ubuntu14.04LTS(64bit) ● 必要なパッケージをインストール $ sudo apt-get install squashfs-tools genisoimage
  8. 8. 11 いい仕事をしたなと思ったら OSGeo-Live8.5がリリース
  9. 9. 13 再び使えるように OSGeo-Live8.5を日本語化
  10. 10. 14 必要なツールのインストール ● 作業環境はできるだけベースと同じ ● OSGeo-Live8.5:Lubuntu14.04.02LTS ● 現在の環境:Ubuntu15.04(64bit) ● 必要なパッケージはインストール済 $ sudo apt-get install squashfs-tools genisoimage あとはやるだけ (のはず) エンジンがかからない...
  11. 11. 16 CDの.isoの内容を抽出 ● 作業ディレクトリを作って抽出 $ mkdir livecdtmp $ cd livecdtmp $ mv ~/Donwload/osgeo-live-8.5.iso . $ mkdir mnt $ sudo mount -o ro,loop osgeo-live-8. 5.iso mnt $ mkdir extract-cd $ rsync --exclude=/casper/filesystem.squashfs -a mnt/ extract-cd
  12. 12. 17 デスクトップ・システムを抽出 ● 圧縮してあるファイルを解凍 $ sudo unsquashfs mnt/casper/filesystem.squashfs $ sudo mv squashfs-root edit
  13. 13. 18 準備と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
  14. 14. 19 カスタマイズ(1) ● パッケージをアップグレードして日本語環境 をインストール・設定 # apt-get update # apt-get upgrade # apt-get install ibus-mozc im-config # apt-get font-takao-gothic font-takao- mincho font-takao-pgothic # 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 ここでまさかのエラー
  15. 15. 20 構築するプラットフォームの変更 ● 現在の環境 ● OSGeo-Live8.5:Lubuntu14.04.02LTS ● プラットフォーム:Ubuntu15.04(64bit) ● 環境を合わせる ● OSGeo-Live8.5:Lubuntu14.04.02LTS ● プラットフォーム:Lubuntu14.04.02LTS
  16. 16. 21 カスタマイズ(2) ● 日本語・英語以外の言語パックを削除 # dpkg -l | grep language-pack # apt-get purge language-pack-hoge 注)言語数が多いので丹念に削除 ● 日本語の言語パックを追加 # apt-get install language-pack-gnome- ja # apt-get install fonlanguage-pack- gnome-ja # apt-get install firefox-locale-ja
  17. 17. 22 カスタマイズ(3) ● 次のディレクトリ以下にある.desktopまた は.directoryファイルを日本語訳を追加 ● /etc/skel/Desktop ● /usr/share/applications ● /usr/share/desktop-directories # vi hoge.desktop # vi hoge.directory Name[ja]=hogehoge を追加 注)あまりに多いのでちょっと手抜き (^^ゞ
  18. 18. 23 カスタマイズ(4) ● /local/share/osgeo-desktop/ welcome_message-ja.txt に日本語訳を追加 # vi welcome_message-ja.txt 注)Google翻訳にほとんど手伝ってもらいました (^^ゞ ● /etc/skel にもあるのでとりあえずコピー
  19. 19. 24 カスタマイズ(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. 20. 25 デフォルトのキーボードの変更 ● 次の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 layouts=jp
  21. 21. 26 クリーンアップ ● 作成する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. 22. 27 デフォルト言語を変更 ● 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. 23. 28 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. 24. 29 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. 25. 30 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. 26. 31 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 .
  27. 27. 33 参考文献 ● LiveCD Customization https://help.ubuntu.com/community/LiveCD Customization

×