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
監視カメラを作成するシリーズ記事は本記事が最後となります。
他の記事もどうぞご参照ください!
リンク情報システム株式会社では一緒に働く仲間を随時募集しています!
また、お仕事のご依頼、ビジネスパートナー様も募集しております。お気軽にご連絡ください。