なにこれ
サービス・ツール類をパッケージ化してプライベートリポジトリで
ホスティングして配布したいみたいな事ありますよね。
そういう時、debianパッケージが便利なんです。
(DebianやUbuntuの場合)
必要なもの
- packagecloud.ioのアカウント https://packagecloud.io/
- 配布したいバイナリ、ライブラリ、データ等
手順
ファイル準備
DEBIANフォルダはdebパッケージ生成に必要なmetadataを格納するところです。
DEBIANフォルダ以外のディレクトリ構造が、インストール先マシンのファイルシステムと
対応します。この例だと、インストール先マシンに
- /usr/local/bin/uhouhoapp
- /usr/local/lib/libuho.so
が導入されます
uhouho_project/
├ DEBIAN/
│ └ postinst
│ └ compat
│ └ prerm
│ └ control
├ usr/
│ └ local/
│ └ bin/
│ └ uhouhoapp
│ └ lib/
│ └ libuho.so
DEBIAN/postinst
インストール後に実行されるシェルスクリプト
#!/bin/bash
DEBIAN/prerm
インストール前に実行されるシェルスクリプト
#!/bin/bash
DEBIAN/compat
debhelper の互換性レベルを規定するものらしいです。
2.0
DEBIAN/control
Package: uhouho_project
Version: 1.0.0
Section: interpreters
Priority: optional
Architecture: amd64
Essential: no
Suggests:
Maintainer: Debian Kozou <xxxx@xxx.net>
Conflicts:
Replaces:
Provides:
Description: Hogehoge Package.
debパッケージ作成
$ dpkg-deb -b uhouho_project
dpkg-deb: building package `uhouho_project' in `uhouho_project.deb'.
packagecloud.ioへのアップロード
手順に従ってください
## 実際に使う
curl -s https://<TOKEN>:@packagecloud.io/install/repositories/<USER>/uhouho_project.deb.sh | sudo bash
> sudo apt-get install uhouho_project=1.0.0