pkgsend(1) 맨 페이지 - 윈디하나의 솔라나라

개요

섹션
맨 페이지 이름
검색(S)

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 in‐
       formation 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  us‐
           ing 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 op‐
           tion. 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  ex‐
           ception  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 in‐
           formation 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 op‐
           tion 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 in‐
               formation 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)
맨 페이지 내용의 저작권은 맨 페이지 작성자에게 있습니다.
RSS ATOM XHTML 5 CSS3