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.

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

在〈FreeBSD Package 快速製作 筆記〉中有 1 則留言

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料