Go to main content

man pages section 1: User Commands

Exit Print View

Updated: Wednesday, February 10, 2021
 
 

pkgsurf(1)

Name

pkgsurf - Image Packaging System repository resurfacing utility

Synopsis

/usr/bin/pkgsurf -s target_repo -r reference_repo [-n]
    [-p publisher_prefix]... [-i name]... [-c pattern]...

Description

pkgsurf is a package publication tool for replacing packages in a target repository that have not changed since the latest published version in the reference repository. The result is a new version surface of all packages in the target repository.

pkgsurf operations are not reversible. In case the pkgsurf operation must be reverted, you should store the target repository in its own ZFS dataset and take a snapshot of the dataset before you run pkgsurf.

Packages in the target repository are compared to packages in the reference repository and analyzed for content changes. For each package, if no content change is found, the package manifest is removed from the target repository and replaced with the manifest of the same package from the reference repository.

The target repository must be a file system based repository. For optimal performance, the reference repository should also be a file system based repository.

The target repository should contain only one version of each package. If the target repository contains a package that is both newer than the latest version in the reference repository and older than the latest version in the target repository, no package manifest replacement is done for that package.

The reference repository can contain one or more versions of each package. However, only the latest version will be used for comparison.

Options

The following options are supported:

–?
–-help

Display a usage message.

–c pattern

Treat every package whose FMRI matches pattern as changed and do not reversion it, even if there is no content change. This option can be specified multiple times.

–i name

Ignore set actions with the name field set to name for determination of content change. The package will be reversioned even if this action differs between target and reference versions. This option can be specified multiple times.

–n

Perform a trial run of the operation with no changes made to the target repository.

–p publisher_prefix

Specify the name of the publisher to be resurfaced. This option can be specified multiple times.

By default, packages from all publishers found in target and reference repositories are resurfaced.

–r reference_repo

Specify the URI of the reference repository to be used for manifest comparison. Only the latest version of each package is considered.

–s target_repo

Specify the path to the target repository. Packages in this repository are reversioned to the versions present in the reference repository according to the comparison results. The target repository should contain only one version of each package. The target repository must be a file system based repository.

Environment Variables

The following environment variable is supported:

PKG_REPO

The absolute path of the target repository.

Examples

Example 1 Resurface a Repository

Reversion each package in the target repository that did not have any content change from the same package in the reference repository.

$ pkgsurf -s /path/to/target -r http://reference.example.com

Sample package in the target repository:

set name=pkg.fmri value=pkg://example.com/foo@2.0:20381001T163427Z
dir group=sys mode=0755 owner=root path=usr

Sample package in the reference repository:

set name=pkg.fmri value=pkg://example.com/foo@1.0:20381001T163427Z
dir group=sys mode=0755 owner=root path=usr

Sample package in the target repository after the pkgsurf operation:

set name=pkg.fmri value=pkg://example.com/foo@1.0:20381001T163427Z
dir group=sys mode=0755 owner=root path=usr

Exit Status

The following exit values are returned:

0

Command succeeded.

1

An error occurred.

2

Invalid command line options were specified.

99

An unanticipated exception occurred.

Attributes

See attributes(7) for descriptions of the following attributes:

ATTRIBUTE TYPE
ATTRIBUTE VALUE
Availability
package/pkg
Interface Stability
Uncommitted

See Also

pkgrepo(1), pkg(7)

Creating Package Repositories in Oracle Solaris 11.4

https://github.com/oracle/solaris-ips