# バージョンアップ

## Windows

### 一般バージョンのアップデート手順

1. **OMFLOWのバックアップ**

事前にOMFLOWをバックアップしてください。詳細は【**バックアップとリストア**】を参照してください。

2. **更新ファイルの実行**

OMFLOWのWindows更新ファイルは直接実行することができます。更新ファイルを右クリックし、「管理者として実行」を選択します。

3. **言語の選択**

表示言語を選択し、「OK」をクリックします。

4. **利用規約に同意**

利用規約の「同意する」にチェックを入れ、「次へ」をクリックします。

5. **更新の開始**

実行ファイルは、お使いのデバイスが現在のアップデートを使用できるかどうかを確認します。確認完了後、「更新」をクリックします。

> バージョンが合致しない場合は、まずOMFLOWのバージョンと更新ファイルのバージョンが使用可能かどうかをご確認ください。 OMFLOWのバージョンが1.1.4.0以降の場合は、最新の更新ファイルを使用して最新バージョンにアップグレードすることができます。 デバイスのOMFLOWのバージョンが1.1.4.0未満の場合は、OMFLOWのバージョン順に従って、1.1.4.0までアップグレード後、最新の更新ファイルをご利用ください。

6. **サービスの再起動**

更新後、OMFLOWのサービスが自動的に再起動されますので、サービスの再起動後、「完了」をクリックし、更新を完了してください。

> 1.1.4.0より前のバージョンの場合は、OMFLOWサービスが再起動したことを確認してから更新を続行してください。

これで引き続きOMFLOWをご利用いただけます！

### 1.2.0.0注意事項

OMFLOWはバージョン1.2.0.0以降、Pythonのバージョンを3.11にアップグレードしました。ユーザーが以前のバージョンで追加のPythonパッケージをインストールしている場合、更新プロセスではユーザーに手動でこれらのパッケージを更新するように求められます。以下は関連する手順です。

1. Python3.11 ( 32 Bit ) のWindows Installerをダウンロードし、実行します
2. Customize installation を選択し、インストールパスをカスタマイズします
3. インストールパスに `C:\PROGRA\~1\OMFLOW Server\Python311` を選択します
4. インストール後、アップデートウィンドウの「次へ」をクリックして確認できます
5. この時点で、アップデート確認画面で元のPythonとPython311のパッケージが一致しているかどうかをチェックし、不足しているパッケージをリストアップします
6. 足りないパッケージがあれば、**管理者権限**でコマンドプロンプトを開き、Python311フォルダに移動します
7. `python.exe -m pip install` コマンドでインストールします
8. インストール後、次へをクリックして確認し、欠落しているパッケージがなくなるまでこのプロセスを繰り返します
9. オリジナルのPythonおよびPython311に関連するすべてのコマンドプロンプトを閉じます

## Linux

### 一般的なアップデート手順

1. **OMFLOWのバックアップ**

事前にOMFLOWをバックアップしてください。詳細は【**バックアップとリストア**】の節を参照してください。

2. **アップデートファイルの解凍**

patch ファイルを解凍します

```bash
tar -zxvf [patchファイルのパス]
```

3. **アップデートファイルの実行**

patch.sh のパスに移動し、patch.sh を実行します。

```bash
cd [patchファイルのパス]
sudo ./patch.sh
```

4. **サービスの再起動**

OMFLOW サービスが正常に起動したことを確認します。

```bash
/opt/omflow/server/omflow_server status
```

サービスが起動していない場合は、サービスを起動してください

```bash
/opt/omflow/server/omflow_server start
```

これで引き続きOMFLOWをご利用いただけます！

### Linux をバージョン 1.2.0.0 にアップデートする手順

OMFLOWのバージョン1.2.0.0では、環境要件がさらに要求されており、Linux環境をご利用のユーザーは、手動でアップデートを行う必要があります。手順は下記のとおりです：

> python version: 3.8 → 3.11 django version: 2.2 → 4.2

