ZoneMinderをダウングレードする(バージョンダウン)

スポンサーリンク

ZoneMinderについて

ZoneMinderはオープンソースの高機能な監視カメラソフトです。

ZoneMinderのパッケージは「zmrepo」から入手できるのでyumなどのパッケージ管理ツールで導入・アップデート可能です。

Index of /el/7/x86_64

ただ、2021/4/27現在は1.35系は開発バージョンの位置付けのため安定しておらず、安定版は1.34を選ぶ必要があります。

「zmrepo」から1.34が入手できないので、「rpmfusion」から過去のバージョンにダウングレードする保方法を記載します。

環境は以下のような感じです

  • CentOS7
  • Zoneminder 1.35 > 1.34にダウングレード

ZoneMinderのダウングレード

ダウングレードについて

ZoneMinderのアップグレードは開発版でない限り大抵は問題なくアップグレードできると思いますが、ダウングレードについては積極的に検証されていないため、不具合が出る可能性が高いです。

このため、戻せるように「データベースのバックアップ」と、カメラの各種設定はメモしておいた方が良いです。

また、データベースは各バージョンごとに圧縮するなりして保管しておくと、今後のトラブル時にカメラやゾーンの設定だけでも戻せるので安心です。

データベースのバックアップ

データベースにはカメラの設定なども含まれるため、ひとまずバックアップしておきます。

mysqldump -uユーザー名 -pパスワード zm > dump-zoneminder.sql

何度も実行する場合は以下を「backup-zoneminder.sh」などとして保存して実行すれば、日付時刻が付与されたバックアップがカレントディレクトリへ生成されます。

#!/bin/sh

# カレントディレクトリにzmデータベースをバックアップ(日付時刻を含むファイル名になる)
# 
# 例:dump-20201121_153006.sql

USER_NAME="ユーザー名"
PASSWORD="パスワード"

mysqldump -u$USER_NAME -p$PASSWORD zm > dump-zoneminder-`date "+%Y%m%d_%H%M%S"`.sql

以下のファイルはZoneMinder自体の設定ファイルですが、データベースのユーザー名やパスワードも設定してあるので必要に応じてバックアップしておきます。

/etc/zm/zm.conf

yumにrpmfusionを追加

rpmfusionのレポジトリを追加します

rpm -Uvh https://download1.rpmfusion.org/free/el/updates/7/x86_64/r/rpmfusion-free-release-7-4.noarch.rpm

しばらく使っていないとURLが変更になったりして取得できない場合があります。

/etc/yum.repos.d/ の.repoを修正してもいいですが、面倒な場合はrpmfusionのパッケージをアンインストール後に再インストールすれば最新の状態になります。

yum remove rpmfusion-free-release-7-4.noarch rpmfusion-nonfree-release-7-4.noarch

設定レポジトリの全バージョンを確認

yumはlistコマンドで一覧表示できますが、そのまま実行すると最新バージョンしか表示されません。

すべてのバージョンを表示する場合は「–showduplicates」オプションをつけます。

yum --showduplicates list | grep zoneminder

表示してみると、導入した「rpmfusion-free-updates」に1.34が確認できます。

[root@sakue ~]# yum --showduplicates list | grep zoneminder
zoneminder.x86_64 1.35.27-1.12.20210425gitg7bbcb7e36.el7
zoneminder-common.x86_64 1.35.27-1.12.20210425gitg7bbcb7e36.el7
zoneminder-httpd.x86_64 1.35.27-1.12.20210425gitg7bbcb7e36.el7
mythzoneminder.x86_64 0.27.1-1.el7.nux nux-dextop
mythzoneminder.x86_64 0.27.1-2.el7.nux nux-dextop
mythzoneminder.x86_64 0.27.1-3.el7.nux nux-dextop
mythzoneminder.x86_64 0.27.1-4.el7.nux nux-dextop
mythzoneminder.x86_64 0.27.3-1.1.el7.nux nux-dextop
mythzoneminder.x86_64 0.27.4-1.1.el7.nux nux-dextop
mythzoneminder.x86_64 0.28-4.el7.nux nux-dextop
mythzoneminder.x86_64 29.0-1.el7.nux nux-dextop
mythzoneminder.x86_64 29.0-2.el7.nux nux-dextop
mythzoneminder.x86_64 31.0-12.130.20210108git016630a35c.el7
zoneminder.x86_64 1.34.26-1.el7 rpmfusion-free-updates
zoneminder-common.x86_64 1.34.26-1.el7 rpmfusion-free-updates
zoneminder-httpd.x86_64 1.34.26-1.el7 rpmfusion-free-updates
zoneminder-nginx.x86_64 1.34.26-1.el7 rpmfusion-free-updates

