跳转到内容

使用 TWW 的 CPAM/开发者指南

来自维基教科书,为开放世界提供开放书籍

TWW HPMS 简介

[编辑 | 编辑源代码]

使用此 HPMS 工具的打包程序可以通过将知识数字化为 XML 文件,以编程方式、可重复使用的方式捕获他们所有与包相关的知识。

TWW 公司拥有三种工具来自动执行包管理流程,即软件构建、打包以及包安装和删除。

  • 软件构建
    • sbutils
[root] ls -l /opt/TWWfsw/sbutils12/bin/
total 164
-rwxr-xr-x   1 root     root       38551 Dec  1 15:17 gen-sb-db
-rwxr-xr-x   1 root     root       44418 Dec  1 15:17 sb
[root]
  • 包构建
    • pbutils
[root] ls -l /opt/TWWfsw/pbutils11/bin/
total 186
-rwxr-xr-x   1 root     root       29975 Apr 30  2004 gen-pb-db
-rwxr-xr-x   1 root     root       29169 Apr 30  2004 gen-pkg-db
-rwxr-xr-x   1 root     root       34023 Apr 30  2004 pb
[root]

  • 包管理
    • pkgutils
[root] ls -l /opt/TWWfsw/pkgutils15/bin/
total 542
-rwxr-xr-x   1 root     root       32434 Jan 25  2004 chk-pkg-updates
-rwxr-xr-x   1 root     root       18751 Jan 25  2004 pkg-config
-rwxr-xr-x   1 root     root       48281 Jan 25  2004 pkg-info
-rwxr-xr-x   1 root     root       70570 Jan 25  2004 pkg-inst
-rwxr-xr-x   1 root     other      68887 May 18  2003 pkg-inst~
-rwxr-xr-x   1 root     root       35692 Jan 25  2004 pkg-rm
[root]

创建 hello-world TWW 包

[编辑 | 编辑源代码]

在本教程中,我们将使用传统的 hello world 示例来说明软件包创建流程的数字化。也就是说,您从 stepwise 阅读了关于 TN2137 的新闻更新,该更新介绍了如何配置来自 GNU 的 hello-world 示例以成为一个包含 ppc 和 i386 二进制代码的 fatbinary 可执行文件。

通过将流程自动化到 hello-2.1.1/sb-db.xml 中,我们可以在 tn3127 文档中进一步提高数字化程度。一旦流程被数字化,我们就可以重复实现 tn3127 中目标的准确结果。

TWW 包创建流程图

[编辑 | 编辑源代码]

The flow chart diagram of TWW Cross-Platform Application Management System

上图是创建 TWW 包并上传到应用程序仓库服务器的过程。

  1. 安装 TWW 开发工具。
  2. 从 newtww.sh 脚本创建包模板。
  3. 通过 "sb small-1.0.sb" 构建软件,它将经历以下步骤。
    1. sb -u hello-2.1.1.sb : 解压缩源代码。
    2. sb -C hello-2.1.1.sb : 配置源代码树以生成 fat binary。
    3. sb -B hello-2.1.1.sb : 调用 make 命令来构建源代码。
    4. sb -i hello-2.1.1.sb : 将二进制文件安装到安装目录。
    5. sb -t hello-2.1.1.sb : 在安装目录上测试安装的二进制文件
  4. pb -1 hello-2.1.1.pb 将将安装目录中的二进制文件打包成本地 PMS 格式。
  5. 然后,我们将本地 PMS(在本例中为 Solaris pkgadd)转换为一个 zip 文件。
  6. 生成一个 MD5 校验和文件,以便能够验证文件的完整性。
  7. 将 small-1.0.pkgadd.pkg-inst、small-1.0.pkgadd.pkg-inst.md5sum 上传到包仓库服务器。
  8. 在包仓库服务器的 pkg-db.xml 中添加一个条目。
  9. 现在,包可以通过 Solaris 机器上简单的 "pkg-inst hello" 命令进行检索。

Hyper PMS 架构

[编辑 | 编辑源代码]
HPMS                      TWW

PMS      RPM      PKGADD         WiX          SD-UX
       --------- -----------  -----------  ----------
       | Linux | | Solaris |  | Windows |  | HP-UX  |
