Moai+Easter 初級マニュアル

Moai Manual Advanced Manual
ご案内 インストール Easterの詳細 VirtualUSERSの詳細 Moaiアップグレードの詳細

はじめに

ここではMoaiアップグレードについて、詳細に解説します.


目次



Moaiアップグレードの使い方

Moaiアップグレードとはボタンを押すだけでMoaiシステム全体を自動的に最新のバージョンにアップグレードできるというものです.
このようなソフトウェアの更新機能は、最近のアプリケーションではよく見かけると思います.

Moaiアップグレードが使えない環境およびバージョンについて

Moaiアップグレードは Android APK版 では使えません.
またMoai Ver2.0.2以前ではサポートされておりません.

上記の環境またはバージョンをお使いの方は、改めて最新版Moaiを新規インストールして頂きますようお願いします.
moai_profileを最新版のMoaiへ(Moaiアップグレードを使わず)手動で継続したい場合、
こちらの記事を参考にしてください.

使い方を極端的に言いますと、以下の3つのボタンを順番に押すというものです.
  1. 最新バージョンの確認
  2. 修正パッチのダウンロード
  3. 修正パッチを適用

では以下にその手順を図等を例示しながら少し詳しく述べます.
  1. Moaiトップページを開くと「Moaiアップグレード」というリンクがあります.
    このリンク先を開くと、以下のような画面が表示されます.



  2. 「最新バージョンの確認」ボタンを押します.
    このとき、次の二通りのシナリオが考えられ、例えば次のように表示されます.
    • 現在ご利用のMoaiより新しいバージョンがない場合


      現時点ではこれ以上は何もする必要がありません.
      今はMoaiのトップページに戻りましょう.
      新しいバージョンがリリースされた場合はMoai公式サイトでアナウンスされますので、
      そのときにあらためてこのボタンを押し、最新バージョンにアップグレードするとよいでしょう.

    • 現在ご利用のMoaiより新しいバージョンがある場合


      Moaiを新しいバージョンにアップグレード可能であることを示します.
      この場合は、さらに次のステップへ進みます.

  3. 「修正パッチのダウンロード」ボタンを押します.
    例えば以下のような画面が表示されると思います.


    ここでは、修正パッチを適用できる直前までの状態が整ったことが述べられています.
    (実際にはまだ適用されていません).

  4. 「修正パッチを適用」ボタンを押します.
    例えば次のように表示され、古いバージョンのMoaiフォルダ内に対し、新しいファイルのコピー処理などが行われます.


    またこのとき、一瞬Moai本体が終了し再度起動すると思います.
    (これはMoai本体を上書きするためには、Moaiを一度終了させる必要があるためです)

  5. 最後に「OK. All upgrade is successfully done.」のように表示されていれば成功です.
    念のため、Moaiのトップページに戻り、バージョンの表示されている部分が最新版の数字になっていることを確認してください.
    (一番上にある「Welcome to Moai+Easter World」と書かれている部分のすぐ右です)

目次に戻る

Moaiアップグレードの詳細(Birdmanについて)

ここではMoaiアップグレードが内部で何を行っているかについて解説します.
このセクションはそのような内部挙動に興味ある方のための解説であり、
Moaiアップグレードを単に使うだけならば、ここに書いてある内容を読む必要はありません.

Moaiアップグレードを行うための内部プログラムは我々が「Birdman」と呼んでいるものとなります.
このプログラムは Moai Ver2.1 より新規導入されました.

ちなみに名前の由来はEaster島の鳥人伝説です.
この伝説によれば、卵を手渡された鳥人はその瞬間に新たなる鳥人となるのだそうです.

MoaiアップグレードによりMoaiエンジン本体も更新され得るのですが、その処理はMoaiとは別のプログラムが行う必要があります.
その役目を担うのがBirdmanです.
一方、Birdman自身も更新される場合があり、これについてはMoai本体がその処理を担います.
そういう意味ではこの二つのプログラムは相補的な関係にあります.

Moaiアップグレード画面では、Birdman が出力する内容が事細かに表示されます.
我々はこれを「Birdman Console」と呼んでいます.
開始時には何も処理されていないため、メッセージの部分が「None.」と表示されます.

Birdmanは最初に github のMoai公式サイトへアクセスし、そこに置かれた vtag_rule というファイルをダウンロードします.
これを分析することで、今現在インストールされているMoaiが最新バージョンであるかどうかを確認します.

この分析の結果、現在のMoaiが古いバージョンであったと判明した場合、
Birdmanは github のMoai公式サイトへ再びアクセスし、最新バージョンへの修正パッチを自動的にダウンロードします.
修正パッチは zip 形式となっていますので、さらにこれを解凍しなければなりません.
この解凍処理も自動的に行われます.
これらの実体はMoaiフォルダ直下のbirdman/tmpフォルダに一時的に置かれます.
また「最新バージョンの確認」ボタンを押すタイミングでこれは削除されます.

ボタンを三段階に分けなくても、一つのボタンで一括で全部やっちゃえば?と思われる方もいるかもしれません.

しかし万一途中で問題が発生した場合でもどの時点でそれが起きたかを一目瞭然とすることは重要です.
また、Moaiの哲学として「処理の透明性」を主要なポリシーの一つとして掲げているというのもあります.
そのような理由で、現時点ではこのように三つのフェーズに分けてあります.