ダウングレード

ZoneMinder関連のパッケージは3つあり、1つずつ再インストールしてもいいですが、「downgrade」オプションを使うと1つ前のバージョンへダウングレードすることができます。

ダウングレード前に現在のバージョンを確認しておきます。
1.35.27-1.12が入ってます。

[root@sakue ~]# rpm -qa | grep zoneminder
zoneminder-common-1.35.27-1.12.20210425gitg7bbcb7e36.el7.x86_64
zoneminder-1.35.27-1.12.20210425gitg7bbcb7e36.el7.x86_64
zoneminder-httpd-1.35.27-1.12.20210425gitg7bbcb7e36.el7.x86_64

zoneminderのダウングレードは以下のような感じで実行します。

yum downgrade zoneminder-*

以下のように「ダウングレード」の確認が出るので「y」で実行します。

====================================================================================================================================
Package アーキテクチャー バージョン リポジトリー 容量
====================================================================================================================================
ダウングレード中:
zoneminder x86_64 1.34.26-1.el7 rpmfusion-free-updates 17 k
zoneminder-common x86_64 1.34.26-1.el7 rpmfusion-free-updates 9.4 M
zoneminder-httpd x86_64 1.34.26-1.el7 rpmfusion-free-updates 22 k

トランザクションの要約
====================================================================================================================================
ダウングレード 3 パッケージ

総ダウンロード容量: 9.5 M
Is this ok [y/d/N]:

再び現在のバージョンを確認してみます。

「1.34.26-1」にダウングレードされました。

[root@sakue ~]# rpm -qa | grep zoneminder
zoneminder-httpd-1.34.26-1.el7.x86_64
zoneminder-1.34.26-1.el7.x86_64
zoneminder-common-1.34.26-1.el7.x86_64

ZoneMinderデータベースの更新

ZoneMinderの更新時には「zmupdate.pl」を実行してデータベースを更新する必要がありますが、ダウングレードの場合も同様です。

ZoneMinderが起動中の場合は停止させておきます

systemctl stop zoneminder

パスは通っているので「zmupdate.pl」と実行するだけです。

zmupdate.pl

実行例は以下のような感じです。

[root@sakue ~]# zmupdate.pl

Initiating database upgrade to version 1.34.26 from version 1.35.27

Please ensure that ZoneMinder is stopped on your system prior to upgrading the database.
Press enter to continue or ctrl-C to stop :

Do you wish to take a backup of your database prior to upgrading?
This may result in a large file in /var/lib/zoneminder/temp if you have a lot of events.
Press 'y' for a backup or 'n' to continue : n

Upgrading database to version 1.34.26
Loading config from DB 230 entries
Saving config to DB 230 entries

Database upgrade to version 1.34.26 successful.

以下の箇所はZoneMinderが停止していることを確認「Enter」キーで続け、

Please ensure that ZoneMinder is stopped on your system prior to upgrading the database.
Press enter to continue or ctrl-C to stop :

バックアップを保存しますか?と聞いていますが作成しないので「n」で続けます。

データベースのバックアップを取ってない場合は必ずデータベースのバックアップを参考にバックアップを取っておいて下さい。
ZoneMinderはカメラ設定などもデータベースに保存しているためです。

Do you wish to take a backup of your database prior to upgrading?
This may result in a large file in /var/lib/zoneminder/temp if you have a lot of events.
Press 'y' for a backup or 'n' to continue : n

既に実行済みの場合は更新されませんが、何らかのトラブルで強制的に更新したい場合は「-f」オプションをつけて実行します。

zmupdate.pl -f

このアップデートは以下にアップデート用の.sqlが多数用意されており、手動で実行する場合は順番に行う必要がありますが、zmupdate.plは必要なものだけ実行してくれます。

/usr/share/zoneminder/db/

アップデート後のバージョンが離れている場合はzmupdate.plを実行すると以下のように多数のアップデートが実行されます。

Database successfully upgraded to version 1.35.22.
Upgrading DB to 1.35.23 from 1.34.26

Database successfully upgraded to version 1.35.23.
Upgrading DB to 1.35.24 from 1.34.26

