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 for-
mat
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 KEY-
STORE 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 KEY-
STORE 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.
SunOS 5.11 Last change: 30 Oct 2007 1
User Commands pkgtrans(1)
-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 destina-
tion device. Package instance will be
overwritten if it already exists.
-P passwd Supply password used to decrypt the keystore.
See PAS PHRASE ARGUMENTS in pkgadd(1M) for
details on the syntax of the argument 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 pack-
ages on this device will be translated and placed
on device2. See DEVICE SPECIFIERS, below.
device2 Indicates the destination device. Translated
packages will be placed on this device. See DEV-
ICE SPECIFIERS, below.
pkginst Specifies which package instance or instances on
device1 should be translated. The token all may
be used to indicate all packages. 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 surrounded by single
quotes (') or preceded by a backslash (\).
DEVICE SPECIFIERS
SunOS 5.11 Last change: 30 Oct 2007 2
User Commands pkgtrans(1)
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 iden-
tifier as the device. Common examples of
this device type are /dev/rmt/0 for a remov-
able magnetic tape and /floppy/floppy0 for
the first floppy disk on the system.
pkgtrans can also produce regular file sys-
tem files in a stream format, which is suit-
able 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 specifica-
tion are spool (the default package device
location) and disk1. These names correspond
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
SunOS 5.11 Last change: 30 Oct 2007 3
User Commands pkgtrans(1)
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 $PAS environment
variable:
example% pkgtrans -sg -k /tmp/keystore.p12 -a foo \
-p env:PAS /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.
SunOS 5.11 Last change: 30 Oct 2007 4
User Commands pkgtrans(1)
>0 An error occurred.
ATRIBUTES
See attributes(5) for descriptions of the following attri-
butes:
ATRIBUTE TYPE ATRIBUTE 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), large-
file(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 Last change: 30 Oct 2007 5
|