|
|||
The Process of Building a Package (Task Map) Organizing a Package's Contents 3. Enhancing the Functionality of a Package (Tasks) 4. Verifying and Transferring a Package 5. Case Studies of Package Creation |
Building a PackageUse the pkgmk command to build your package. The pkgmk command performs the following tasks:
Using the Simplest pkgmk CommandThe simplest form of this command is the pkgmk command without any options. Before using the pkgmk command without options, make sure that your current working directory contains the package's prototype file. The output of the command, files and directories, are written to the /var/spool/pkg directory. The pkgmap FileWhen you build a package with the pkgmk command, it creates a pkgmap file that replaces the prototype file. The pkgmap file from the previous example has the following contents: $ more pkgmap : 1 3170 1 d none SUNWcadap 0755 root sys 1 d none SUNWcadap/demo 0755 root bin 1 f none SUNWcadap/demo/file1 0555 root bin 14868 45617 837527496 1 d none SUNWcadap/lib 0755 root bin 1 f none SUNWcadap/lib/file2 0644 root bin 1551792 62372 837527499 1 d none SUNWcadap/man 0755 bin bin 1 d none SUNWcadap/man/man1 0755 bin bin 1 f none SUNWcadap/man/man1/file3.1 0444 bin bin 3700 42989 837527500 1 f none SUNWcadap/man/man1/file4.1 0444 bin bin 1338 44010 837527499 1 f none SUNWcadap/man/windex 0644 root other 157 13275 837527499 1 d none SUNWcadap/srcfiles 0755 root bin 1 f none SUNWcadap/srcfiles/file5 0555 root bin 12208 20280 837527497 1 f none SUNWcadap/srcfiles/file6 0555 root bin 12256 63236 837527497 1 i pkginfo 140 10941 837531104 $ The format of this file is very similar to the format of the prototype file. However, the pkgmap file includes the following information:
How to Build a Package
Example 2-2 Building a PackageThis example uses the prototype file created in Fine-Tuning a prototype File Created With the pkgproto Command. $ cd /home/jane/InfoFiles $ pkgmk ## Building pkgmap from package prototype file. ## Processing pkginfo file. WARNING: parameter set to "system990708093144" WARNING: parameter set to "none" ## Attempting to volumize 13 entries in pkgmap. part 1 -- 3170 blocks, 17 entries ## Packaging one part. /var/spool/pkg/SUNWcadap/pkgmap /var/spool/pkg/SUNWcadap/pkginfo /var/spool/pkg/SUNWcadap/reloc/SUNWcadap/demo/file1 /var/spool/pkg/SUNWcadap/reloc/SUNWcadap/lib/file2 /var/spool/pkg/SUNWcadap/reloc/SUNWcadap/man/man1/file3.1 /var/spool/pkg/SUNWcadap/reloc/SUNWcadap/man/man1/file4.1 /var/spool/pkg/SUNWcadap/reloc/SUNWcadap/man/windex /var/spool/pkg/SUNWcadap/reloc/SUNWcadap/srcfiles/file5 /var/spool/pkg/SUNWcadap/reloc/SUNWcadap/srcfiles/file6 ## Validating control scripts. ## Packaging complete. $ Example 2-3 Specifying a Source Directory for Relocatable FilesIf your package contains relocatable files, you can use the -b base-src-dir option to the pkgmk command to specify a path name to be added to the beginning of the relocatable path names while the package is being created. This option is useful if you haven't used the path1=path2 format for relocatable files or specified a search path with the !search command in the prototype file. The following command builds a package with the following characteristics:
$ cd /home/jane/InfoFiles $ pkgmk -o -b /home/jane ## Building pkgmap from package prototype file. ## Processing pkginfo file. WARNING: parameter set to "system960716102636" WARNING: parameter set to "none" ## Attempting to volumize 13 entries in pkgmap. part 1 -- 3170 blocks, 17 entries ## Packaging one part. /var/spool/pkg/SUNWcadap/pkgmap /var/spool/pkg/SUNWcadap/pkginfo /var/spool/pkg/SUNWcadap/reloc/SUNWcadap/demo/file1 /var/spool/pkg/SUNWcadap/reloc/SUNWcadap/lib/file2 /var/spool/pkg/SUNWcadap/reloc/SUNWcadap/man/man1/file3.1 /var/spool/pkg/SUNWcadap/reloc/SUNWcadap/man/man1/file4.1 /var/spool/pkg/SUNWcadap/reloc/SUNWcadap/man/windex /var/spool/pkg/SUNWcadap/reloc/SUNWcadap/srcfiles/file5 /var/spool/pkg/SUNWcadap/reloc/SUNWcadap/srcfiles/file6 ## Validating control scripts. ## Packaging complete. In this example, the package is built in the default directory, /var/spool/pkg, by specifying the -o option. This option overwrites the package that was created in Example 2-2. Example 2-4 Specifying Different Source Directories for Information Files and Package ObjectsIf you put package information files (such as pkginfo and prototype) and the package objects in two different directories, you can create your package by using the -b base-src-dir and -r rootpath options to the pkgmk command. If you have your package objects in a directory called /product/pkgbin and the other package information files in a directory called /product/pkgsrc, you could use the following command to place the package in the /var/spool/pkg directory: $ pkgmk -b /product/pkgbin -r /product/pkgsrc -f /product/pkgsrc/prototype Optionally, you could use these commands to achieve the same result: $ cd /product/pkgsrc $ pkgmk -o -b /product/pkgbin In this example, the pkgmk command uses the current working directory to find the remaining parts of the package (such as the prototype and pkginfo information files). See AlsoIf you want to add any optional information files and installation scripts to your package, see Chapter 3, Enhancing the Functionality of a Package (Tasks). Otherwise, after you build the package, you should verify its integrity. Chapter 4, Verifying and Transferring a Package explains how to do so, and provides step-by-step instructions on how to transfer your verified package to a distribution medium. |
||
|