免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1535 | 回复: 1
打印 上一主题 下一主题

pkg的制作 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-11-15 00:52 |只看该作者 |倒序浏览
关资料可供参考吗? race 回复于:2003-04-15 08:30:35 旧论坛好像有人贴过。 gunsoft 回复于:2003-04-15 08:38:06 hereyouare. -------------------------------------------------------------------------------- 在Solaris下建立可使用pkgadd的软体
有相关资料可供参考吗?

race 回复于:2003-04-15 08:30:35  
旧论坛好像有人贴过。


gunsoft 回复于:2003-04-15 08:38:06  
here you are.
--------------------------------------------------------------------------------
在 Solaris 下建立可使用 pkgadd 的软体 package
--------------------------------------------------------------------------------  
这篇文章主要是说明如何作在 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  
的格式. 使用方法如下 :  

%cd /var/spool/pkg  
%pkgtrans -s `pwd` /tmp/prog-1.00  

执行这个指令之後, 会在 /tmp 下产生 prog-1.00 这个 datastream 格式的package  
如果要用这个档来安装 package , 可用下列的指令来安装.  

% pkagdd -d prog-1.00  

以上就是整个 package 做的方法, 希望对大家有所帮助.  

接下来是真对 pkgtrans 加以说明.......  

所谓的 file system 格式, 就是我们一般的格案格式, 如果同时有好几个 package 在  
该目录下, 使用 "pkgadd -d ." 即会列出所有的 package.  

而 datastream 的格式, 则是将整个 file system 做成一个档案, 有点类似 tar  
的做用. 使用 datastream 格式的 package 来安装时, 必需指定档名, 而不能用 "."  
来指定, 而且每次只能安装一个 package. 但好处是只需要一个档而已.  

要把 file system 的格式转成 datastream 的格式, 可用以下的指令  

% pkgtrans source dest.  
要把 datastream 的格式转成 file system 的格式, 可用以下的指令  
% pkgtrans -s `pwd` dest.


论坛徽章:
20
申猴
日期:2013-09-12 19:39:05狮子座
日期:2014-07-20 21:19:51寅虎
日期:2014-08-16 18:37:47水瓶座
日期:2014-10-15 18:58:25天蝎座
日期:2015-01-22 18:19:15NBA常规赛纪念章
日期:2015-05-04 22:32:032015亚冠之胡齐斯坦钢铁
日期:2015-06-03 11:28:502015亚冠之吉达阿赫利
日期:2015-09-19 12:41:47午马
日期:2013-09-18 14:36:40戌狗
日期:2013-09-18 14:44:39处女座
日期:2013-09-24 17:46:41CU十二周年纪念徽章
日期:2013-10-24 15:41:34
2 [报告]
发表于 2012-11-19 13:19 |只看该作者
好强悍的文档
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP