OSGeoLive であそんでみる。には

[FOSS4G Advent Calendar 2018 Advent Calendar 2018](https://qiita.com/advent-calendar/2018/foss4g) 4日目。

12月ですね。
少し前ですが [OSGeoLive 12](https://live.osgeo.org/) がリリースされました。

OSGeoLive とは OSGeo 財団のプロジェクトのひとつで、 FOSS4G を簡単に試してみることができるように、 Lubuntu (Ubuntu) という Linux ディストリビューションに QGIS や GRASS や PostGIS や GeoServer など多種多様な FOSS4G ソフトウェアとデモ用のデータセットをパッケージングしたものです。

直近では [FOSS4G TOKAI 2017](https://www.osgeo.jp/archives/1107) で瀬戸先生が紹介されていました。[講演資料](https://speakerdeck.com/tosseto/foss4g2017tokai-osgeolive)

現段階ではウェブサイトは未翻訳ですが、 [OSGeo-Live 11](https://live.osgeo.org/archive/11.0/ja/index.html) のページは翻訳されており参考になります。インストールされている[ツールの説明やクイックスタート](https://live.osgeo.org/archive/11.0/ja/overview/overview.html)も豊富なので、様々な FOSS4G の概要について学ぶことができます。

で、 OSGeoLive を使って、いろんな FOSS4G たちに囲まれてキャッキャウフフしようと思っていたところ、予想外のトラブルが起きて試行錯誤するはめに。とりあえず問題は解消できたので、使ってみるための解説をまとめてみました。

# インストール方法

OSGeoLive (Lubuntu) は OS なので、 Windows や Mac にインストールするソフトではなく、空っぽのパソコンを用意して、そこにインストールするものになります。

といっても、それじゃあ気軽に FOSS4G Life が楽しめない！　ということでインストールディスクの作成は必要ですが、インストールせずに試用することも可能です。

<img width="400" alt="Try without installing" src="https://qiita-image-store.s3.amazonaws.com/0/215290/c8c6ca3e-798f-e476-b3e5-8fd0ad794987.png">
インストールディスクを挿入し、コンピュータを起動した状態（ VirtualBox で擬似的に再現）

また、インストール先をパソコンの HDD や SSD ではなく、 USB メモリとすることで本格的にワンスティックで OS を持ち運ぶこともできるほか、 Windows / Mac に仮想マシンを作成し、仮想マシンを空っぽのパソコンと見立ててインストールすることもできます。

## ダウンロード

こちらの[ダウンロードページ](https://live.osgeo.org/en/download.html)からダウンロードすることができ、二種類のファイルが用意されています。

1. osgeolive-12.0-amd64.iso
2. osgeolive-12.0-vm.7z (vmdk)

1番目の iso ファイルはインストール（試用）ディスクデータ[^iso]です。 Ubuntu や他の Linux ディストリビューションをインストール（試用）する際には、一般的に iso ファイルをダウンロードし、起動可能な DVD / USB メモリを作成します。

ですが OSGeoLive では仮想マシン用のファイル（ vmdk ファイル）も用意されています。2番めのファイルは vmdk ファイルを 7z 形式で圧縮したものになります。

仮想マシンを利用する場合は、 iso ファイルを使って一般的な方法でインストールすることもできますが、 vmdk ファイルを読み込む方法もあります。

喩えるなら iso ファイルからのインストールは袋麺の調理ですが、 vmdk ファイルの読込みはお湯で戻すだけの作業になります。

## 準備

ざっと方法を整理しますと、以下のような感じになります。

1. インストールディスクを作成
    1. パソコンあるいは USB メモリにインストール
    2. インストールせずに試用
2. 仮想マシン用のツールを利用
    1. iso ファイルをもとにインストール
    2. iso ファイルをもとにインストールせずに試用
    3. vmdk ファイルを読込む

1-1, 1-2 ともに、インストール（試用）用のディスクを作る必要があります。作成する際に、通常のデータの保存とは違い、少し特殊な方法で行う必要がありますので、「Windows iso DVD 作成 Ubuntu」あたりのキーワードで検索してみてください。（必要に応じて Windows を Mac 、 DVD を USB に変更してください。）

Ubuntu をキーワードに含めると、 Ubuntu をインストールする際の解説が多くヒットするのでおすすめです。

2 の方法は、普段利用しているパソコンに仮想マシン用のツールをインストールする必要があります。有償のものと無償のものがありますが、無償のものだと VMWare Workstation Player （個人利用及び非商用利用に限る）や VirtualBox が有名です。

また 2-3 のダウンロードファイルは 7z 形式で圧縮されています。 7z 形式はやや特殊なので「Windows 7z 展開」などで検索してみてください。（必要に応じて Windows を Mac に変更してください。）

## 仮想マシンへのインストール

以下、一番ラクそうな 2-3 の方法を VirtualBox で行ってみました。

`新規`から適当な名前をつけて、適当に割り当てるメモリサイズを決めて、 osgeolive-12.0-vm.vmdk を指定してやります。

<img width="351" alt="VirtualBox マネージャー" src="https://qiita-image-store.s3.amazonaws.com/0/215290/40cbaa66-74a9-11ec-cd08-eeba0eaceb01.png">
<img width="355" alt="仮想マシン作成 (1)" src="https://qiita-image-store.s3.amazonaws.com/0/215290/30751486-b25f-61a4-c781-a0d41c2ac4c6.png">
<img width="355" alt="仮想マシン作成 (2)" src="https://qiita-image-store.s3.amazonaws.com/0/215290/7f1bca61-d973-1649-c52a-92e90a65646e.png">
<img width="355" alt="仮想マシン作成 (3)" src="https://qiita-image-store.s3.amazonaws.com/0/215290/17f04863-cdc5-d053-ec5d-f07aff79170f.png">

# Welcome to OSGeoLive 12.0

仮想マシンを起動すると Welcome to ようこそ OSGeoLive 12.0 ！

<img width="400" alt="OSGeoLive 12" src="https://qiita-image-store.s3.amazonaws.com/0/215290/a63d5e5f-7de4-5e2d-4f30-75d2c9ad4ece.png">

## パスワードについて

iso からインストールした場合は設定が必要となりますが、 vmdk を読み込んだ場合、初期ユーザ／パスワードなどが設定されており、ユーザ名は user 、パスワードは user になっています。

このほかのパスワードはデスクトップにある passwords.txt に記載されています。

## クリップボードの共有

せっかく仮想マシンを利用しているので、ホストコンピュータ（ Windows / Mac ）とゲストコンピュータ（ OSGeoLive ）間でコピー＆ペーストが行えるようにクリップボードの共有設定を行っておきます。

共有を行うには VirtualBox だけでなくゲストコンピュータ（ OSGeoLive ）側での設定も必要となりますが、 vmdk から読み込んだ場合はその設定も完了した状態となっています。

そのため、 VirtualBox での設定だけで共有が可能です。 VirtualBox の「デバイス」→「クリップボードの共有」→「双方向」。

<img width="404" alt="クリップボードの共有" src="https://qiita-image-store.s3.amazonaws.com/0/215290/140e9911-b995-b290-3023-a6d2e54abced.png">

デスクトップにある passwords.txt をダブルクリックすると Leafpad というテキストエディタが起動しますので、双方向にコピー＆ペーストできるか確認します。

## 初期設定

vmdk ファイルの読み込みはラクなのですが、良くも悪くも既に構築済みの環境をそのまま読み込んだので、言語やタイムゾーンが日本向けになっていません。なので、そのへんの設定を変更します。

### タイムゾーンの設定とターミナルの使い方

左下のスタートメニューから `System Tools` → `LXTerminal` を選んで LXTerminal というターミナルソフトを起動します。


`user@osgeolive:~$ `と表示されているかと思います。こいつはプロンプトと呼ばれるもので、自動的に表示され、コマンドの入力待ち状態を示しています[^PS1]。

```shell-session
user@osgeolive:~$ 
```

<img width="400" alt="ターミナル" src="https://qiita-image-store.s3.amazonaws.com/0/215290/1bc3a3a5-3fb3-9342-da05-95c6c9328b3e.png">

プロンプト以降にコマンド等を入力します。たとえば `timedatectl` と入力します。このページからコピペでも構いません。 LXTerminal 上でのペーストは `Ctrl+Shift+V` で、コピーは `Ctrl+Shift+C` で行うことができます。 (L)ubuntu 全般のことではなく、このソフトにおける動作なのでご注意を[^CtrlC]。

```shell-session
user@osgeolive:~$ timedatectl
```

入力（ペースト）できたら Enter キーを押下します。するとこのコマンドが実行されます。ここでは「現在の日時の設定を表示せよ」という意味になります。

```shell-session
user@osgeolive:~$ timedatectl
                      Local time: Wed 2018-11-28 17:58:19 EAT
                  Universal time: Wed 2018-11-28 14:58:19 UTC
                        RTC time: Wed 2018-11-28 14:58:20
                       Time zone: Africa/Dar_es_Salaam (EAT, +0300)
       System clock synchronized: no
systemd-timesyncd.service active: yes
                 RTC in local TZ: no
user@osgeolive:~$ 
```

現在の設定が表示されました。そして、そのあと `user@osgeolive:~$ ` が表示されています。コマンドは一瞬で動作完了し、ふたたびコマンド入力待ち状態になったことがわかります。

どうやらタンザニア時間（東アフリカ時間）になっているようです。不便なので日本時間にしましょう。

```shell-session
user@osgeolive:~$ sudo timedatectl set-timezone Asia/Tokyo
user@osgeolive:~$ 
```

先程と同じ `timedatectl` ですが、 `timedatectl set-timezone` とすることで「設定を変更せよ」という命令に変わります。また、頭につけた `sudo` は特権ユーザ（管理者）としてコマンドを実行することを意味しています。コンピュータ全体の設定変更や管理ファイルの編集などを行うときには必要となります。 vmdk を読み込んだ OSGeoLive ではパスワード入力を省略する設定となっていますが、本来であればパスワードが訊ねられ、許可されたユーザしか実行できないようになっています。

そして、今度は何も出力されずプロンプトが表示されました。この辺はコマンドによってバラバラで、設定変更できたよ！　と出力するコマンドもあれば何も出力しないものもあります。

設定が変更されているか確認してみます。

```shell-session
user@osgeolive:~$ timedatectl
                      Local time: Wed 2018-11-28 23:58:27 JST
                  Universal time: Wed 2018-11-28 14:58:27 UTC
                        RTC time: Wed 2018-11-28 14:58:27
                       Time zone: Asia/Tokyo (JST, +0900)
       System clock synchronized: no
systemd-timesyncd.service active: yes
                 RTC in local TZ: no
user@osgeolive:~$ 
```

変更できてますね。よしよし。

### 日本語関係の設定の前準備

日本語関係の設定で必要なファイルなどのインストールを行います。

```shell-session
user@osgeolive:~$ sudo sed -i.bak -e 's#http://\(archive\|tz\.archive\|security\)\.ubuntu\.com/ubuntu/\?#http://ftp.yz.yamagata-u.ac.jp/pub/linux/ubuntu/archives/#g' /etc/apt/sources.list
user@osgeolive:~$ sudo apt update
（出力略）
user@osgeolive:~$ sudo apt install -y $(check-language-support -l ja)
（出力略）
user@osgeolive:~$ 
```

一行目の `sed` でリポジトリ（ダウンロード先）を日本にあるサーバに変更しています（設定ファイルを直接書き換えています）。たぶん、これで快適にダウンロードできると思います。

### Xfce の導入

冒頭で触れたトラブルです。テキストエディタがフォーカスされるなど変換が有効となる状態で fcitx のアイコンをクリックするとデスクトップが固まってしまいます。マウスカーソルの移動は追従するし、時計とかの表示も動いているようですが、クリック関係が認識されなくなります。

<img width="400" alt="フリーズ lxpanel" src="https://qiita-image-store.s3.amazonaws.com/0/215290/b874324a-1076-e433-885e-2ec30171720c.png">
この状態でマウスのクリックが応答しない。

仮想コンソールへの切り替えは可能なので、仮想コンソールでログインして `lxpanel` のプロセスを強制終了させると（自動的にプロセスが再起動するので）回復することはできるようです。しかし、使用するにあたってはちょっと致命的な感じがします。

OSGeoLive で採用している OS は、 Ubuntu に、 LXDE という軽量のデスクトップ環境を採用した Lubuntu でした。 Ubuntu には、別の軽量なデスクトップ環境である Xfce を利用した Xubuntu という派生もあります。

そこで Xfce 関連ツールをインストールして Lubuntu から実質 Xubuntu にしてしまうことで問題を解消することとしました。

```shell-session
user@osgeolive:~$ sudo apt install -y xubuntu-desktop
（出力略）
user@osgeolive:~$ 
```

再起動します。

```shell-session
user@osgeolive:~$ sudo reboot
```

vmdk を読み込んだ場合、ログイン時のパスワード確認が行われないので、もしかしたら Lubuntu として起動してしまうこともあるかもしれません。 Lubuntu が起動した場合は一旦ログアウトします。

ログイン画面の右上のちっこいアイコンで `Xubuntu Session` を選択してからログインしてください。

<img width="400" alt="ログイン画面" src="https://qiita-image-store.s3.amazonaws.com/0/215290/bd707955-12ae-77a2-ea58-27bb920beb16.png">

Xubuntu として起動するとこんな画面になります。

<img width="400" alt="Xubuntu 画面" src="https://qiita-image-store.s3.amazonaws.com/0/215290/5c907dcc-e99a-4e32-b9fe-464c3a104e22.png">

初期状態で存在してないとおかしいはずのアプリケーションメニュー（スタートメニュー）がなぜか表示されていないので、設定しておきます。

上部のメニュー（パネル）を右クリックして `Panel` → `Panel Preferences...` を選びます。 `Items` タブを開き、 `+` ボタンを押し `Applications Menu` を追加します。 Applications Menu を一番上に移動させ、ついでに歯車ボタンを押して `Show button title` のチェックを外します。

設定ウィンドウを閉じたらアプリケーションメニューが使えるようになります。

<img width="400" alt="アプリケーションメニュー" src="https://qiita-image-store.s3.amazonaws.com/0/215290/362f39a4-9c50-5c03-f172-7c5484b0d159.png">

### キーボードの設定

日本語関係の設定の続きをしていきます。まずはキーボードレイアウトの設定です。

ここでは Windows 用の日本語キーボードの設定をしてみたいと思います。（うちの Mac は US 配列なので、設定しなくても特に支障なかったため）

一般的な Windows 用の日本語キーボードは109キーボードという種類になります。 Ubuntu 上の設定では jp の亜種の OADG109A となります。

```shell-session
user@osgeolive:~$ sudo localectl set-x11-keymap jp pc105 OADG109A
user@osgeolive:~$ sudo localectl set-keymap jp106
user@osgeolive:~$ sudo localectl set-keymap jp-OADG109A
user@osgeolive:~$ 
```

### 日本語設定

さて、次は OS 自体の使用言語を日本語にします。

```shell-session
user@osgeolive:~$ sudo localectl set-locale LANG=ja_JP.UTF-8 LANGUAGE="ja_JP:ja"
user@osgeolive:~$ 
```

ここまで終わったら、設定を反映させるため一旦再起動します。

再起動が完了すると、アプリケーションメニューや各種設定ウィンドウやソフトウェアが日本語になったかと思います。（けど、アプリケーション名はやたら英語が残ってて中途半端だにゃあ……）

### 日本語変換

アプリケーションメニューから `Settings` →`言語サポート`を開きます。

開くと、「言語サポートが完全にはインストールされていません」というダイアログが表示されますが、詳細を確認してみると、オーストラリアとかカナダとかそのへんのやつなので無視して「後で通知する」を選んでも構いません。通知が毎回出てくるので、インストールしちゃうのも手ですが。

さて、`キーボード入力に使う IM システム`に `fcitx` を選びます。

次にアプリケーションメニューから `Settings` → `Fcitx Configuration` を開きます。

右側の`現在の入力メソッド`には`キーボード-日本語-日本語 (OADG 109A)` のみになっているかと思います。`現在の言語のみ表示`のチェックを外し、左側の`存在する入力メソッド`の`日本語`のツリーの中にある `Mozc` を選び、右側に移動させます。

Mozc とは Google 日本語入力のオープンソース版になります。

また`全体の設定`の`ホットキー`で`入力メソッドのオンオフ`（英数モードと日本語入力モードの切り替え）で使うキーの設定ができます。デフォルトは `Ctrl+Space` です。変更するときは `CTRL_SPACE` ボタンを押して任意のキー（半角全角キー等）を押すと設定することができます。また`入力メソッドをオンに`を変換キー、`入力メソッドをオフに`を無変換キーにすることもできます。

### デフォルトのアプリケーション

デスクトップにある passwords.txt をダブルクリックで開いてみると、 vim で開かれます。個人的にはこれでもいいのですが、終了するときは `:q`[^vim] を入力して `Enter` するなど使い方がトリッキーで初見殺しなので先程の Leafpad に変更します。

デフォルトのアプリケーションの設定は `Settings` → `MIME Type Editor` でも変更することができるのですが、今回みたいに一括で変えたい場合はやたら面倒なので以下のように設定ファイルを作ってやります。

```shell-session
user@osgeolive:~$ mkdir -p ~/.config
user@osgeolive:~$ echo '[Default Applications]' >~/.config/mimeapps.list
user@osgeolive:~$ fgrep vim.desktop /usr/share/applications/mimeinfo.cache | sed 's/vim/leafpad/' >>~/.config/mimeapps.list 
user@osgeolive:~$ 
```

## おつかれさまでした

とりあえずこのあたりまで設定できると、 OSGeoLive をちょっと使ってみようとしたときにある程度実用に耐えうるかなーってところです。

といっても実質キーボードレイアウトと日本語変換エンジンの設定くらいですが。

予定ではこのあと PostGIS をちょっと触って、 [pgRouting のワークショップ](https://workshop.pgrouting.org/)資料に沿って少し動かしてみようかと考えていましたが、そんな余裕もなく。

# おまけ
## 壁紙

Xfce (Xubuntu) を導入したときに壁紙が変わってしまいました。せっかくなので OSGeoLive の壁紙に戻します。

アプリケーションメニューから `Settings` → `Desktop` を開きます。`フォルダ`を選択して`その他...`から /usr/share/lubuntu/wallpapers ディレクトリを選びます。そして表示されている wallpapers ディレクトリ内の画像一覧から OSGeoLive 12 の壁紙を選択します。

## Welcome メッセージ

ログインするたびに表示されるので、英語だし邪魔だなーって感じたら、次の方法で起動しないようにできます。

アプリケーションメニューから `Settings` → `Session and Startup` を開き、`自動開始アプリケーション`タブを開きます。このリストの中から `Welcome message (Live Demo welcome message)` のチェックを外します。

## QGIS 3.x

OSGeoLive 12 のベースは (L)ubuntu 18.04 という2018年4月にリリースされたものですが、インストールされている QGIS は 2.18 です。せっかくなので QGIS 3.x をインストールしてみます。

ただし、パッケージ管理ツールである apt 上では QGIS 2.18 も QGIS 3.x も qgis という名前で管理されているので、 QGIS 2.18 が QGIS 3.x にアップデート（上書き）されます。

基本的には [QGIS のインストール](https://www.qgis.org/ja/site/forusers/alldownloads.html#debian-ubuntu)の手順通りに行います。以下は OSGeoLive 12 (Ubuntu 18.04) のコードになります。 Ubuntu 18.04 のコードネームが Bionic Beaver であるため `bionic` を指定しています。

```shell-session
user@osgeolive:~$ echo 'deb https://qgis.org/ubuntu bionic main' | sudo tee /etc/apt/sources.list.d/qgis.list >/dev/null
user@osgeolive:~$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key CAEB3DC3BDF7FB45
user@osgeolive:~$ sudo apt update
user@osgeolive:~$ sudo apt install -y qgis qgis-server python-qgis qgis-plugin-grass
user@osgeolive:~$ 
```

<img width="400" alt="QGIS 3.4" src="https://qiita-image-store.s3.amazonaws.com/0/215290/74aef51c-fc73-34fa-d4a8-0042a085f22f.png">

## GeoServer

GeoServer をちょっと触ってみようと、アプリケーションメニューから `Geospatial` → `Web Services` → `GeoServer` → `Start GeoServer` をすると、管理ページが 503 Error になっています。

ちゃんと確認してませんが、パーミッション関係でしょうか。 user ユーザを users グループに追加するとよいらしいです。

- [Can't start web services (GeoServer) in OSGeo-live 11 Lubuntu](https://gis.stackexchange.com/questions/256176/cant-start-web-services-geoserver-in-osgeo-live-11-lubuntu)

```shell-session
user@osgeolive:~$ sudo adduser user users
user@osgeolive:~$ 
```

念の為、再起動したほうがいいかも。

## そのほか入れたほうが便利かもーってツール

### LibreOffice

Microsoft Word や Excel のようなオフィスソフト。

```shell-session
user@osgeolive:~$ sudo add-apt-repository -y ppa:libreoffice/ppa
（出力略）
user@osgeolive:~$ sudo apt update
（出力略）
user@osgeolive:~$ sudo apt install -y libreoffice
（出力略）
user@osgeolive:~$ 
```

### unar

書庫ファイル（圧縮ファイル）の展開ユーティリティ。 zip だけでなく tar.gz / tar.bz2 / tar.xz / 7z など様々な書庫形式に対応。どんな形式でも `unar ARCHIVE_FILE` すれば展開できて便利。

また、日本語ファイル名のファイルを含んだ zip を `unzip` を使って展開しようとすると文字化けが生じることがあるけど、これなら大丈夫。

展開専門のツールなので、書庫化は `zip` なり `tar` なり `gzip` なりを使う必要はあるけれど。

```shell-session
user@osgeolive:~$ sudo apt install -y unar
（出力略）
user@osgeolive:~$ 
```

### ImageMagick

画像変換ユーティリティ。

```shell-session
user@osgeolive:~$ sudo apt install -y imagemagick
（出力略）
user@osgeolive:~$ 
```

### Ruby

←いまだに、いまいち Python が覚えられない人なので。

```shell-session
user@osgeolive:~$ sudo apt install -y ruby
（出力略）
user@osgeolive:~$ 
```

### RStudio

R は既にインストールされていますが、がっつり使いたい場合は。

- [Ubuntu Weekly Recipe 第527回　UbuntuにRStudioをインストールする方法](https://gihyo.jp/admin/serial/01/ubuntu-recipe/0527)



[^iso]: どうやら64ビット用しか用意されていないみたいです。 OSGeo-Live 11 には32ビット用も用意されています。
[^PS1]: このプロンプト自体の意味は user というユーザが、 osgeolive という名前のコンピュータにログインしており、現在のディレクトリが ~ （ホームディレクトリ）であることを示しています。プロンプトの書式は変更できるため、ディストリビューションや参考書等によっても異なります。変更するには環境変数 PS1 を設定します。
[^CtrlC]: ターミナル上では Ctrl+C で実行中のコマンドを強制的に終了させる命令となります。
[^vim]: 顔文字じゃないです (:-P) 。変なキーを押して内容が書き換わったときは `ESC` キーのあと `:q!` をタイプすると保存せずに終了できます。