快速製作 FreeBSD Package, 單純 Hello world 版, 若要詳細版本可見:
那此快速製作的簡易版, 主要是包自己的 Package 用, 只寫基本 build package 需要的檔案.
下述 使用 pkg_create 來快速建立 Package, 詳細參數可見: pkg_create(1)
資料準備
假設現在要包的 Package 有下述的資料:
- Package name: Tsung_api
- Package description: Tsung open api
- 檔案路徑: /tmp/api/trunk
- 檔案列表:
- /tmp/api/trunk/webroot/index.php
- /tmp/api/trunk/webroot/my/index.php
- /tmp/api/trunk/webroot/template
- /tmp/api/trunk/webroot/template/my
準備三個檔案
- comment
- README
- pkglist
README 內容
Tsung open api
--------------------------------------------------------------------------------
Version 0.0.1
* First Version.
comment 內容
Tsung api
pkglist 內容
@comment PKG_FORMAT_REVISION:1.1
@name Tsung_api-0.0.1
@comment ORIGIN:Tsung api
@cwd /var/www/api
@srcdir /tmp/api/trunk
@owner www
@group www
@mode 0644
webroot/index.php
webroot/my/index.php
webroot/template
webroot/template/my
@dirrm webroot/template/my
@dirrm webroot/template
@dirrm webroot/my
@dirrm webroot
pkglist 內容說明
- @cwd: 要安裝到哪邊去
- @srcdir: 原始檔路徑
- @mode: 檔案權限設定, 於此下面是從 /tmp/api/trunk 下面的所的檔案列表.
- @dirrm: 移除 Package 時, 要移除的目錄 / 檔案 等
建立 Package
- pkg_create -v -f pkglist -c comment -d README Tsung_api-0.0.1 # 即完成 BSD Package.
安裝 / 移除 Package
- pkg_add -i Tsung_api-0.0.1.tbz
- pkg_delete Tsung_api|*
自動建立 pkglist Script
由上述最主要是 pkglist 的檔案, 所以寫個 script 來產生, 所以下述用兩個檔案來做到此事(make_pkglist.sh 和 pkg_template).
產生主要是靠 make_pkglist.sh 檔, make_pkglist.sh 執行後, 會將 pkg_template 參數做取代動作, 並產生 pkglist.
註: make_pkglist.sh 的路徑等, 請自行修改使用.
pkg_template 內容
@comment PKG_FORMAT_REVISION:1.1
@name Tsung_api-==VERSION==
@comment ORIGIN:Tsung api
@cwd /var/www/api
@srcdir /tmp/api/trunk
@owner www
@group www
@mode 0644
make_pkglist.sh 內容
#!/bin/sh
I=`whoami`
V=`awk '/^[Vv]ersion/ {print $2; exit}' README`
`sed s#==VERSION==#$V#g pkg_template | sed s#==USER==#$I#g > pkglist`
`find ../webroot/ -type f | grep -v .svn | sort | sed s#\\.\\./##g >> pkglist`
`find ../webroot/ -type d | grep -v .svn | sort -r | sed "s#\\.\\./#@dirrm\ #g" >> pkglist`
程式使用
- chmod +x make_pkglist.sh
- ./make_pkglist.sh # 就會產生 pkglist
- 執行: pkg_create -v -f pkglist -c comment -d README Tsung_api-0.0.1 # 建立 Package
懶人包: 直接下載此檔案 bsd-package.tgz (上述的檔案整理成一個壓縮檔), 解開後, 將檔案內容改一改, 即可執行建立 Package.