Manual pages › General commands (1)
pkgtrans-apkgeng(1)
translate package format
Package: APKGENG, added for amigaux.
This is apkg's own copy, /usr/apkg/bin/pkgtrans, off the search path; pkgtrans at the shell runs the original: see pkgtrans(1).
NAME
pkgtrans - translate package format
SYNOPSIS
pkgtrans [-inosg] device1 device2
[pkginst]...
DESCRIPTION
The pkgtrans utility translates an installable package from one format to another. It translates:
a file system format to a datastream
a datastream to a file system format
one file system format to another file system format
The options and arguments for this command are:
- -i
- Copies only the pkginfo(5) and pkgmap(5) files.
- -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(5) file.
- -o
- Overwrites the same instance on the destination device. Package instance will be overwritten if it already exists.
- -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.
- device1
- Indicates the source device. The package or packages 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 DEVICE 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
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 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(5) 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:
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:
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:
pkgtrans -s /tmp /dev/diskette pkg1 pkg2
The following example translates a package datastream into a file system format package:
pkgtrans /tmp/pkg1.pkg ~/tmp pkg1
ENVIRONMENT VARIABLES
The MAXINST variable is set in the pkginfo(5) file and declares the maximum number of package instances.
When SOURCE_DATE_EPOCH is set to a number of seconds, pkgtrans -s archives each package's members in C sort order and, once the datastream file is written, rewrites the header of every member: inode numbers from 1 in archive order (hard links keep one number), owner, group and device 0, the modification time that epoch, and a directory's link count 2 plus its subdirectories. Names, modes, sizes and contents are unchanged, and every field is written in upper-case hex, whichever case cpio wrote, so a roll on Amix is the same bytes as one on another host. A value that is not a number of seconds is an error.
SEE ALSO
pkginfo(1), pkgmk(1), pkgparam(1), pkgproto(1), installf(1M), pkgadd(1M), pkgask(1M), pkgrm(1M), removef(1M), pkginfo(5), pkgmap(5)
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.
| 2/27/07 | Heirloom Packaging Tools |