分享
 
 
 

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

王朝other·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

这篇文章主要是说明如何作在 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.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有