用户工具

站点工具


svr4_打包指南

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

svr4_打包指南 [2011/11/06 21:05] – 创建 alexsvr4_打包指南 [2011/11/06 21:11] (当前版本) – cite alex
行 1: 行 1:
 +====== SVR4 打包指南 ======
  
 +System V Release 4 包是 Solaris 10 使用的软件包。本文介绍 SVR4 包的打包方法。(([[log:2011年11月|2011年11月工作记录]]))
 +
 +===== 准备 =====
 +将所有文件编译好,可以考虑使用 chroot 编译安装。拷贝所需所有文件到一个目录下,修改相应的权限。
 +
 +===== 打包 =====
 +使用 makesvr4.sh 进行打包。
 +
 +假设需要创建 OSQDUdummy 包,目录结构应当如下
 +<code bash>
 +./OSQDUdefault/usr
 +./OSQDUdefault/usr/share
 +./OSQDUdefault/usr/share/man
 +./OSQDUdefault/usr/share/man/man1/dummy.1
 +./OSQDUdefault/usr/bin
 +./OSQDUdefault/usr/bin/dummy
 +</code>
 +
 +执行如下命令
 +
 +<code bash>
 +$ ./makesvr4.sh OSQDUdefault
 +</code>
 +
 +得到 ''datastream/OSQDUdefault'' 包。
 +
 +<file bash makesvr4.sh>
 +#!/usr/bin/sh
 +
 +cd `dirname $0`
 +basedir=`pwd`
 +
 +mkdir -p packages
 +mkdir -p datastream
 +
 +for pkg in $*; do
 +  cd ${basedir}/${pkg}
 +
 +  rm -f prototype > /dev/null
 +  svn info . > /dev/null
 +  if [ $? -eq 0 ]; then
 +    revision=`svn info . | grep 'Last Changed Rev:' | awk '{print $NF}'`
 +  else
 +    revision=1
 +  fi 
 +
 +  # Create pkginfo file
 +  echo "PKG=${pkg}
 +NAME=${pkg}
 +VENDOR=OSQDU
 +ARCH=all
 +EMAIL=software@osqdu.org
 +CATEGORY=application
 +ISTATES=\"S 1 2 3\"
 +RSTATES=\"S 1 2 3\"
 +BASEDIR=\"/\"
 +VERSION=${revision}
 +PSTAMP=\"`hostname``date +%Y%m%d%H%M%S`\"
 +" > pkginfo
 +
 +  for pkgfile in pkginfo postinstall postremove depend request preinstall preremove; do
 +    if [ -f $pkgfile ]; then
 +      echo "i $pkgfile=./$pkgfile"
 +    fi
 +  done >> prototype
 +  pkgproto . | sed '/f none pkginfo/d' | sed '/f none postinstall/d' | \
 +    sed '/f none postremove/d' | \
 +    sed '/f none depend/d' | sed '/f none request/d' | \
 +    sed '/\.svn/d' | sed '/f none prototype/d' | \
 +    sed '/f none preremove/d' | sed '/f none preinstall/d' | \
 +    sed '/f none install.sh/d' >> prototype || exit 1
 +    pkgmk -r . -b . -o -d ../packages/. || exit 1
 +   
 +    # Convert to DataStream
 +    pkgtrans -s ../packages ../datastream/${pkg} ${pkg} || exit 1
 +
 +    rm prototype pkginfo
 +done
 +
 +exit 0
 +</file>
 +
 +===== 参考文献 =====
 +
 +[[http://www.ibiblio.org/pub/packages/solaris/sparc/html/creating.solaris.packages.html|Creating Solaris Packages]]