`
xumingyong
  • 浏览: 182518 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

创建SOLARIS安装包(SRV4格式)

阅读更多

1.  环境

 

OS:  Solaris_10_x86_32bits,

Pkg:Erlang/OTP R13B03

source folder: /usr/local

 

 

2. 创建Prototype文件

 

# find /usr/local -print > /tmp/files

 

# cat /tmp/files | pkgproto > /tmp/Prototype

 

查看该文件内容如下:

 

d none /usr/local 0755 root root
d none /usr/local/doc 0755 bin bin
d none /usr/local/doc/autoconf 0755 root bin
f none /usr/local/doc/autoconf/COPYING 0644 root bin
f none /usr/local/doc/autoconf/THANKS 0644 root bin

.........

 

如果需要,可修改该文件中的权限部分。

 

然后,你需要为pkginfo命令添加一个指针,告诉pkgmk命令你锁创建的包的细节。请在Prototype文件开头加上以下内容:

 

i pkginfo

 

 如果你想运行checkinstall, preinstall, postinstall脚本,也将他们加入到Prototype文件开头:

 

i preinstall
i postinstall
i checkinstall

 

checkinstall由nobody用户执行,可检查软件包的依赖性、以及目录访问权限。pkgadd命令不会问你是否执行该脚本。

preinstall由root用户在安装过程中执行, 取消安装时用户需要执行pkgrm命令删除未完全安装的包,pkgadd命令会问你是否执行该脚本。

postinstall由root在安装结束后执行,执行一些善后工作,pkgadd命令会问你是否执行该脚本。

 

 

3. 创建pkginfo文件

 

主要用于命名,比如:

 

PKG="XMYerlang"
NAME="Erlang/OTP-R13B03 Solaris 10 x86 32bits"
VERSION="13.03"
ARCH="x86"
CLASSES="none"
CATEGORY="utility"
VENDOR="GNU"
PSTAMP="1stSep09"
EMAIL="xumingyong@gmail.com"
ISTATES="S s 1 2 3"
RSTATES="S s 1 2 3"
BASEDIR="/"

 

 

4. 创建包

 

# pkgmk -o -r / -d /tmp -f Prototype

This command means make the package, overwrite any previous attempts, use '/' as the root directory for locating the files, build the package in the /tmp directory and finally, take the list of files and attributes from the Prototype file.

 

这样,在/tmp目录下就创建了一个XMYerlang文件夹,其下包含pkgmap和pkginfo文件。pkgmap文件包含所有文件的路径、权限和校验和。pkginfo文件的内容和/tmp/pkginfo文件内容一样。/tmp/XMYerlang/root文件夹下包含真实部署系统文件树结构。

 

如果你包含了checkinstall脚本,则会被防止在一个install目录下。

 

# cd /tmp

# tar -cf - XMYerlang | gzip -9 -c > XMYerlang-13.03-sol10-x86-32bits.pkg.tar.gz

 

 

5. 解压缩包并安装

 

# gunzip -c XMYerlang-13.03-sol10-x86-32bits.pkg.tar.gz | tar -xf -

 

# pkgadd -d XMYerlang-13.03-sol10-x86-32bits.pkg.tar.gz

 

 

6. 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

 

 

 

7. 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

 

分享到:
评论

相关推荐

    Mt4 Srv文件读取助手.rar

    有了SDK,开发者可以创建定制化的解决方案,比如"MT4 Srv文件读取助手"这样的实用工具,提高工作效率,满足特定需求。 总的来说,“MT4 Srv文件读取助手”是一款针对MT4平台的辅助工具,它利用MT4 API和SDK,帮助...

    使用 ftp-srv 在 nodejs 创建FTP服务器,简单版

    在这个场景中,我们将探讨如何使用Node.js中的`ftp-srv`库来创建一个简单的FTP服务器。`ftp-srv`是一个易于使用的FTP服务器模块,它允许开发者自定义各种操作,包括处理文件系统的交互。 首先,`index.js`是主入口...

    IP新技术进阶系列 - 公网IPv4 over SRv6 BE深度解析

    主要内容包含:组网方案、IS-IS全局配置、IS-IS接口配置、IS-IS路由计算、SRv6配置、携带SRv6信息的IS-IS LSP报文格式解析、IS-IS路由计算、在PE上配置End.DT4 SID、PE上生成End.DT4 SID,并加入本地SID表、在PE间...

    srv05-4.pdf

    型号SRV05-4是一种集成瞬态抑制二极管(TVS)的浪涌保护器,属于SOT23-6L封装,具有以下特点: 1. 工作电压:5.0V,这意味着该器件在不超过此电压的正常工作环境下能够提供保护。 2. 保护线路数量:SRV05-4能够...

    SRV6特性培训.pdf

    4. **网络切片**:在5G网络中,SRv6支持网络切片,能够为不同服务或用户群体创建独立的虚拟网络,确保性能和隔离性。 5. **高可靠性**:通过内置的保护机制,如SID(Segment Identifier)重叠和备份路径,SRv6能...

    ESD放电二极管SRV05-4有啥特性?

    SRV05-4是一款专为消费电子设计的ESD保护二极管,其主要特性如下: 1. **封装形式**:SRV05-4采用SOT-26封装,这种小型封装方式有利于节省电路板空间,适应紧凑型电子产品的需求。 2. **保护电压**:该二极管的...

    SRv6 Network Programming.pdf

    4. End-to-End:SRv6 可以跨越 DC、Metro 和 WAN 等不同网络环境,提供了 End-to-End 的网络连接。 SRv6 的实现方式有两种: 1. IPv6 实现:SRv6 使用 IPv6 的扩展头来编码拓扑和服务路径,每个段列表对应一个地址...

    静电和浪涌保护(TVS-ESD)-SRV05-4HTG-TECH PUBLIC(台舟)瞬态抑制二极管(TVS)规格书.PDF

    ### 静电和浪涌保护(TVS-ESD) - SRV05-4HTG - TECH PUBLIC(台舟)瞬态抑制二极管(TVS)规格书 #### 一、产品概述 该规格书介绍了由TECH PUBLIC(台舟)生产的SRV05-4HTG型瞬态电压抑制器(TVS)。此器件主要用于静电...

    SRV05-4-p-t7

    SRV05-4的设计满足了IEC 61000-4-2中对ESD免疫性要求的第四级标准(±15kV空气放电,±8kV接触放电),以及IEC 61000-4-4和IEC 61000-4-5标准中的EFT和闪电测试要求,这确保了其在实际应用中能够应对各种恶劣环境下...

    IPv6 系列技术讲解-SRv6.pdf

    * SRv6 SID 有何特殊之处:SRv6 SID(Segment Identifier)是 SRv6 的一个关键组件,它具有特殊的编码格式和处理机制。 本文档为读者提供了SRv6技术的详细介绍,涵盖了SRv6的简介、产生背景、技术价值和基础原理等...

    IP新技术进阶系列 - SRv6 Ping&Tracert深度解析

    IS路由计算、SRv6配置、IS-IS路由计算、查看各个设备的本地SID表、在PE间建立双向SRv6 TE Policy、查看SRv6 TE Policy状态、SRv6 Ping&Tracert介绍、逐段Ping&Tracert检测、逐段Ping检测详细报文格式、逐段Tracert...

    IP新技术进阶系列 - SRv6 TE Policy深度解析

    主要包含:业务模型、独特优势、保护技术、如何配置SRv6 TE Policy、静态配置SRv6 TE Policy、IS-IS配置、SRv6基础配置、查看SRv6本地SID表、携带SRv6信息的IS-IS LSP报文格式、IS-IS路由计算、SRv6 TE Policy配置、...

    srv记录naptr记录

    srv 记录 naptr 记录 srv 记录是 DNS 服务器数据库中的一种资源记录类型,它记录了哪台计算机提供了哪个服务的简单信息。srv 记录主要用于 Microsoft 的活动目录设置时的应用。DNS 可以独立于活动目录,但是活动...

    (视频)IP新技术进阶系列 - SRv6 TE Policy深度解析

    主要包含:业务模型、独特优势、保护技术、如何配置SRv6 TE Policy、静态配置SRv6 TE Policy、IS-IS配置、SRv6基础配置、查看SRv6本地SID表、携带SRv6信息的IS-IS LSP报文格式、IS-IS路由计算、SRv6 TE Policy配置、...

    SOT-26__SRV05-4.pdf

    ### SOT-26__SRV05-4.pdf 知识点解析 #### 标题与描述解析 - **标题**: "SOT-26__SRV05-4.pdf" — 这个文件名暗示了文档内容是关于SRV05-4型号的产品介绍,采用SOT-26封装形式。 - **描述**: "电磁兼容工程师选型...

    (视频)IP新技术进阶系列 - SRv6 Ping&Tracert深度解析

    IS路由计算、SRv6配置、IS-IS路由计算、查看各个设备的本地SID表、在PE间建立双向SRv6 TE Policy、查看SRv6 TE Policy状态、SRv6 Ping&Tracert介绍、逐段Ping&Tracert检测、逐段Ping检测详细报文格式、逐段Tracert...

    srv蓝屏解决补丁

    标题中的“srv蓝屏解决补丁”指的是针对服务器运行过程中出现的蓝屏问题,特别是由于srv.sys驱动程序导致的问题,而提供的一种修复解决方案。在Windows操作系统中,srv.sys是服务子系统的主要驱动程序,它负责处理...

    ros中srv服务自定义string 发布

    ROS中的消息(`msgs`)是用来在节点之间传递数据的结构化格式,而服务(`srv`)是基于这些消息的请求-响应通信机制。在这个例子中,`xx_msgs`可能是用户自定义的ROS消息包,包含了我们的`StatusTransfer`服务定义。 ...

    华为(IPv6+系列)SRv6

    华为IP网络系列丛书SRv6 主要包含内容:SRv6简介、SRv6的产生背景、SRv6的技术价值、SRv6的基础原理、SRv6的工作模式、SRv6支持5G与云业务、SRv6的成功应用、从SRv6到IPv6+。

Global site tag (gtag.js) - Google Analytics