pkgtrans(1) User Commands pkgtrans(1)
NAME
pkgtrans - translate package format
SYNOPSIS
pkgtrans [-inosg] [-k keystore] [-a alias] [-P passwd] device1 device2
[pkginst]...
DESCRIPTION
The pkgtrans utility translates an installable package from one format to another. It translates:
o a file system format to a datastream
o a file system format to a signed datastream
o a datastream to a file system format
o one file system format to another file system format
OPTIONS
The options and arguments for this command are:
-a alias Use public key certificate associated with friendlyName alias, and the corresponding private key. See KEYSTORE LOCATIONS and
KEYSTORE AND CERTIFICATE FORMATS in pkgadd(1M) for more information.
-g Sign resulting datastream.
-i Copies only the pkginfo(4) and pkgmap(4) files.
-k keystore Use keystore to retrieve private key used to generate signature. If it not specified, default locations are searched to find
the specified private key specified by -a. If no alias is given, and multiple keys exist in the key store, pkgtrans will
abort. See KEYSTORE LOCATIONS and KEYSTORE AND CERTIFICATE FORMATS in pkgadd(1M) for more information on search locations
and formats.
When running as a user other than root, the default base directory for certificate searching is ~/.pkg/security, where ~ is
the home directory of the user invoking pkgtrans.
-n Creates a new instance of the package on the destination device if any instance of this package already exists, up to the
number specified by the MAXINST variable in the pkginfo(4) file.
-o Overwrites the same instance on the destination device. Package instance will be overwritten if it already exists.
-P passwd Supply password used to decrypt the keystore. See PASS PHRASE ARGUMENTS in pkgadd(1M) for details on the syntax of the argu-
ment to this option.
-s Indicates that the package should be written to device2 as a datastream rather than as a file system. The default behavior
is to write a file system format on devices that support both formats.
OPERANDS
device1 Indicates the source device. The package or packages on this device will be translated and placed on device2. See DEVICE SPECI-
FIERS, below.
device2 Indicates the destination device. Translated packages will be placed on this device. See DEVICE SPECIFIERS, below.
pkginst Specifies which package instance or instances on device1 should be translated. The token all may be used to indicate all pack-
ages. pkginst.* can be used to indicate all instances of a package. If no packages are defined, a prompt shows all packages on
the device and asks which to translate.
The asterisk character (*) is a special character to some shells and may need to be escaped. In the C-Shell, the * must be sur-
rounded by single quotes (') or preceded by a backslash ().
DEVICE SPECIFIERS
Packaging tools, including pkgtrans, pkgadd(1M), and pkgchk(1M), have options for specifying a package location by specifying the device on
which it resides. Listed below are the device types that a package can be stored to and retrieved from. Note that source and destination
devices cannot be the same.
device Packages can be stored to a character or block device by specifying the device identifier as the device. Common examples of
this device type are /dev/rmt/0 for a removable magnetic tape and /floppy/floppy0 for the first floppy disk on the system.
pkgtrans can also produce regular file system files in a stream format, which is suitable for storage on a character
device, web server, or as input to pkgadd(1M).
device alias Devices that have been specified in /etc/device.tab are eligible for being the recipient or source of a package. Common
examples of this type of device specification are spool (the default package device location) and disk1. These names corre-
spond to devices specified in /etc/device.tab
directory Packages can be stored onto a directory by specifying an absolute path to a file system directory. The package contents
reside in a directory within the specified directory. The package directory name must be identical to its PKG specification
in the pkginfo(4) file. An example device specification of this type is /export/packages.
EXAMPLES
Example 1 Translating All Packages on the Floppy Disk
The following example translates all packages on the floppy drive /dev/diskette and places the translations on /tmp:
example% pkgtrans /dev/diskette /tmp all
Example 2 Translating Packages on /tmp
The following example translates packages pkg1 and pkg2 on /tmp and places their translations (that is, a datastream) on the 9track1 output
device:
example% pkgtrans /tmp 9track1 pkg1 pkg2
Example 3 Translating Packages on /tmp
The following example translates pkg1 and pkg2 on /tmp and places them on the diskette in a datastream format:
example% pkgtrans -s /tmp /dev/diskette pkg1 pkg2
Example 4 Creating a Signed Package
The following example creates a signed package from pkg1 and pkg2, and reads the password from the $PASS environment variable:
example% pkgtrans -sg -k /tmp/keystore.p12 -a foo
-p env:PASS /tmp /tmp/signedpkg pkg1 pkg2
Example 5 Translating a Package Datastream
The following example translates a package datastream into a file system format package:
example% pkgtrans /tmp/pkg1.pkg ~/tmp pkg1
ENVIRONMENT VARIABLES
The MAXINST variable is set in the pkginfo(4) file and declares the maximum number of package instances.
EXIT STATUS
0 Successful completion.
>0 An error occurred.
ATTRIBUTES
See attributes(5) for descriptions of the following attributes:
+-----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+-----------------------------+-----------------------------+
|Availability |SUNWpkgcmdsu |
+-----------------------------+-----------------------------+
|Interface Stability |See below. |
+-----------------------------+-----------------------------+
The command-line syntax is Evolving. The digitally-signed stream package is Evolving.
SEE ALSO
pkginfo(1), pkgmk(1), pkgparam(1), pkgproto(1), installf(1M), pkgadd(1M), pkgask(1M), pkgrm(1M), removef(1M), pkginfo(4), pkgmap(4),
attributes(5), largefile(5)
Application Packaging Developer's Guide
NOTES
By default, pkgtrans does not translate any instance of a package if any instance of that package already exists on the destination device.
Using the -n option creates a new instance if an instance of this package already exists. Using the -o option overwrites an instance of
this package if it already exists. Neither of these options are useful if the destination device is a datastream.
Package commands are largefile(5)-aware. They handle files larger than 2 GB in the same way they handle smaller files. In their current
implementations, pkgadd(1M), pkgtrans and other package commands can process a datastream of up to 4 GB.
SunOS 5.11 30 Oct 2007 pkgtrans(1)