svcadm(8)을 검색하려면 섹션에서 8 을 선택하고, 맨 페이지 이름에 svcadm을 입력하고 검색을 누른다.
pkgsend(1)
pkgsend(1) User Commands pkgsend(1)
NAME
pkgsend - Image Packaging System publication client
SYNOPSIS
/usr/bin/pkgsend [options] command [cmd_options] [operands]
/usr/bin/pkgsend generate [-T pattern] [-u] [--target file]
source ...
/usr/bin/pkgsend publish [-b bundle]... [-d source]...
[-s repo_uri_or_path] [--key ssl_key --cert ssl_cert]...
[-T pattern] [--no-catalog] [manifest ...]
DESCRIPTION
pkgsend enables the publication of new packages and new package ver‐
sions to an image packaging repository using package manifests. To cre‐
ate or manage repositories, see pkgrepo(1). To create package archives
from packages in an existing repository, see pkgrecv(1). For more
information about package manifests, see pkg(7).
After a pkgsend publish operation, if your repo_uri_or_path repository
must support pkg search operations, run pkgrepo refresh on the reposi‐
tory to update search indexes.
OPTIONS
The following options are supported:
-?
--help
Display a usage message.
SUB-COMMANDS
The following subcommands are supported:
pkgsend generate [-T pattern] [-u] [--target file] source ...
Read each source (such as an SVR4 package, a directory, or a tar
file) and emit the manifest that describes the source to stdout.
The output manifest can then be annotated, have dependencies added
or analyzed using pkgdepend, and have its correctness verified
using pkglint before being passed to the publish subcommand.
The following are supported sources:
o Filesystem format SVR4 packages
o Datastream format SVR4 packages
o tar files
o Directories
If the base name of files in the source match the patterns speci‐
fied with -T, the timestamp of the file is added to the action for
that file. The pattern uses shell matching rules:
* Matches everything.
? Matches any single character.
[seq] Matches any character in seq.
![seq] Matches any character not in seq.
When the specified source is a directory, there is no clear way to
distinguish a file action from a hardlink action when there are
multiple path names for a single inode. Normally, the first one
found in the file system walk is treated as a file and the rest as
hardlinks. This can be arbitrary, depending on the implementation
of the file system. To specify which path names should be treated
as files, pass each path name as an argument to the --target
option. This option has no effect on other types of sources because
they are capable of expressing which path names are files and which
are hardlinks.
When SVR4 packages are provided as a source, pkgsend checks that no
files with class action scripts are present and no preinstall,
postinstall, preremove, or postremove scripts are present. An
exception is made for any SMF manifests installed with the manifest
class. BASEDIR is removed from all relocatable paths.
The SVR4 DESC parameter is converted to a pkg.description value.
The SVR4 NAME parameter is converted to a pkg.summary value.
When generating a manifest based on a directory, the owner and
group for each file and directory defaults to root and bin respec‐
tively. To use the owner and group information set on the files and
directories instead, specify -u.
pkgsend publish [-b bundle]... [-d source]... [-s repo_uri_or_path]
[--key ssl_key --cert ssl_cert]... [-T pattern] [--no-catalog] [mani‐
fest ...]
Publish a package using the specified package manifests to the tar‐
get package repository, retrieving files for the package from the
provided sources. If multiple manifests are specified, they are
joined in the order provided. If a manifest is not specified, the
manifest is read from stdin.
If not specified, pkgsend publish adds the build version to the
package FMRI. The publish tool also adds the timestamp (the current
time in UTC) to the package FMRI. See the pkg(7) man page for
information about the version string of a package FMRI.
If multiple pkgsend publish processes might be publishing to the
same -s repository simultaneously, specifying the --no-catalog
option is recommended. See the description of the --no-catalog
option below.
-b bundle
Add the specified bundle to the list of sources to search when
looking for files in the manifest. Bundles are sources such as
tar files and SVR4 packages. If this option is specified multi‐
ple times, sources are searched in the order they appear on the
command line. If both -b and -d are specified, -d sources are
searched first. For a description of supported bundles and how
they are used, refer to the generate subcommand above.
-d source
Add the specified directory to the list of sources to search
when looking for files in the manifest. If this option is spec‐
ified multiple times, sources are searched in the order they
appear on the command line. For a description of supported
sources and how they are used, refer to the generate subcommand
above.
-s repo_uri_or_path
Publish the package to the repository located at the given URI
or file system path. See the "Notes" section below for more
information about restrictions and suggestions for publication.
See also the "Environment Variables" section.
--key ssl_key --cert ssl_cert
Use the --key option to specify a client SSL key file to use
for package retrieval from an HTTPS repository. Use the --cert
option to specify a client SSL certificate file to use for
package retrieval from an HTTPS repository. This option pair
can be specified multiple times.
--no-catalog
Do not add the package to the publisher's catalog. This option
is recommended whenever multiple packages are being published
at one time because updates to publisher catalogs must be per‐
formed serially. Publication performance might be significantly
reduced if this option is not used when multiple processes are
simultaneously publishing packages. After publication is com‐
plete, the new packages can be added to the respective pub‐
lisher catalogs by using the pkgrepo refresh command.
For a description of the -T option, see the generate subcommand
above.
ENVIRONMENT VARIABLES
PKG_CLIENT_CONNECT_TIMEOUT
Seconds to wait trying to connect during transport operations (for
each attempt) before the client aborts the operation. A value of 0
means wait indefinitely.
Default value: 60
PKG_CLIENT_LOWSPEED_TIMEOUT
Seconds below the lowspeed limit (1024 bytes/second) during trans‐
port operations before the client aborts the operation. A value of
0 means do not abort the operation.
Default value: 30
PKG_CLIENT_MAX_CONSECUTIVE_ERROR
Maximum number of transient transport errors before the client
aborts the operation. A value of 0 means do not abort the opera‐
tion.
Default value: 4
PKG_CLIENT_MAX_REDIRECT
Maximum number of HTTP or HTTPS redirects allowed during transport
operations before a connection is aborted. A value of 0 means do
not abort the operation.
Default value: 5
PKG_CLIENT_MAX_TIMEOUT
Maximum number of transport attempts per host before the client
aborts the operation. A value of 0 means do not abort the opera‐
tion.
Default value: 4
http_proxy, https_proxy
HTTP or HTTPS proxy server. Use the following syntax to set either
http_proxy or https_proxy:
http_proxy [protocol://]host[:port]
no_proxy
List of host names that should not go through any proxy. If set to
asterisk (*) only, all hosts are matched: no hosts will be proxied.
Use the following syntax to set no_proxy:
no_proxy [* | host[,host]...]
PKG_REPO
The path or URI of the destination repository.
EXAMPLES
Example 1 Generate and Publish a Package
Create a package using pkgsend generate and publish it.
$ pkgsend generate /path/to/proto > /path/to/manifests/foo.p5m
Add the package FMRI for the example.com publisher to the beginning of
foo.p5m.
set name=pkg.fmri value=pkg://example.com/foo@1.0
The resulting manifest should look like this:
set name=pkg.fmri value=pkg://example.com/foo@1.0
dir group=sys mode=0755 owner=root path=usr
dir group=bin mode=0755 owner=root path=usr/bin
file usr/bin/foo group=bin mode=0555 owner=root path=usr/bin/foo
$ pkgsend publish -s http://example.com:10000 -d /path/to/proto \
/path/to/manifests/foo.p5m
Example 2 Create and Publish a Trivial Package
Create a manifest for publisher example.com containing the following
lines:
set name=pkg.fmri value=pkg://example.com/foo@1.0-1
file /exdir/foo mode=0555 owner=root group=bin path=/usr/bin/foo
Publish the package:
$ pkgsend publish -s http://example.com:10000 -d /exdir
Example 3 Use a Preexisting Manifest
Publish a package using file system based publication and a preexisting
manifest.
$ pkgsend publish -s /tmp/example_repo -d /tmp/pkg_files \
/tmp/pkg_manifest
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:
tab() box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) ATTRIBUTE TYPEAT‐
TRIBUTE VALUE _ Availabilitypackage/pkg _ Interface StabilityUncommit‐
ted
SEE ALSO
pkgdepend(1), pkgrepo(1), pkg.depotd(8), pkg(7)
Packaging and Delivering Software With the Image Packaging System in
Oracle Solaris 11.4
https://github.com/oracle/solaris-ips
NOTES
Because of publication protocol limitations, file system based publica‐
tion must be used when publishing individual package files that are
greater than 128 MB in size. File system based publication is also rec‐
ommended when access control for a repository is needed.
When using file system based publication, any pkg.depotd processes that
are serving the target repository must be restarted after publication
is completed for the changes to be reflected in its web interface or
search responses. See pkg.depotd(8) for more information.
Oracle Solaris 11.4 17 Nov 2017 pkgsend(1)