目次に戻る

Moaiを新規インストールした場合にmoai_profileをそれへ引き継ぐ方法

ここではMoaiを新規インストールした場合、moai_profileをそれに引き継ぐ際の注意事項について説明します.


PC版Moaiの場合
新しいMoaiのインストール先フォルダは 古いMoaiの使用の際に既に作成頂いている moai_profile フォルダと同列の位置になるようにした方が良いでしょう.
( 言い換えれば、新しいMoaiのインストール先フォルダを 古いMoaiのフォルダと同列になるようにインストールします. まあ普通はそうされることが多いとは思いますが… ).
そうすれば 新しいMoai でも moai_profile環境( 古いMoai において登録されたEasterのリンク集やコレクションの環境 )が特に何も設定することなく引き続き使用できると思います.

この様子を念のために冗長に書きますと、以下のようになります.
以下ではWindows 32bit版を例に、古いMoaiを moai-v2.0-win32、新しいMoaiを moai-v2.2-win32という名前であるとして説明します.
moai-v2.0-win32 が例えば C:\znk_project というフォルダの下に以下のようにインストールされていたとします.

【フォルダ構成】
moai-v2.0-win32
moai_profile

新しいMoai の zip をダウンロードし、同フォルダに以下のように展開します.
これが上で言う「同列に置く」の意味です.

【フォルダ構成】
moai-v2.0-win32
moai-v2.2-win32
moai_profile

moai-v2.2-win32 の方の moai.exe を起動し、問題がないことを確かめて下さい.
そして moai-v2.0-win32 の方については、もはや必要ないのであればこれを削除して頂いても構いません.

【フォルダ構成】
moai-v2.2-win32
moai_profile

Windows 32bit版を例に挙げましたが、他のプラットフォームでも同様です.
Linux環境ではこのドキュメント内での「フォルダ」という用語を「ディレクトリ」に読み替えてください.




Android APK版Moaiの場合
Android apk版では moai_profileの位置は通常、/sdcard/moai_profileに固定されているため、
あなたが特にこの位置を明示的に変更していない限りは、特に意識する必要はなくmoai_profileを新しいMoaiへ継続できると思います.


目次に戻る

Moaiアップグレードが内部で使用する修正パッチの詳細


修正パッチの配布元と名前形式
修正パッチは以下より入手できます.
Moaiアップグレードも内部で以下を参照します.

https://mr-moai-2016.github.io/patch/moai-v{old}-patch-v{new}-{platform}.zip

ここで {old} や {new} の部分は 2.0 や2.2 といったバージョンの数字をあらわす文字列となります.
{platform} の部分はお使いのプラットフォームを表す文字列で、windows, linux, cygwin, android のうちのいずれかです.

たとえば {old} が 2.1、{new} が 2.2 であった場合
この修正パッチは Moai Ver2.1 のフォルダに対してのみ適用できます.
それ以外のものには適用できません.

ここで言う Ver2.1 とは Ver2.1シリーズすべてを含みます.
即ち、Ver2.1、Ver2.1.1、Ver2.1.2 ... などがいずれも適用可能な対象となり、
それらをすべて Ver2.2へ引き上げるための修正パッチということになります.



修正パッチ内のスクリプトが実行する処理
この修正パッチ内には、パッチ適用のためのスクリプトが用意されています.
それを実行することで自動的に 古いMoaiのフォルダを認識し、パッチが適用される仕組みとなっています.
Moaiアップグレードでは、これを以下の手順に従って内部的に実行します.

  1. まずMoaiが起動中の場合は、起動中のMoaiを一旦終了します.
    そうしないと一部の実行形式のファイルにおいて「共有違反です」あるいは「ビージー(busy)」というメッセージが出て
    パッチの適用に失敗してしまいます.

  2. ダウンロードしたzipファイルを、既にインストールされた Moai のフォルダ内の birdman/tmp フォルダに一時的に置きます.
    そこでこの zip ファイルを展開します.

  3. zipを展開するとmoai-v{old}-patch-v{new}-{platform} というフォルダが作成されます.

  4. このzipを展開したフォルダの中に moai-{platform} という名前のフォルダがあります.
    この中身は、新しく更新されたファイル群の集合となっています.
    apply_list.myfに記述された命令に従ってこの中身が、パッチが適用される Moaiフォルダへ上書きコピーされます.
    また逆に不要なファイルは削除されます.

  5. さらにzipを展開したフォルダの中に「moai-common」というフォルダがあります.
    これも同様にapply_list.myfに記述された命令に従ってこの中身が、パッチが適用される Moaiフォルダへ上書きコピーされます.
    また逆に不要なファイルは削除されます.

  6. 以上でフォルダの中身はすべて最新の状態になります.




vtagファイル
moaiフォルダ内には vtag ファイルというものが含まれており、このファイルの中身にバージョン番号が書かれてあります.
Moaiの内部システム的にはこれを真のバージョン番号として認識しています.

「Moaiアップグレード」は、WebブラウザのMoaiエンジン設定の画面より現在のMoaiが最新バージョンであるかを確認し、
最新バージョンでなければ最新版の修正パッチを自動的にダウンロードし、上記の適用処理を自動的に行いますが、
vtagファイルの内容はこのときに参照されます.


目次に戻る

This article was written by:
none image

Mr.Moai

@znk project