1. **OMFLOWを停止します**

   ```bash
   omflow_server stop
   ```
2. **/opt/omflowフォルダ下のpythonフォルダを削除します**

   ```bash
   rm -rf /opt/omflow/python/
   ```
3. **ubuntuパッケージのインストール**

> パッケージのリスト
>
> * python 3.11
> * python3.11-dev
> * python3.11-venv
> * python3-pip

インストール方法 1：オンライン版 (インターネット接続が必要)

```bash
	# パッケージリポジトリのアップデート
	apt-get update -y
	# パッケージリポジトリの追加
	add-apt-repository ppa:deadsnakes/ppa -y
	# パッケージリポジトリのアップデート
	apt-get update -y
	# python3.11と関連パッケージをインストールする
	apt-get install -y python3.11 python3.11-dev python3.11-venv python3-pip
```

* インストール方法2：ネットワークレス環境、オフラインインストール方法は補足情報をご参照ください。
  * Ubuntuオフラインインストールパッケージをダウンロードします。
  * Ubuntuパッケージをオフラインでインストールします。

4. **python 3.11を環境変数に設定します(python3のコマンドでpython3.11を呼び出し可能になるようにする)**

   ```bash
   update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.11 1
   ```
5. **/opt/omflowフォルダの下にpython 3.11の仮想環境を作成します。**

   ```bash
   python3 -m venv /opt/omflow/python
   ```
6. **仮想環境に入り、pythonパッケージをインストールします**

> pythonパッケージのリスト
>
> * wheel
> * django==4.2
> * ldap3
> * mod\_wsgi
> * openpyxl
> * DBで使用されるpythonパッケージ
> * その他のパッケージ…
> * オンラインインストール版 (インターネット接続が必要)

```bash
    # 仮想環境に入ります
    source /opt/omflow/python/bin/activate
    # wheel をインストールする
    pip install wheel
    # 必要がなければ省略可能
    python /usr/lib/python3.11/test/libregrtest/setup.py bdist_wheel
    # 必要なパッケージをインストールします。その他のパッケージのインストールについては、ご自身で判断してください。
    pip install django==4.2 ldap3 mod_wsgi openpyxl
```

* ネットワークレス環境、オフラインインストール方法は補足情報をご参照ください。
  * pythonオフラインインストールパッケージ(.whl)をダウンロード
  * pythonパッケージをオフラインでインストールします

7. **apache http.confのwsgi\_moduleのパスを新しいパスに変更します**

   ```bash
   # django.confを修正します。
   vim /etc/apache2/sites-enabled/django.conf

   # wsgi_moduleのパスを修正します。
   ```
8. **OMFLOW 1.2.0.0をアップデートします**

   ```bash
   # tmpに移動する
   cd /tmp/

   # patchファイルを解凍する
   tar zxvf /tmp/omflow_patch_1_1_6_4_upgrade3.tar.gz
   ```

   ```bash
   # patchフォルダに移動する
   cd omflow_patch_1_1_6_4_upgrade4/

   # patchを実行する
   ./patch.sh
   ```
9. **OMFLOWを起動します(通常は手動で起動する必要はありません)**

### 補足:

1. Ubuntuオフラインインストールパッケージをダウンロードします。
   * アップデート対象であるOMFLOW Serverと同等の環境で、インターネット接続可能なUbuntuマシンを用意します。

> パッケージのリスト
>
> * python 3.11
> * python3.11-dev
> * python3.11-venv
> * python3-pip

* ダウンロードコマンド:

```bash
    # rootに切り替える
    sudo su

    # deadsnakesの追加**deadsnakes** PPA
    add-apt-repository ppa:deadsnakes/ppa

    # アップデートパッケージリスト: 
    apt-get update

    # (必要があれば) デフォルトのダウンロードフォルダをクリアする
    apt-get clean

    # パッケージをダウンロードするがインストールはしない
    apt-get install --download-only python3.11 python3.11-dev python3.11-venv python3-pip

```

