- 论坛徽章:
- 0
|
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 |
|