OS     |       | |         |  |         |  |        |
       --------  ----------   -----------  ----------

TWW 工具架构

[编辑 | 编辑源代码]

包管理系统

[编辑 | 编辑源代码]
  • 简要介绍几种 PMS 及其包格式
    • RPM
    • Solaris pkgadd
    • HP-UX SD-UX
    • GNUstep pkg
    • MacOS X pkg
    • Debian dpkg
    • 用于嵌入式 Linux 系统的 ipkg。
  • PMS 的比较
  • HPMS 的比较

供应商编译器

[编辑 | 编辑源代码]
  • 针对 sparc 的 Sun WorkShop、Sun Studio、Sun Forte
    • 编译器标志
cc -I. -I. -mr -Qn -xstrconst -xO2 -xtarget=generic -DHAVE_CONFIG_H -I./popt  -c rsync.c -o rsync.o

-mr         :
-Qn         :
-xstrconst  :
-xO2        :
-xtarget    :
  • 针对 intel 的 Sun 编译器
-m :
-
  • Gnu 编译器
  • HP ANSI 编译器

将 TWW HPMS 移植到其他操作系统

[编辑 | 编辑源代码]

将 TWW HPMS 工具移植到其他操作系统时,需要执行以下任务。

  • 移植 TWW HPMS 工具本身。
    • sb 需要添加新的操作系统标识代码。
    • pb 需要有一个新的 Python 模块来处理新的 PMS。
  • 移植包源代码。
    • 包源代码包含特定操作系统的说明。我们需要将新的受支持的操作系统添加到包源代码中。
  • 用于自动化 TWW 工具移植的 Makefile。
    • 与 Makefile 相同,每个 Makefile 都包含特定操作系统的说明,如果添加了新的操作系统,则也需要更新 Makefile。

Linksys NSLU2

[编辑 | 编辑源代码]
  • 一个 Makefile,用于从 sbutils python/C 源代码为 nslu2 构建 TWW sbutils 工具。
  • 编译 sbtuils 工具以生成 sb
  • 使用 sb 编译和构建 pb 和 pkgutils
  • 移植 sbtools
 
  
  • 包构建架构:比较使用 Mac OS X wayd 和为 Mac OS X 移植的 TWW pb。
 
         HPMS     way              MacOS X way
       --------------------------------------------
       |     SimpleFirst.pb  =  SimpleFirst       |
       --------------------------------------------
       |                    |                     |
       - TWW pb/Mac OS X    -----------------------
       |                    |          pbuild     |
       -------------------------------------------- 
       |         SimpleFirst.app                  |
       --------------------------------------------
       |                 Mac OS X                 | 
       --------------------------------------------
  
  • 一个 Makefile,用于为 MacOS X 构建 TWW 工具。
  • 编译 sbtuils 工具以生成 sb
  • 使用 sb 编译和构建 pb 和 pkgutils
  • 移植 sbtools
 
  
  • 包构建架构
       --------------------------------------------
       |     SimpleFirst.pb                       |
       |----------------------------------------- |
       |   pb that support WiX                    |
       | -----------------------------------------|
       |     candle.exe                           | 
       |----------------------------------------- |
       |     light.exe                            |
       |------------------------------------------|
       |               MingW                      |
       |----------------------------------------- |
       |                  Win32 OS                | 
       --------------------------------------------
  
  • 步骤
  • 一个 Makefile,用于为 Win32 构建 TWW 工具。
  • 编译 sbtuils 工具以生成 sb
  • 使用 sb 编译和构建 pb 和 pkgutils
  • 移植 sbtools
  
  • 一个 Makefile,用于为 FreeBSD 构建 TWW 工具。
  • 编译 sbtuils 工具以生成 sb
  • 使用 sb 编译和构建 pb 和 pkgutils
  • 移植 sbtools
 
  

Debian/HURD

[编辑 | 编辑源代码]
  • 一个 Makefile,用于为 Debian 构建 TWW 工具。
  • 编译 sbtuils 工具以生成 sb
  • 使用 sb 编译和构建 pb 和 pkgutils
  • 移植 sbtools
 
  
华夏公益教科书