- 浏览: 605104 次
- 性别:
- 来自: 北京
最新评论
-
黑色幽默_cool:
这种不负责任的文章,多看一分钟都是浪费。
为什么使用ibatis而不用spring jdbcTemplate -
leibinhui:
不错啊 非常实用
JS正则表达式详解[收藏] -
suu:
写个存储过程,爆如下错误,是不是游标里的数据太多引起的?无法执 ...
使用Spring jdbc template调用Sybase带有返回结果集的储存过程-要点 -
travellers:
有SVR6了,为什么很多还在使用SVR4呢?
什么是SVR4?我们为什么要选择SVR4? -
dotjar:
生活是多么美好阿!
老公日记
原文地址:http://www.ibiblio.org/pub/packages/solaris/sparc/html/creating.solaris.packages.html
介绍:
solaris 软件包可以使软件很容易的安装到solaris系统中。软件的所有部分都被一个目录文件描述。借助包管理工具您可以在solaris系统中很方便得安装,更新,删除软件,而不用担心“恶意文件”存留,或者错误的配置,或者软件的未完全安装。
软件包的创建过程大体上是安装一次软件,然后把软件组织成一个软件安装包,这个软件安装包可以被快速的安装到其他solaris系统,同时可以很容易的在本机卸载。
本文档将使用GNU bison 1.24 作为示例程序。
软件包的创建:
创建软件包,首先要知道软件包包含那些文件。如果您是软件作者,通常这个很简单,否这您就需要先把软件安装到一个独立的目录中,来查看到底那些文件将被包含到软件包中。GNU 软件很容易做到这一点,只需要通过命令`configure --prefix=/dir`,这个dir就是我们临时安装软件的目录,例如我们可以制定软件目录为/usr/local/pkg.
编译后使用`make install`命令来把软件安装到我们指定的目录中(/usr/local/pkg)。通过命令`find /usr/local/pkg -print > /tmp/files`来得到该软件包需要哪些文件,现在我们已经知道我们都需要哪些文件了。
创建软件包配置文件
软件安装完成后,你需要创建一个目录文件提供给软件包创建工具使用。首先需要清理/tmp/files里的文件路径(/usr/local/pkg还在那),编辑文件,并修复文件路径错误,在运行:
%cat /tmp/files | pkgproto > /tmp/Prototype
这将创建文件/tmp/Prototype,内容如下
检查文件/tmp/Prototype你可能会发现某些权限不是我想要的,我们可以手工编辑每一个文件的权限。
现在你必须在/tmp/Prototype文件中添加指向pkginfo的语句,pkginfo文件将描述pkgmk命令我们要创建的软件包的细节。
在Prototype文件的前端添加一行
i pkginfo
如果你向包含checkinstall, preinstall和postinstall脚本,仅仅需要在Prototype文件头加上就可以。
checkinstall是一个在安装是被运行的的文件,运行的用户是"nobody",通过这个脚本,你可以检查依赖,处理问题,很自然得退出pkgadd程序,唯一需要注意的是当构建软件包时,要保证用户"nobody"有权限读取这个脚本。pkgadd程序不会询问你是否执行checkinstall脚本。
preinstall是在软包正真安装时执行的脚本,运行的用户是"root",在这里产生中断会要求用户使用pkgrm来删除半安装的软件包,pkgadd程序会询问你是否执行preinstall脚本
postinstall是一个软件包安装完成后执行的脚本,运行的用户是"root",通过这个脚本,你可以为刚刚安装的软件做一些额外的事情,例如安装内核驱动,创建设备或者其他后安装过程,pkgadd程序会询问你是否执行preinstall脚本。
添加一下文字到Prototype
这些脚本会在软件安装开始后执行,如果出错,这些脚本要以非0退出,会要求pkgrm来清理这些半安装的软件。
最后,我们的Prototype文件如下所示:
可以查看prototype的帮助文件来获取更多的信息
下一步,我们需要创建pkginfo文件,来告诉pkgmk命令需要调用哪些文件。下边是我们创建的pkginfo文件内容
创建软件包
软件包配置文件创建后,你就可以在包含软件配置文件的目录(/tmp)来运行软件包创建命令来创建软件包了。
pkgmk -o -r / -d /tmp -f Prototype
这个命令表示创建软件包,覆盖所有以前的尝试,使用'/'作为根目录来查找文件,在/tmp目录构建软件包,从Prototype文件里来读取构建软件包的配置。
命令的输出是
## Processing pkginfo file.
## Attempting to volumize 19 entries in pkgmap.
part 1 -- 990 blocks, 21 entries
## Packaging one part.
/tmp/GNUbison/pkgmap
/tmp/GNUbison/pkginfo
/tmp/GNUbison/root/usr/local/bin/bison
/tmp/GNUbison/root/usr/local/info/bison.info
/tmp/GNUbison/root/usr/local/info/bison.info-1
/tmp/GNUbison/root/usr/local/info/bison.info-2
/tmp/GNUbison/root/usr/local/info/bison.info-3
/tmp/GNUbison/root/usr/local/info/bison.info-4
/tmp/GNUbison/root/usr/local/info/bison.info-5
/tmp/GNUbison/root/usr/local/man/man1/bison.1
/tmp/GNUbison/root/usr/local/share/bison.hairy
/tmp/GNUbison/root/usr/local/share/bison.simple
## Packaging complete.
这将在/tmp下建立目录GNUbison.在GNUbison目录中包含两个文件 pkgmap和pkginfo.pkgmap包含了所有文件的路径,权限,还有每个文件的校验和。pkginfo的内容跟你刚才在/tmp目录下创建的pkginfo文件内容相同,在GNUbison目录中包含一个目录名为"root",这里面包含了将要被安装的软件的文件,如果你包含了checkinstall(preinstall,postinstall)脚本,他们将出现在文件夹install中,你不用担心在最顶层目录中包含了那些文件,除非你需要修复一些bug.
为了存储,传输方便,我们需要创建一个.tar.gz的压缩包
cd /tmp
tar czvf GNUbison.1.25.SPARC.pkg.tar.gz GNUbison
解压并安装软件包
tar zxvf GNUbison.1.25.SPARC.pkg.tar.gz
su -
pkgadd -d $PWD
你将被提示是否安装GNUbison软件包,确认并安装。
有用的文件
介绍:
solaris 软件包可以使软件很容易的安装到solaris系统中。软件的所有部分都被一个目录文件描述。借助包管理工具您可以在solaris系统中很方便得安装,更新,删除软件,而不用担心“恶意文件”存留,或者错误的配置,或者软件的未完全安装。
软件包的创建过程大体上是安装一次软件,然后把软件组织成一个软件安装包,这个软件安装包可以被快速的安装到其他solaris系统,同时可以很容易的在本机卸载。
本文档将使用GNU bison 1.24 作为示例程序。
软件包的创建:
创建软件包,首先要知道软件包包含那些文件。如果您是软件作者,通常这个很简单,否这您就需要先把软件安装到一个独立的目录中,来查看到底那些文件将被包含到软件包中。GNU 软件很容易做到这一点,只需要通过命令`configure --prefix=/dir`,这个dir就是我们临时安装软件的目录,例如我们可以制定软件目录为/usr/local/pkg.
编译后使用`make install`命令来把软件安装到我们指定的目录中(/usr/local/pkg)。通过命令`find /usr/local/pkg -print > /tmp/files`来得到该软件包需要哪些文件,现在我们已经知道我们都需要哪些文件了。
创建软件包配置文件
软件安装完成后,你需要创建一个目录文件提供给软件包创建工具使用。首先需要清理/tmp/files里的文件路径(/usr/local/pkg还在那),编辑文件,并修复文件路径错误,在运行:
%cat /tmp/files | pkgproto > /tmp/Prototype
这将创建文件/tmp/Prototype,内容如下
d none /usr/local 0755 root root d none /usr/local/bin 0755 root root d none /usr/local/man 0755 root root d none /usr/local/man/man1 0755 root root d none /usr/local/lib 0755 root root d none /usr/local/etc 0755 root root d none /usr/local/info 0755 root root d none /usr/local/share 0755 root root f none /usr/local/bin/bison 0755 root root f none /usr/local/man/man1/bison.1 0644 root root f none /usr/local/info/bison.info 0644 root root f none /usr/local/info/bison.info-1 0644 root root f none /usr/local/info/bison.info-2 0644 root root f none /usr/local/info/bison.info-3 0644 root root f none /usr/local/info/bison.info-4 0644 root root f none /usr/local/info/bison.info-5 0644 root root f none /usr/local/share/bison.simple 0644 root root f none /usr/local/share/bison.hairy 0644 root root
检查文件/tmp/Prototype你可能会发现某些权限不是我想要的,我们可以手工编辑每一个文件的权限。
现在你必须在/tmp/Prototype文件中添加指向pkginfo的语句,pkginfo文件将描述pkgmk命令我们要创建的软件包的细节。
在Prototype文件的前端添加一行
i pkginfo
如果你向包含checkinstall, preinstall和postinstall脚本,仅仅需要在Prototype文件头加上就可以。
checkinstall是一个在安装是被运行的的文件,运行的用户是"nobody",通过这个脚本,你可以检查依赖,处理问题,很自然得退出pkgadd程序,唯一需要注意的是当构建软件包时,要保证用户"nobody"有权限读取这个脚本。pkgadd程序不会询问你是否执行checkinstall脚本。
preinstall是在软包正真安装时执行的脚本,运行的用户是"root",在这里产生中断会要求用户使用pkgrm来删除半安装的软件包,pkgadd程序会询问你是否执行preinstall脚本
postinstall是一个软件包安装完成后执行的脚本,运行的用户是"root",通过这个脚本,你可以为刚刚安装的软件做一些额外的事情,例如安装内核驱动,创建设备或者其他后安装过程,pkgadd程序会询问你是否执行preinstall脚本。
添加一下文字到Prototype
i preinstall i postinstall i checkinstall
这些脚本会在软件安装开始后执行,如果出错,这些脚本要以非0退出,会要求pkgrm来清理这些半安装的软件。
最后,我们的Prototype文件如下所示:
i pkginfo d none /usr/local/bin 0755 root root d none /usr/local/man 0755 root root d none /usr/local/man/man1 0755 root root d none /usr/local/lib 0755 root root d none /usr/local/etc 0755 root root d none /usr/local/info 0755 root root d none /usr/local/share 0755 root root f none /usr/local/bin/bison 0755 root root f none /usr/local/man/man1/bison.1 0644 root root f none /usr/local/info/bison.info 0644 root root f none /usr/local/info/bison.info-1 0644 root root f none /usr/local/info/bison.info-2 0644 root root f none /usr/local/info/bison.info-3 0644 root root f none /usr/local/info/bison.info-4 0644 root root f none /usr/local/info/bison.info-5 0644 root root f none /usr/local/share/bison.simple 0644 root root f none /usr/local/share/bison.hairy 0644 root root
可以查看prototype的帮助文件来获取更多的信息
下一步,我们需要创建pkginfo文件,来告诉pkgmk命令需要调用哪些文件。下边是我们创建的pkginfo文件内容
PKG="GNUbison" NAME="GNU bison 1.24" VERSION="1.24" ARCH="sparc" CLASSES="none" CATEGORY="utility" VENDOR="GNU" PSTAMP="4thSep95" EMAIL="request@gnu.ai.mit.edu" ISTATES="S s 1 2 3" RSTATES="S s 1 2 3" BASEDIR="/"
创建软件包
软件包配置文件创建后,你就可以在包含软件配置文件的目录(/tmp)来运行软件包创建命令来创建软件包了。
pkgmk -o -r / -d /tmp -f Prototype
这个命令表示创建软件包,覆盖所有以前的尝试,使用'/'作为根目录来查找文件,在/tmp目录构建软件包,从Prototype文件里来读取构建软件包的配置。
命令的输出是
## Processing pkginfo file.
## Attempting to volumize 19 entries in pkgmap.
part 1 -- 990 blocks, 21 entries
## Packaging one part.
/tmp/GNUbison/pkgmap
/tmp/GNUbison/pkginfo
/tmp/GNUbison/root/usr/local/bin/bison
/tmp/GNUbison/root/usr/local/info/bison.info
/tmp/GNUbison/root/usr/local/info/bison.info-1
/tmp/GNUbison/root/usr/local/info/bison.info-2
/tmp/GNUbison/root/usr/local/info/bison.info-3
/tmp/GNUbison/root/usr/local/info/bison.info-4
/tmp/GNUbison/root/usr/local/info/bison.info-5
/tmp/GNUbison/root/usr/local/man/man1/bison.1
/tmp/GNUbison/root/usr/local/share/bison.hairy
/tmp/GNUbison/root/usr/local/share/bison.simple
## Packaging complete.
这将在/tmp下建立目录GNUbison.在GNUbison目录中包含两个文件 pkgmap和pkginfo.pkgmap包含了所有文件的路径,权限,还有每个文件的校验和。pkginfo的内容跟你刚才在/tmp目录下创建的pkginfo文件内容相同,在GNUbison目录中包含一个目录名为"root",这里面包含了将要被安装的软件的文件,如果你包含了checkinstall(preinstall,postinstall)脚本,他们将出现在文件夹install中,你不用担心在最顶层目录中包含了那些文件,除非你需要修复一些bug.
为了存储,传输方便,我们需要创建一个.tar.gz的压缩包
cd /tmp
tar czvf GNUbison.1.25.SPARC.pkg.tar.gz GNUbison
解压并安装软件包
tar zxvf GNUbison.1.25.SPARC.pkg.tar.gz
su -
pkgadd -d $PWD
你将被提示是否安装GNUbison软件包,确认并安装。
有用的文件
pkginfo PKG="GNUbison" NAME="GNU bison 1.24 SPARC Solaris 2.6" VERSION="1.24" ARCH="sparc" CLASSES="none" CATEGORY="utility" VENDOR="GNU" PSTAMP="12thAugust2004" EMAIL="request@gnu.ai.mit.edu" ISTATES="S s 1 2 3" RSTATES="S s 1 2 3" BASEDIR="/" Prototype i pkginfo i checkinstall d none /usr/local/bin 0755 root root d none /usr/local/man 0755 root root d none /usr/local/man/man1 0755 root root d none /usr/local/lib 0755 root root d none /usr/local/etc 0755 root root d none /usr/local/info 0755 root root d none /usr/local/share 0755 root root f none /usr/local/bin/bison 0755 root root f none /usr/local/man/man1/bison.1 0644 root root f none /usr/local/info/bison.info 0644 root root f none /usr/local/info/bison.info-1 0644 root root f none /usr/local/info/bison.info-2 0644 root root f none /usr/local/info/bison.info-3 0644 root root f none /usr/local/info/bison.info-4 0644 root root f none /usr/local/info/bison.info-5 0644 root root f none /usr/local/share/bison.simple 0644 root root f none /usr/local/share/bison.hairy 0644 root root mkpkg #!/bin/sh pkg=GNUbison pkgfile=GNUbison.1.24.SPARC.Solaris.2.6.pkg.tgz pkgmk -o -r / -d /tmp -f Prototype echo "Setting file permissions in /tmp/${pkg} tree to 644." find /tmp/${pkg} -type f -print | xargs chmod a+r find /tmp/${pkg} -type f -print | xargs chmod u+w echo "Setting directory permissions in /tmp/${pkg} tree to 755." find /tmp/${pkg} -type d -print | xargs chmod 755 if [ -f /tmp/${pkg}/install/preinstall ]; then chmod 755 /tmp/${pkg}/install/preinstall fi if [ -f /tmp/${pkg}/install/postinstall ]; then chmod 755 /tmp/${pkg}/install/postinstall fi if [ -f /tmp/${pkg}/install/preremove ]; then chmod 755 /tmp/${pkg}/install/preremove fi if [ -f /tmp/${pkg}/install/postremove ]; then chmod 755 /tmp/${pkg}/install/postremove fi if [ -f /tmp/${pkg}/install/request ]; then chmod 755 /tmp/${pkg}/install/request fi if [ -f /tmp/${pkg}/install/checkinstall ]; then chmod 755 /tmp/${pkg}/install/checkinstall fi cd /tmp echo Gzipping /tmp/$pkg into /tmp/$pkgfile... /usr/bin/tar -cf - $pkg | gzip -9c > /tmp/$pkgfile checkinstall #!/bin/sh # # expected_release="5.6" expected_platform="sparc" # release=`uname -r` platform=`uname -p` # if [ ${platform} != ${expected_platform} ]; then echo "\n\n\n\tThis package must be installed on a ${expected_platform} architecture\n" echo "\tAborting installation.\n\n\n" exit 1 fi # if [ ${release} != ${expected_release} ]; then # echo "\n\n\n\tThis package must be installed on a ${expected_release} machine\n" # echo "\tAborting installation.\n\n\n" # exit 1 # fi exit 0
发表评论
-
use hibernate3-maven to export sql based on entity
2011-08-07 18:19 1404<plugin> <group ... -
uninstall mysql completely in my Mac X 10.6
2011-08-07 12:19 1218sudo rm /usr/local/mysql ... -
my vimrc
2011-05-14 11:02 1719copy from http://www.vi-improve ... -
使用HSQLDB来作EJB3 EntityBean到Unit Test要点
2010-01-20 17:17 2117add <property name=" ... -
user xrandr to change my desktop's resolution
2009-12-16 17:04 1685xrandr --newmode "1280x ... -
XSS的关键之列表
2009-10-11 17:20 1835//this field are used tp esc ... -
python查看方法帮助(from dive into python)
2009-09-30 11:31 2629def info(object, spanding=10, c ... -
selenium 测试ajax的关键
2009-01-20 18:26 42401: waitForCondition(contidtion, ... -
RichFaces 手记
2008-10-07 15:46 0安装,除了richfaces 下载包中的jar( " ... -
代码检查工具
2008-09-25 11:48 2562findBugs, PMD, CheckStyle find ... -
CI工具hudson
2008-09-24 17:04 3122CI工具除了hudson,还有很多,例如CruiseContr ... -
什么是SVR4?我们为什么要选择SVR4?
2008-09-23 14:13 4971http://www.lslnet.com/linux/f/d ... -
IPS 中的pkg command学习笔记
2008-09-22 17:18 1851pkg(1): 使用pkg(1)来创建一个镜像,安装,升级,管 ... -
On Board前的学习计划
2008-09-18 09:37 15231:在virtual box 上虚拟一个OpenSolaris ... -
YUI Grid CSS的优雅设计
2008-09-02 22:38 2825最近加入了一个GAE的项目cpedialog,该项目的前端布局 ... -
我很懒,但是懒人有懒办法
2008-08-18 17:06 1810今天要使用jackrabbit做个小东西,上apache一看, ... -
当XPath遇上NameSpace
2008-07-23 19:39 6566在jdk5.0中,已经包含了对Xpath的支持,可一通过下面的 ... -
ubuntu下安装ipmsg-飞鸽传书
2008-07-21 09:32 28871 先下载 源码 下载的是gnome2版本的源码 http ... -
sudo 执行时无密码(不安全)
2008-07-17 17:18 2216sudo visudo root ALL=(ALL) ... -
使用ubuntu作为工作桌面详细步骤
2008-07-16 20:33 2322今天终于决定转移到Ubuntu中,把所有工作有关的东西都搬 ...
相关推荐
- **Solaris 10 Zone**:可以在 Solaris 11 上创建 Solaris 10 Zone,保护现有环境不受干扰。 #### 三、Solaris 10 Zone 在 Solaris 11 上的应用 - **业务投资保护**:通过在 Solaris 11 上部署 Solaris 10 Zone...
Oracle Solaris 9 - Solaris 9 Package List-58
### Solaris 下创建用户及管理文件操作指南 #### 一、创建用户及其权限分配 在 Solaris 操作系统中,创建用户是一项基本但非常重要的任务。通过正确的步骤创建用户,并为其分配适当的权限,可以确保系统的安全性与...
在Oracle Solaris 11中,软件包管理是系统维护和部署的重要组成部分,而复制和创建Oracle Solaris 11包仓库是确保系统能够获取最新软件和更新的关键步骤。 一、Oracle Solaris 11包管理系统 Oracle Solaris 11引入...
1. **Package Management System**: Oracle Solaris 11 引入了 IPS (Image Packaging System) 包管理系统,它提供了一种高效、安全的方式来安装、更新和管理软件包。IPS 使用元数据来描述软件包的依赖关系,使得安装...
《UNIX Step by Step》中文第三版是一本深入浅出的UNIX操作系统教程,旨在引导读者逐步掌握这个历史悠久且功能强大的系统。这本书以PDF格式提供,包含了丰富的实用命令介绍,非常适合初学者和有一定经验的用户深入...
Package Group Lists是Oracle Solaris 11.2系统中的一个重要概念,它指的是预定义的一组软件包,这些软件包按照功能或用途被组织在一起,便于用户一次性安装一组相关软件,从而简化系统配置和管理。 在Oracle ...
本文档《Step-by-Step Setup of Oracle GoldenGate MA 12.3 for Oracle.pdf》是一份详细的安装和配置指南,旨在通过真实业务环境的实践案例,引导用户完成Oracle数据库在不同平台和版本间的实时数据复制设置。...
Solaris8,Solaris9,Solaris10,Solaris 11 iso镜像下载
Solaris Package System 是 Makefile “recipes”的框架和存储库,可用于从软件源 tarball 构建 Solaris 软件包。 它提供了广泛可用的源代码和 Solaris 二进制文件之间缺失的链接。
3. 系统分区:规划硬盘空间,为Solaris创建合适的分区,包括根分区(/)、用户分区(/usr)、交换分区(swap)等。 三、安装步骤 1. 引导安装:使用安装媒介启动计算机,进入Solaris安装界面。 2. 语言选择:根据需求选择...
Package Group Lists是Oracle Solaris 11.3系统中的一个重要概念,它指的是预定义的一组软件包,这些软件包按照功能或用途被组织在一起,便于用户安装和管理。在Oracle Solaris 11.3中,这些包组提供了系统的基本...
在Oracle Solaris 11.2中,复制和创建软件包仓库(Package Repositories)是系统管理和维护的重要环节,这允许系统管理员有效地分发、更新和管理软件包。 复制软件包仓库通常是出于备份目的或为了在网络中的多台...
Oracle Solaris 11.3 Copying and Creating Package Repositories in Oracle Solaris 11.3-104
该软件包列表(Package List)详细列出了在Solaris 9 12/02发行版中包含的所有软件包,这些软件包覆盖了操作系统的核心组件、开发工具、网络服务、图形用户界面以及各种实用工具。 Solaris 9的主要特点包括: 1. *...
在本文中,我们将深入探讨如何创建和安装 Solaris Flash 归档文件,这是 Oracle Solaris 提供的一项重要功能,用于快速、可靠的系统部署和恢复。 Solaris Flash 归档文件是一个包含操作系统映像、软件包、配置文件...
通常,这可以通过 Solaris Package Manager 或从 Samba 官方网站获取。确保你下载的是与你的 Solaris 版本兼容的版本。 2. **安装依赖项**: Samba 可能依赖于一些库和工具,例如 C 编译器、开发库等。在安装 ...
【Solaris新手入门】 Solaris是由Sun Microsystems开发的开源操作系统,后来被Oracle公司收购并继续发展。它以其稳定性、安全性和高性能而闻名,尤其在企业级服务器市场中广泛应用。Solaris 10是其一个重要的版本,...
Oracle Solaris 9是Sun Microsystems开发的一个操作系统版本,发布于2003年4月,是Solaris操作系统家族的一部分。这个版本(Solaris 9 4/03)包含了丰富的软件包列表,这些包提供了系统的基本功能和服务,同时也支持...
### Solaris系统管理指南知识点详解 #### 一、Solaris系统管理工具概述 - **工具新增功能**:Solaris系统管理工具不断更新迭代,引入了一系列新功能以满足日益增长的系统管理需求。例如,增强的安全特性、改进的...