🐥

Omeka Sの更新

2024/08/01に公開

概要

Omeka Sの更新作業に関する備忘録です。以下の公式ドキュメントも参考にしてください。

https://omeka.org/s/docs/user-manual/install/#updating

以下には記載していませんが、更新作業の前には、念の為バックアップをとっておくことをお勧めします。

メンテナンスモード

更新にあたり、メンテナンスモードに切り替えます。

以下のEasyAdminモジュールをインストールしておきます。

https://omeka.org/s/modules/EasyAdmin/

そして、以下の「設定」ボタンから、設定ページにアクセスします。

/admin/setting

「Maintenance」項目について、例えば「Public front-end」にチェックを入れて保存します。

結果、以下のように、メンテナンスページが表示されるようになります。

本体およびデフォルトテーマの更新

Omeka Sがインストールされたディレクトリに移動して、以下を実行します。

cd /home/nakamura/www/omeka-s

以下は、v4.1.1に更新する例です。

version=4.1.1
wget https://github.com/omeka/omeka-s/releases/download/v$version/omeka-s-$version.zip
unzip omeka-s-$version.zip
rm -rf *.zip
rm -rf application
rm -rf vendor
mv omeka-s/application .
mv omeka-s/*.php .
mv omeka-s/composer.* .
mv omeka-s/LICENSE .
mv omeka-s/README.md .
mv omeka-s/vendor .
rm -rf ./themes/default
mv omeka-s/themes/default ./themes/
rm -rf omeka-s

/admin にアクセスすると、/migrate にリダイレクトされ、以下の画面が表示されます。「データベースの更新」ボタンを押します。

管理画面に移動し、「移行しました」と表示されれば成功です。

モジュールの更新

合わせてモジュールの更新も行います。

更新可能なモジュールは以下のように表示されます。また、Omeka S v3からv4へ更新した際などは、モジュールのバージョンの不整合により、更新しないと実行できなくなるケースもあります。

まず、modulesディレクトリに移動します。

cd /home/nakamura/www/omeka-s/modules

そして、以下の内容のファイルを作成します。更新対象のモジュールは適宜変更してください。

upgrade.sh
#!/bin/bash

# モジュール名とURLのペアを配列に格納
declare -a modules=(
    "Common https://github.com/Daniel-KM/Omeka-S-module-Common/releases/download/3.4.61/Common-3.4.61.zip"
    "BulkExport https://github.com/Daniel-KM/Omeka-S-module-BulkExport/releases/download/3.4.34/BulkExport-3.4.34.zip"
    "CleanUrl https://github.com/Daniel-KM/Omeka-S-module-CleanUrl/releases/download/3.17.7/CleanUrl-3.17.7.zip"
    "Log https://github.com/Daniel-KM/Omeka-S-module-Log/releases/download/3.4.24/Log-3.4.24.zip"
    "BulkImport https://github.com/Daniel-KM/Omeka-S-module-BulkImport/releases/download/3.4.56/BulkImport-3.4.56.zip"
    "FacetedBrowse https://github.com/omeka-s-modules/FacetedBrowse/releases/download/v1.5.1/FacetedBrowse-1.5.1.zip"
    "IiifServer https://github.com/Daniel-KM/Omeka-S-module-IiifServer/releases/download/3.6.21/IiifServer-3.6.21.zip"
    "ImageServer https://github.com/Daniel-KM/Omeka-S-module-ImageServer/releases/download/3.6.18/ImageServer-3.6.18.zip"
    "IiifViewers https://github.com/nakamura196/Omeka-S-module-IiifViewers/releases/download/1.2.5/IiifViewers-1.2.5.zip"
    "Reference https://github.com/Daniel-KM/Omeka-S-module-Reference/releases/download/3.4.49/Reference-3.4.49.zip"
    "EasyAdmin https://github.com/Daniel-KM/Omeka-S-module-EasyAdmin/releases/download/3.4.20/EasyAdmin-3.4.20.zip"
)

# 配列の各要素に対してループ
for module in "${modules[@]}"; do
    # モジュール名とURLを分割
    read -r MODULE_NAME MODULE_URL <<< "$module"

    echo "Processing $MODULE_NAME from $MODULE_URL"

    # 既存のモジュールディレクトリを削除
    rm -rf "$MODULE_NAME"

    # モジュールのzipファイルをダウンロード
    wget "$MODULE_URL"

    # zipファイルの名前を取得
    ZIP_FILE=$(basename "$MODULE_URL")

    # zipファイルを解凍し、その後削除
    unzip "$ZIP_FILE"
    rm "$ZIP_FILE"
done

そして、以下を実行します。

bash upgrade.sh

結果、更新されたモジュールには、「アップグレード」ボタンが表示されますので、ボタンを押します。なお、最近のモジュールは、「Common」モジュールを事前にインストールすることが求められるケースが多いので、先にインストールしておくことをお勧めします。

まとめ

最後に、メンテナスモードを解除して、更新作業は完了です。

更新作業中はエラーが発生するケースもあるので、.htaccessファイル内で以下のように設定を変更しておくことも有効かもしれません。また、更新作業の完了後は、再びproductionモードに戻すことをお忘れなく。

.htaccess
# SetEnv APPLICATION_ENV "production"
SetEnv APPLICATION_ENV "development"
...

Omeka Sの運用にあたり、参考になりましたら幸いです。

Discussion