跳轉到內容

使用 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
 
  
華夏公益教科書