Edited at

第16回(最終回) Raspberry Pi で監視カメラを作ろう! ~インストーラ作成編~

Raspberry Piと専用のカメラモジュールを使用し、ONVIF対応の監視カメラを作成するシリーズ記事です。

本記事はリンク情報システム株式会社の有志が作成しています。

本シリーズの最終回です。


Linuxの場合、アプリは自分でソースからビルドして使うのが普通という時代もありました。(一部、今でもそう言うツールは存在していますし、最新版を追求する場合は、自分でビルドする事も必要かと思います。)

ですが、最近は、dpkgやapt-get等のパッケージをインストールするツールを用いる方法が普及し、一般ユーザでも簡単にアプリがインストールできるようになりました。

また、セキュリティアップデートも容易に行う事ができます。

そこで今回は、第5回で使用した監視カメラ映像配信アプリのインストーラ「RedBrick-1.0.1-Linux.deb」を作成する方法を記述します。


インストーラ作成


debパッケージ作成

Raspberry pi は debian から派生しているため、 インストーラとして deb パッケージを作成します。

また、第7回の監視カメラ映像配信アプリのビルドコマンドにあるように、監視カメラ映像配信アプリはcmakeを使用しているので、make 実行後にcpackコマンドを実行するだけで deb パッケージを作成する事ができます。

$ make

$ cpack -C CPackConfig.cmake

cpackコマンドを実行するとdeb パッケージ「RedBrick-1.0.1-Linux.deb」が作成されます。


インストーラ実行

作成したインストーラを使用して監視カメラ映像配信アプリをインストールします。

$ sudo dpkg -i RedBrick-1.0.1-Linux.deb

インストールできたら、アンインストールも試してみます。

$ sudo dpkg -r RedBrick


debパッケージのオプション設定

cmakeツールで、debパッケージを作成するためには、CMakeList.txtには以下の記述を行います。「include (InstallRequiredSystemLibraries)」以降

cmake_minimum_required(VERSION 2.8)

project(RedBrick)

ADD_SUBDIRECTORY(mhengine)
:
ADD_SUBDIRECTORY(redbrick)

include (InstallRequiredSystemLibraries)

set (CPACK_GENERATOR "DEB")
set (CPACK_PACKAGE_CONTACT "連絡先")
set (CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE")
set (CPACK_PACKAGE_VERSION_MAJOR "1")
set (CPACK_PACKAGE_VERSION_MINOR "0")

set (CPACK_DEBIAN_PACKAGE_DEPENDS "libxml2, libuuid1, libavformat57, libavcodec57, libavutil55, libavresample3, libswscale4, libssl1.1 libjson-c3 insserv")

configure_file (postinst.in postinst \@ONLY)
configure_file (postrm.in postrm @ONLY)
set (CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "postinst;postrm")

include (CPack)

設定している項目について、簡単に説明します。

項目
説明

CPACK_GENERATOR
パッケージの形式

CPACK_PACKAGE_CONTACT
連絡先

CPACK_RESOURCE_FILE_LICENSE
ライセンスファイル

CPACK_PACKAGE_VERSION_MAJOR
メジャーバージョン

CPACK_PACKAGE_VERSION_MINOR
マイナーバージョン

CPACK_DEBIAN_PACKAGE_DEPENDS
依存関係のあるパッケージ

CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA
インストール、アンインストール時に実行するスクリプトファイル名

上記のような設定を行う事で、deb形式のパッケージが作成できます。

CPACK_DEBIAN_PACKAGE_DEPENDSによって、このプログラムを実行するために必要なパッケージを記述しているため、もし必要なツールやライブラリがインストールされていない場合は、それらのインストールを促す事ができます。

作成されたdeb形式のパッケージはファイルのコピーだけではなく、postinst、postrmスクリプトによって、インストール、アンインストール時に、追加の処理を実行する事ができます。

今回のスクリプトでは、inssrvコマンドを実行し、アプリをデーモンとしてシステムへの登録します。


postinstファイル(インストール時に実行される)

#!/bin/sh

insserv redbrick


監視カメラを作成するシリーズ記事は本記事が最後となります。

他の記事もどうぞご参照ください!

インデックス記事へ

第15回記事へ


リンク情報システム株式会社では一緒に働く仲間を随時募集しています!

また、お仕事のご依頼、ビジネスパートナー様も募集しております。お気軽にご連絡ください。