checkinstall で Cppcheck の deb パッケージを作成してみた
Ubuntu 16.04 LTS はCppcheckが少し古い。そこで Cppcheckをソースコードからdebパッケージを作ってインストールしてみた。
準備
Cppcheckを checkinstall でいれる。ここは HAVE_RULES=yesを設定するため、libpcre3もインストールする。
sudo apt install libpcre3 checkinstall
Cppcheck は https://github.com/danmar/cppcheck/releases の Source code (tar.gz) からダウンロードする
ビルドする
ubuntu のパッケージとの衝突を避けて、PREFIXを/usr/localにして、インストール先を変更する。またCFGDIRでCppcheckのコンフィグファイルの場所を決定する。この変数が指定してあれば、make install時にcfgファイルをコピーしてくれる。
tar -zxvf cppcheck-1.83.tar.gz cd cppcheck-1.83 make PREFIX=/usr/local/ CFGDIR=/usr/local/share/cppcheck/cfg HAVE_RULES=yes
doc-pakディレクトリに欲しいファイルをコピー
checkinstallはインストール時にdoc-pakフォルダの内容をマニュアルとして保存する。
そのため欲しいファイルをこのフォルダにコピーしておく。
rm -rf doc-pak ; mkdir doc-pak cp -r AUTHOR COPYING addons man rules tools triage samples doc-pak
checkinstall にコマンドを与えてパッケージ化とビルド
checkinstall コマンドでインストールすると同時に deb パッケージを作成する。
そのままchcekinstall のパッケージ情報入力画面になる。
ここでPREFIX、CFGDIR、HAVE_RULESを指定してインストールするのが肝である。
通常のconfigureスクリプトでMakefileを生成する場合、Makefileにこれらの情報を収集する。しかし、cppcheckはMakefileをconfigureで生成しないため、毎回指定しなければならないのである。
sudo checkinstall make install PREFIX=/usr/local/ CFGDIR=/usr/local/share/cppcheck/cfg HAVE_RULES=yes
あとは checkinstall で質問に応えていけば、インストールしdebパッケージが作成できる。