1. lis-hanzomon

    No comment

    lis-hanzomon
Changes in body
Source | HTML | Preview
@@ -1,106 +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)
+[第15回記事へ](https://qiita.com/lis-hanzomon/items/5435b10ad7f439749a5c)
---
[リンク情報システム株式会社](https://www.lis.co.jp)では一緒に働く仲間を[随時募集](https://www.lis.co.jp/employ_top)しています!
また、お仕事のご依頼、ビジネスパートナー様も募集しております。[お気軽にご連絡](https://www.lis.co.jp/inquiry)ください。