在 Solaris 下建立可使用 pkgadd 的软体 package

    技术2022-05-11  69

    这篇文章主要是说明如何作在 Solaris 2.5,2.6 及 7 上面, 能够使用 pkgadd 来读取, 并安装的 package程 式. 在 AnswerBook 2 里有详细的讨论作 package 的过程. 以下将会一步一步 说明如何作 package. 注意: 在以下某些步骤中, 需要在你的机器上有 root 的权利才能使用. ** 选择你的软体 找寻软体的原始程式码, 将它下载. 读取所有和安装有关的文件. 并注意所有的设 定档, 当然也包含检查 Makefile. 解可执行档案及它们的 link 情况. ** 读取 manuals 和 man page 虽然许多人都不太愿意去读这些 man page, 或许你会觉得看 man pgae 是很累的事 但是最好还是看一下, 下面这些指令的 man page. pkgadd, pkginfo,pkgmk,pkgparam,pkgproto,pkgtrans,pkgrm 这里有许多的 option 还有详细的说明, 你必需解, 以方便以下的说明. ** 设定目录结构 通常, 我惯建立一个目录, 如 /opt/SoftWare . 一般而言, 大部份的软体都会安装 在 /usr/local 下, 建立 /opt/SoftWare 是要存放将要做成 package 的软体, 而 避免和原来 /usr/local 下的档案混在一起. 在下一个步骤将会说明如何使用它. ** 编译并安装软体在 /usr/local 或其它地方 改变目录至你存放软体原始程式的位置, 并且读取相关的指令使用. 大部份的软体都 会有详细的安装指令, 这些指令通常以 README INSTALL 等方式的档名出现. 仔细的 读取, 并将你的软体编译成可执行档. 当你的软体编译完成, 你会执行如 "make install" 之类的指令, 用以安装你的程式到 /usr/local 或其它地方. 在执行 "make install" 之前, 你需要做以下的动作: % su % cd /usr % mv local local.full % ln -s local /opt/SoftWare 然後再执行 "make install" , 这样一来, 虽然是装在 /usr/local , 但实际上是 放在 /opt/SoftWare 里面. ** 建立 prototype 和 pkginfo 这两个档 改变目录至 /usr/local ... % cd /usr/local 执行以下的指令 ... % find . -print | pkgproto > prototype 这行指令会建立一个 prototype 档在 /usr/local 接下来, 使用你的文字编辑器 (如 vi), 来编辑 prototype 这个档, 加入下面那行 i pkginfo=./pkginfo 并将 user 和 group 均改成 bin. 以下是一个修改完的例子... i pkginfo=./pkginfo d none bin 0755 bin bin f none bin/prog 0755 bin bin d none doc 0755 bin bin f none doc/doc1 0644 bin bin d none lib 0755 bin bin f none lib/lib1 0644 bin bin d none man 0755 bin bin f none man/man1 0644 bin bin 将 user 和 group 均改成 bin 是非常重要的, 如果 user 和 group 不是 bin 时  在使用 pkgadd 安装时, 将无法正常执行. 再来, 在 /usr/local 下建立 pkginfo 这个档案, 格式如下 : PKG="SCprog" NAME="prog" ARCH="sparc" VERSION="1.00" CATEGORY="application" VENDOR="Computer Science of Chun-Hua University" EMAIL="chunpo@csie.chu.edu.tw" PSTAMP="PodsCat Kuo" BASEDIR="/usr/local" CLASSES="none" 这些参数说明如下: PKG= 你所选择 package 的目录名称 NAME= 程式名称 ARCH= 作业系统的版本 VERSION= 程式的版本编号 CATEGORY= 这个程式是一个 application VENDOR= 写这个程式的公司 EMAIL= e-mail 的内容 PSTAMP= 是谁作这个软体 BASEDIR= /usr/local 是档案安装的地方 CLASSES= 只要写 none 就好了 ** 执行 pkgmk 在 /usr/local 内执行以下的指令... % pkgmk -r `pwd` 执行这个指令之後, 会在 /var/spool/pkg 建立一个 package 的目录(以上面的例子, 会建立一个 SCprog 的目录), 里面则存放你做好的 package. 基本上, package 已经可以算做完成, 你可以把这个 SCprog 用 tar 和 gzip 压起 来就可以了. 安装时, 只需要把它解开成 SCprog 的目录型式, 然後执行 % pkagdd -d . 这样就可以了... ** 执行 pkgtrans 使用 pkgtrans 可以将你的 package 由档案系统(file system)的格式, 转成datastream 的格式. 使用方法如下 :

    转载请注明原文地址: https://ibbs.8miu.com/read-18619.html

    最新回复(0)