* ダウンロードしたインストールパッケージは、 **`/var/cache/apt/archives/`** ディレクトリに保存されますので、FTPソフト等を使用して取り出し、アップデート対象のOMFLOW Server環境にインストールしてください。

2. Ubuntuパッケージのオフラインインストール

> パッケージのリスト
>
> * python 3.11
> * python3.11-dev
> * python3.11-venv
> * python3-pip

* **`.deb`** ドキュメントをUbuntuの任意のディレクトリにコピーします。ここでは **`/tmp/Downloads`** を例にします。
* Ubuntuコマンド:

```bash
        # rootに切り替える
        sudo su
        
        # インストーラーを保存するパスに移動する
        cd /tmp/Downloads
        
        # dpkg を使ってダウンロードしたパッケージをインストールする
        dpkg -i *.deb
```

3. 既存の環境からインストール済みのpythonパッケージのリストをエクスポートします。
   * すでにOMFLOWで使用しているパッケージリストがある場合は、このステップは省略できます。
   * 參考: <https://pip.pypa.io/en/stable/cli/pip_freeze/>
   * エクスポートコマンド:

     ```bash
     # OMFLOWの仮想環境に切り替える
     source /opt/omflow/python/bin/activate

     # pythonパッケージリストを/tmp配下にエクスポート
     pip freeze > /tmp/requirements.txt

     # djangoのバージョンを 4.2 以上にする
     vim /tmp/requirements.txt
     ```
   * FTPソフト等を使用して取り出し、ネットワーク接続可能なUbuntu環境に格納し、引き続きダウンロードの参考とします。
4. pythonオフラインインストールパッケージをダウンロードします(.whl)
   * python3.11対応のパッケージをダウンロードするには、python3.11がインストールされた環境を用意し、該当の環境がネットワークに接続されている必要があります。
   * ダウンロードコマンド:

     ```bash
     # オフラインインストーラ保存用の新しいフォルダを作成する
     mkdir /tmp/python_package
     cd /tmp/python_package

     # [方法1]requirements.txtを使って一括ダウンロードする
     # 前のステップの requirements.txtを/tmp/の配下に置いた場合
     pip -m install /tmp/requirements.txt

     # [方法2]パッケージ名を手動で入力してダウンロードする
     pip -m install <パッケージ名>

     #  ダウンロード完了後、フォルダーの中に.whlのインストールファイルがいくつあるか確認してください
     ll
     ```
   * FTPソフト等を使用して取り出し、元のOMFLOW Serverに戻します。
   * 補足: mod\_wsgiはtar.gzを取得し、インストール方法が特殊なので、詳細はオフラインインストールmod\_wsgiをご参照ください。
5. pythonパッケージのオフラインインストール
   * pythonパッケージのオフラインインストーラ(.whl)を`**/opt/omflow/tmp**`の配下に置いた例
   * インストールコマンド:

     ```bash
     # OMFLOWの仮想環境に切り替える
     source /opt/omflow/python/bin/activate

     # オフラインインストーラーが保存されているパスに切り替える
     cd /opt/omflow/tmp

     # すべてのwhlをインストールする
     pip install *.whl
     ```
6. mod\_wsgiのオフラインインストール
   * インストールコマンド:

     ```bash
     # OMFLOWの仮想環境に切り替わる
     source /opt/omflow/python/bin/activate

     # mod_wsgiのtar.gzを解凍する
     tar zxvf <mod_wsgiのファイルパス>

     cd <mod_wsgi解凍後のファイルパス>

     # mod_wsgiの簡易インストール
     python setup.py install
     ```

### 注意:

python & djangoを置き換えた後、OMFLOWのバージョンを1.2.0.0にアップデートする必要があります。以前のバージョンは django 4.2 では動作しません。

### エラー処理

OMFLOWのアップデート後にサービスが起動できない場合は、【**バックアップとリストア**】に従ってOMFLOWをリストアし、再度アップデート手順を実行してください。


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://doc.omflow.com.tw/ri-ben-yu/id-2/2-04-1.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
