用户工具

站点工具


svr4_打包指南

SVR4 打包指南

System V Release 4 包是 Solaris 10 使用的软件包。本文介绍 SVR4 包的打包方法。1)

准备

将所有文件编译好,可以考虑使用 chroot 编译安装。拷贝所需所有文件到一个目录下,修改相应的权限。

打包

使用 makesvr4.sh 进行打包。

假设需要创建 OSQDUdummy 包,目录结构应当如下

./OSQDUdefault/usr
./OSQDUdefault/usr/share
./OSQDUdefault/usr/share/man
./OSQDUdefault/usr/share/man/man1/dummy.1
./OSQDUdefault/usr/bin
./OSQDUdefault/usr/bin/dummy

执行如下命令

$ ./makesvr4.sh OSQDUdefault

得到 datastream/OSQDUdefault 包。

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

参考文献

svr4_打包指南.txt · 最后更改: 2011/11/06 21:11 由 alex