LoginSignup
29

More than 3 years have passed since last update.

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

Last updated at Posted at 2019-09-02

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回記事へ


リンク情報システム株式会社では一緒に働く仲間を随時募集しています!
また、お仕事のご依頼、ビジネスパートナー様も募集しております。お気軽にご連絡ください。
 
 

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
29