1. lis-hanzomon

    Posted

    lis-hanzomon
Changes in title
+第16回 Raspberry Pi で監視カメラを作ろう! ~インストーラ作成編~
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,106 @@
+Raspberry Piと専用のカメラモジュールを使用し、ONVIF対応の監視カメラを作成する[シリーズ記事](https://qiita.com/lis-hanzomon/items/cc1f7f316fbeb9579b28)です。
+本記事は[リンク情報システム株式会社](https://www.lis.co.jp/)の有志が作成しています。
+
+本シリーズの最終回です。
+
+---
+
+Linuxの場合、アプリは自分でソースからビルドして使うのが普通という時代もありました。(一部、今でもそう言うツールは存在していますし、最新版を追求する場合は、自分でビルドする事も必要かと思います。)
+
+ですが、最近は、dpkgやapt-get等のパッケージをインストールするツールを用いる方法が普及し、一般ユーザでも簡単にアプリがインストールできるようになりました。
+また、セキュリティアップデートも容易に行う事ができます。
+
+そこで今回は、[第5回](https://qiita.com/lis-hanzomon/items/896342ec1af95d42db26)で使用した監視カメラ映像配信アプリのインストーラ「RedBrick-1.0.1-Linux.deb」を作成する方法を記述します。
+
+#インストーラ作成
+###debパッケージ作成
+Raspberry pi は debian から派生しているため、 インストーラとして deb パッケージを作成します。
+また、[第7回](https://qiita.com/lis-hanzomon/items/6cf0f0759d7a6120a29d)の監視カメラ映像配信アプリのビルドコマンドにあるように、監視カメラ映像配信アプリはcmakeを使用しているので、make 実行後にcpackコマンドを実行するだけで deb パッケージを作成する事ができます。
+
+```sh
+$ make
+$ cpack -C CPackConfig.cmake
+```
+
+cpackコマンドを実行するとdeb パッケージ「RedBrick-1.0.1-Linux.deb」が作成されます。
+
+###インストーラ実行
+作成したインストーラを使用して監視カメラ映像配信アプリをインストールします。
+
+```sh
+$ sudo dpkg -i RedBrick-1.0.1-Linux.deb
+```
+
+インストールできたら、アンインストールも試してみます。
+
+```sh
+$ sudo dpkg -r RedBrick
+```
+
+###debパッケージのオプション設定
+cmakeツールで、debパッケージを作成するためには、CMakeList.txtには以下の記述を行います。「include (InstallRequiredSystemLibraries)」以降
+
+```text
+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ファイル(インストール時に実行される)
+
+```sh
+#!/bin/sh
+insserv redbrick
+```
+
+---
+監視カメラを作成するシリーズ記事は本記事が最後となります。
+他の記事もどうぞご参照ください!
+
+[インデックス記事へ](https://qiita.com/lis-hanzomon/items/cc1f7f316fbeb9579b28)
+[第15回記事へ](https://qiita.com/lis-hanzomon/items/7454627183cf8ce9e9e8)
+
+---
+[リンク情報システム株式会社](https://www.lis.co.jp)では一緒に働く仲間を[随時募集](https://www.lis.co.jp/employ_top)しています!
+また、お仕事のご依頼、ビジネスパートナー様も募集しております。[お気軽にご連絡](https://www.lis.co.jp/inquiry)ください。
+ 
+