Database successfully upgraded to version 1.35.24.
Upgrading DB to 1.35.25 from 1.34.26

Database successfully upgraded to version 1.35.25.
Upgrading DB to 1.35.26 from 1.34.26

Database successfully upgraded to version 1.35.26.
Upgrading DB to 1.35.27 from 1.34.26

Database successfully upgraded to version 1.35.27.

Database upgrade to version 1.35.27 successful.

ZoneMinder起動

更新直後はそれまで起動中であってもデータベースの問題のため停止状態になっていますので起動させます。

systemctl start zoneminder

/etc/zm/zm.conf や、カメラの設定などはデータベースに残っているので再設定は不要です。

過去のデータベースから復元する

不具合が出て対処できない場合は保存しておいた過去のデータベースをインポートすると改善しますが、保管してない場合は設定しなおしになってしまいます。

ZoneMinderのデータベース削除と再作成

データベースにログインし、

mysql -u root -p

ZoneMinderのデータベースを捨てちゃいます。

データベース名を「zm」以外にしている場合は修正してください。

DROP DATABASE zm;

再びZoneMinderのデータベースを作成します。

CREATE DATABASE zm;

ZoneMinderのユーザー「zmuser」に、データベース「zm」へのアクセスを許可します。

GRANT ALL ON zm.* TO 'zmuser'@'localhost';

exitで抜けます。

exit

初期データベースのインポート

ZoneMinderは以下のディレクトリに初期データベースが用意されているので、これをインポートします。

/usr/share/zoneminder/db

以下のように実行します。

mysql -u root -p zm < /usr/share/zoneminder/db/zm_create.sql

ここまでの作業で、ZoneMinderのWebコンソールが表示できるようになったと思いますが、カメラ設定などもすべてクリアされているので、保存してあるデータベースをインポートします。

キャッシュの削除

不要なイベント画像などは以下のように削除しておきます。

rm -Rf /var/cache/zoneminder/events/* /var/cache/zoneminder/images/* /var/cache/zoneminder/temp/*

保存してあるデータベースのインポート

データベースのインポートは以下のように実行します。

mysql -u root [データベース名] < [保存したデータベース.sql]

データベース名が「zm」で、バックアップが「dump-zoneminder-20210301_103019.sql」の場合は以下です。

mysql -u root zm < dump-zoneminder-20210301_103019.sql

データベースのアップデート

コンソール上で以下のように実行するだけです。

zmupdate.pl

詳細はこのページ上部のZoneMinderデータベースの更新を参考にしてください。

このように、データベースが「mysqldump」コマンドで保管してあれば、今後のアップデートで不具合が出た場合もカメラやゾーンの設定だけでも復元できますので、ZoneMinderのバージョンアップがあったらデータベースをバックアップしておくと安心です。

その他

ZoneMinder関連のその他の記事です。

ZoneMinderのよくあるトラブルと解決方法(監視カメラシステム)
ZoneMinderはオープンソースの高機能な監視カメラソフトです。動画の記録はNVRへ、ZoneMinderは別途動体検知とスマホなどから画像として確認するために使用していますが、色々とトラブルがあったので解決方法をメモしておきま...
Zoneminderからスナップショットを取得して保存(Linuxで動作する監視カメラシステム)
Zoneminderのイベント画像ディレクトリZoneminderで検知したイベント画像はデフォルトだと以下のディレクトリにあります。/var/lib/zoneminder/eventsFTPクライアントで接続して中を覗いてみる...
Zoneminderのモニターステータスの確認と再起動(コマンドライン&シェルスクリプト)
ZoneminderのWebコンソールで映像が映っていて、ステータスを示す丸のアイコンが緑であれば正常と判断できます。ここではコマンドでのモニターの稼働状況確認と、モニターの再起動コマンドについてメモしていきます。Zonemin...
rsyslogの設定とログの振り分け
rsyslogdの情報確認バージョンと使える機能rsyslogd -v# rsyslogd -vrsyslogd 8.24.0-41.el7_7.4, compiled with:PLATFORM: x86_64-red...
tinyCam Monitorへ監視カメラを追加する(Androidアプリ)
tinyCam MonitortinyCam MonitorについてtinyCam Monitor(Pro版はtinyCam PRO)はスマホで利用できる監視カメラのビューアですが、非常に高機能で、表示以外に撮影や動体検知、各種セン...

コメントフォーム

タイトルとURLをコピーしました