- 主に、社内利用のための deb パッケージング入門を参考にしました。
- Makefileに関しては、Self-Documented Makefileを参考にしています。
自前のアプリケーションを配布する際に、手元からscpしてconfigファイルを配置してというのを避けたいのが一番の理由。
Chef/Ansibleでやる手も無くはないが、そこまで大げさにしたくないというのもある。
参考にした記事でも、以下の様に書かれており、心底同意。
tar.gz を心を込めて scp するような運用から卒業して、スマートに apt-get install する世界を目指していきましょう!!
https://github.com/yjuba/golang-package-sample
適当に書いたHello World
とだけ返してくるHTTPサーバをパッケージング。
最近はサーバはsystemdで管理していることが多いので、systemdの設定ファイルも一緒に配るようになっている。
make dep
でdebパッケージが生成される。
殆ど中身はscripts/build_deb.shに書かれている。
作業用の一時ディレクトリを作成、必要なディレクトリを切ってファイルを配置、最後にfakeroot dpkg-deb --build
して完成の流れ。
本当はrpmもやりたかったけど、手元に無かったので一旦無し。
気が向いたらrpmも作成可能にする。