星期三, 三月 04, 2009

FreeBSD Package 快速製作 筆記

快速製作 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`
程式使用
  1. chmod +x make_pkglist.sh
  2. ./make_pkglist.sh # 就會產生 pkglist
  3. 執行: pkg_create -v -f pkglist -c comment -d README Tsung_api-0.0.1 # 建立 Package

懶人包: 直接下載此檔案 bsd-package.tgz (上述的檔案整理成一個壓縮檔), 解開後, 將檔案內容改一改, 即可執行建立 Package.

相關標籤

this is comment icon 3q [回覆]

3q very mush for this

Comment by arli (10/31/2009 00:31)
Add this page to del.icio.us

發表迴響

標題

內容 (限制 1000 字)

暱稱

電子郵件

個人網頁


 authimage


PS: 若無法留言, 請先確認是否有打開 JavaScript, 造成您的困擾, 實在萬分對不起 Orz...(如果無法留言, 勞煩可以發信給我好嗎? 謝謝.)
PS2: 若您的留言被誤判, 我都會再自行看過, 不需要一直重覆張貼~