免费注册 查看新帖 |

Chinaunix

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

OpenSolaris IPS package 的制作 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-01-19 19:50 |只看该作者 |倒序浏览

                                                IPS包和Solaris上传统的SVR4的包不同,制作起来也不一样,好在它并不是很复杂,下面来看看如何制作一个IPS的包。
首先我们需要打开本地的pkg server,后面的很多步骤都需要pkg server的支持
$ pfexec svccfg -s pkg/server "setprop pkg/port=1000"
$ pfexec svcadm refresh pkg/server
$ pfexec svcadm enable pkg/server
$ pfexec svcadm restart pkg/server
然后安装制作IPS package需要的一些包, 这里我装的是gcc-dev。 如果你需要sun studio, 可以安装ss-dev。
$ pfexec pkg install gcc-dev
$ pfexec pkg install SUNWGlib
$ pfexec pkg install SUNWsfwhea
$ pfexec pkg install SUNWxwinc
外围的环境准备工作做好了, 开始准备需要制作成IPS的软件包了。 这里我写了一个小例子
aubrey@aubrey-usb:~/pkg$ ls
COPYING  helloIPS.c  Makefile  tmp
aubrey@aubrey-usb:~/pkg$ cat Makefile
all: helloIPS
helloIPS: helloIPS
    $(CC) -o helloIPS helloIPS.c
install:
    mkdir -p $(DESTDIR)/usr/bin
    cp helloIPS $(DESTDIR)/usr/bin
clean:
    rm helloIPS
aubrey@aubrey-usb:~/pkg$
这里helloIPS.c是一个很简单的C文件, 打印一句话而已。 Makefile的内容已经给出, COPYING是从
其他的软件包里面copy出来的一个lience文件, tmp是一个临时安装目录, 下面会用到。
下面开始编译并安装软件包
aubrey@aubrey-usb:~/pkg$ make
cc -o helloIPS helloIPS.c
aubrey@aubrey-usb:~/pkg$ make DESTDIR=`pwd`/tmp install
mkdir -p /export/home/aubrey/pkg/tmp/usr/bin
cp helloIPS /export/home/aubrey/pkg/tmp/usr/bin然后需要生成一个.include文件, 用一个现成的脚本
pkgflistgen.pl
aubrey@aubrey-usb:~/pkg$ ~/pkgflistgen.pl tmp/ > helloIPS.include这个脚本生成的文件有点问题,主要是path不对, 通过修改,然后加上head,最后的include文件如下:
aubrey@aubrey-usb:~/pkg$ cat helloIPS.include
#
# header
#
set name=pkg.name            value="helloIPS"
set name=pkg.description     value="hello IPS - a simple IPS example"
set name=pkg.detailed_url    value=http://aubrey.cublog.cn
set name=info.maintainer     value="Aubrey Li(aubrey@opensolaris.org)"
license COPYING        license="GPLv2"
#
# directories
#
dir mode=0555 owner=root group=bin path=/usr/bin
#
# files
#
file tmp/helloIPS mode=0555 owner=root group=bin path=/usr/bin/helloIPS
#
# symlinks
#
文件都准备好了,开始制作IPS包了
aubrey@aubrey-usb:~/pkg$ eval `pkgsend -s http://localhost:1000 open helloips@1.0-1`
aubrey@aubrey-usb:~/pkg$ pkgsend -s http://localhost:1000 include ./helloIPS.include
aubrey@aubrey-usb:~/pkg$ pkgsend -s http://localhost:1000 close
PUBLISHED
pkg:/helloips@1.0,5.11-1:20090119T131633Z
看到PUBLISHED,说明制作成功,我们来试试看
aubrey@aubrey-usb:~/pkg$ pfexec pkg set-authority -O http://localhost:1000 localrepo
aubrey@aubrey-usb:~/pkg$ pfexec pkg install helloips
DOWNLOAD                                    PKGS       FILES     XFER (MB)
Completed                                    1/1         2/2     0.01/0.01
PHASE                                        ACTIONS
Install Phase                                    8/8
PHASE                                          ITEMS
Reading Existing Index                           9/9
Indexing Packages                                1/1
aubrey@aubrey-usb:~/pkg$ which helloIPS
/usr/bin/helloIPS
aubrey@aubrey-usb:~/pkg$ helloIPS
hello IPS!一切OK, IPS package 制作成功了

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/41699/showart_1804410.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP