pkgsend man page on OpenIndiana

Man page or keyword search:  
man Server   20441 pages
apropos Keyword Search (all sections)
Output format
OpenIndiana logo
[printable version]

User Commands						 pkgsend(1)

NAME
     pkgsend - image packaging system publication client

SYNOPSIS
     /usr/bin/pkgsend [options] command [cmd_options] [operands]

     /usr/bin/pkgsend refresh-index

     /usr/bin/pkgsend open [-en] pkg_fmri
     /usr/bin/pkgsend add action arguments
     /usr/bin/pkgsend include [-d basedir] ... [-T pattern] [manifest] ...
     /usr/bin/pkgsend publish [-d basedir] ... [-T pattern] [--no-index]
	  [--fmri-in-manifest | pkg_fmri] [--no-catalog] [manifest] ...
     /usr/bin/pkgsend close [-A | --no-index] [--no-catalog]

     /usr/bin/pkgsend generate [-T pattern] [--target file] bundlefile ...
     /usr/bin/pkgsend import [-T pattern] [--target file] bundlefile ...

DESCRIPTION
     pkgsend allows the publication of new packages and new package
     versions to an image packaging repository.	 Each publication is
     structured as a transaction; multiple invocations of pkgsend
     through a transaction allow the addition of resources and the
     transaction submission.  To create or manage repositories, see
     pkgrepo(1).

OPTIONS
     The following options are supported:

     -s repo_uri    A URI representing the location of the target
		    repository.	 Both HTTP and filesystem-based
		    publication are supported. The default value is
		    http://localhost:10000/.

		    For filesystem-based publication, the repo_uri
		    should be specified as follows:

		      file://<absolute_path_to_repository>

		    See the NOTES section below for more information
		    about restrictions or suggestions for publication.

     --help or -?
	  Displays a usage message.

SUBCOMMANDS
     The following subcommands are supported:

     open [-en] pkg_fmri
	  Begin a transaction on the package and version specified by
	  pkg_fmri.

	  By default, or if the -e option is given, a successfully
	  opened transaction's ID will be published in a form suitable
	  for use with eval(1), to set the PKG_TRANS_ID environment
	  variable.  This form can be convenient for delivering a
	  package transaction from a shell script, for example.	 If the
	  -n option is given, the transaction ID is displayed as a
	  string; this may be more useful in situations where shell
	  scripting is not an available option.

     add action arguments
	  Add a resource associated with an action to the current
	  transaction.	Requires transaction context.  See ACTIONS
	  below.

     import [-T pattern] [--target file] bundlefile ...
	  Add each given bundlefile into the current transaction.
	  Supported bundle types are:

	    - filesystem format SVr4 packages
	    - datastream format SVr4 packages
	    - tar files
	    - directories

	  If the basename of files in the bundle match the pattern(s)
	  specified 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 bundle is a directory, there is no clear way to
	  distinguish a file action from a hardlink action when there are
	  multiple pathnames for a single inode.  Normally, the first one
	  found in the filesystem walk is treated as a file and the rest as
	  hardlinks.  This may be arbitrary, depending on the
	  implementation of the filesystem.  To specify which pathnames
	  should be treated as files, pass each pathname as an argument to
	  the --target option.	This option has no effect on other bundle
	  types, as they are capable of expressing which pathnames are
	  files and which are hardlinks.

     include [-d basedir] ... [-T pattern] [manifest] ...
	  Add resources associated with the multiple actions present in
	  each manifest file to the current transaction.  If no files
	  are specified, the standard input is read.  Each line in the
	  file should be the string representation of an action.  In
	  particular, the "add" token as described above should not be
	  present, nor should there be open and close tokens representing
	  transaction boundaries.  For those actions with datastreams, the
	  path to the file containing the data should be the second word on
	  the line; for file actions if this is set to "NOHASH" the value of
	  the "path" attribute is used instead.

	  If the user specifies the -d option, basedir is prepended to
	  the search path when locating files in the manifest.	Multiple
	  -d options have their directories searched in the order they
	  appear on the command line.

	  The -T option works as in the import command.

     close [-A] [--no-index]
	  Close current transaction.  With -A, abandon the current
	  transaction.	With --no-index, do not update the
	  repository's search indices.	With --no-catalog, do not add
	  to catalog which for now is only effective with file:// scheme
	  repositories.	 This improves performance when publishing
	  many packages at once; the repository will need to be
	  started with a --add-content flag (see pkg.depotd(1M) man
	  page) to catalog and index the new content.

     publish [ -d basedir] ... [-T pattern] [--no-index]
	  [--fmri-in-manifest | fmri] [--no-catalog] [manifest] ...

	  Combines open, include and close in a single operation.  -d
	  and --no-index options behave as described for include and
	  close subcommands.  With --fmri-in-manifest, use the fmri
	  specified in the package manifest w/ a set action name of
	  "pkg.fmri".  Otherwise the fmri must be specified on the
	  command line.	 With --no-catalog (which has effect only w/
	  file:// scheme repositories), do not update the catalog with
	  the new package.  This improves performance when publishing
	  many packages at once; the repository will need to be started
	  with a --add-content flag (see pkg.depotd(1M) man page) to
	  catalog and index the new content.

	  The -T option works as in the import command.

     generate [-T pattern] [--target file] bundlefile ...
	  Read each given bundlefile (such as an SVR4 package, directory,
	  tarfile, etc) and emit the manifest describing the bundlefile to
	  the stdout.  The -T and --target options work as in the import
	  command.  The repo argument or PKG_TRANS_ID is not used with this
	  subcommand.  Once obtained, the manifest can be annotated, have
	  dependencies analyzed, added, etc before being passed to the
	  publish or import subcommands.

     refresh-index
	  Update the repository's search indices.  Should be used after
	  closing one or more transactions using --no-index.


ENVIRONMENT VARIABLES
     The following environment variables are supported:

     PKG_TRANS_ID		Identifier to use for this transaction.
				If undefined (and no alternative means
				of specifying a transaction is given),
				subcommands requiring transaction
				context will fail.

ACTIONS
     Each resource within a package must be associated with an action.
     See pkg(5) for a complete list of actions.

     If an action has an associated payload, the path to the payload
     must be the first argument after the action name.	(At present, the
     file and license actions have payloads.)  All other attributes are
     specified as a list of name-value pairs, and may be given in any
     order.  An action must always have a key attribute; however, some
     actions may require additional attributes to work correctly.
     Arbitrary attributes, beyond those defined for a given action, may
     be included in the action.	 Such attributes are expected to follow
     defined conventions such that they carry appropriate meaning or
     avoid collision with attributes from other action providers;
     specific attributes that cause additional operations, known as
     "actuators", are documented in pkg(5).

     depend type=<depend_type> fmri=<pkg_fmri> [ property_list ]
	  Make this package version dependent on the give package FMRI.
	  Valid depend_types are require and optional.

     dir mode=<mode> owner=<userid> group=<groupid> path=<path> \
       [ property_list ]
	  Deliver a directory with the listed attributes into the
	  transaction.

     driver name=<name> perms=<perms> class=<class> alias=<alias> \
       [ property_list ]
	  Deliver driver configuration with the listed attributes into
	  the transaction.  Multiple alias entries may be given to
	  record multiple device aliases.

     file src_path mode=<mode> owner=<userid> group=<groupid> \
	path=<path> [ property_list ]
	  Deliver a file with the listed attributes into the
	  transaction.

     group groupname=<groupname> gid=<gid> [ property_list ]
	  Deliver a group definition as defined in group(4).  If the
	  group ID, or gid, is omitted, the first free group under 100
	  will be assigned at installation time.  See pkg(5) for
	  additional details, and relation to the user action below.

     hardlink path=<path> target=<target> [ property_list ]
	  Deliver a link with given path, pointing to the given
	  target.

     legacy category=<category> desc=<description> hotline=<hotline> \
       name=<name> pkg=<legacy_pkg> vendor=<vendor> version=<version> \
       [ property_list ]
	  Deliver sufficient metadata, as given by the various fields,
	  to represent a System V package with name given by legacy_pkg.

     license src_path license=<license_name> \
       [ property_list ]
	  Deliver, into the image packaging metadata, the license file
	  at src_path, labeled by the given license value.

     link path=<path> target=<target> [ property_list ]
	  Deliver a symbolic link with given path, pointing to the given
	  target.

     set name=<name> value=<value> [ property_list ]
	  Deliver a "package property" defined by the given name and
	  value.

     user username=<username> password=<password> uid=<uid> \
       group=<group> gcos-field=<gcos> home-dir=<homedir> \
       login-shell=<login-shell> group-list=<group> \
       [ group-list=<group> ... ] ftpuser={true|false} \
       lastchng=<lastchange> min=<mindays> max=<maxdays> \
       warn=<warndays> inactive=<inactivedays> expire=<expiredate> \
       flag=<flag> [ property_list ]
	  Deliver a user account, as defined in passwd(4), shadow(4),
	  group(4), and ftpusers(4).  If the user ID, or uid, is
	  omitted, then the first free user ID under 100 will be
	  assigned at installation time.  The primary group, specified
	  by group, must exist prior to the action's execution; this
	  condition can be ensured by having a group action deliver the
	  group definition in the same package as the user action, or by
	  having a depend action that expresses a requirement on a
	  package possessing a group action.  The group-list property
	  delivers one group to the group(4) entry for the specified
	  user.	 Multiple groups are delivered by multiple assignments
	  to group-list.  See pkg(5) for additional details.

EXAMPLES
     Example 1:	 Create a trivial package.

     $ eval `pkgsend open example@1.0-1`
     $ pkgsend add file example mode=0555 owner=root group=bin \
	 path=/usr/bin/example
     $ pkgsend close

     Example 2:	 Publish a package using filesystem-based publication
	 and a pre-existing manifest:

     $ pkgsend -s file:///tmp/example_repo -d /tmp/pkg_files \
	 /tmp/pkg_manifest

     Example 3:	 Create a package that delivers two groups and a user.

     $ eval `pkgsend open groups-and-user@1.0-1`
     $ pkgsend add group groupname=maingrp
     $ pkgsend add group groupname=auxgrp
     $ pkgsend add user ftpuser=false gcos-field="Example User" \
	  group=maingrp group-list=auxgrp password=NP username=exuser
     $ pkgsend close

EXIT STATUS
     The following exit values are returned:

     0	   Command succeeded.

     1	   An error occurred.

     2	   Invalid command line options were specified.

ATTRIBUTES
     See attributes(5) for descriptions of the following attributes:
     ____________________________________________________________
    |	    ATTRIBUTE TYPE	  |	  ATTRIBUTE VALUE	|
    |_____________________________|_____________________________|
    | Availability		  |				|
    |_____________________________|_____________________________|

SEE ALSO
     eval(1), pkgrepo(1), pkg.depotd(1M), ftpusers(4), group(4),
     passwd(4), shadow(4), attributes(5), pkg(5)

NOTES
     The image packaging system is an under-development feature.
     Command names, invocation, formats, and operations are all subject
     to change.	 Development is hosted in the OpenSolaris community
     at:

     http://hub.opensolaris.org/bin/view/Project+pkg/

     Other package bundle formats can be created.  Other forms of package
     publication, via the underlying Python API or via the web API, are
     also possible.

     When publishing individual package files that are greater than 128MB
     in size, filesystem-based publication must be used due to publication
     protocol limitations.  It is also the recommended method of publication
     when access control for a repository is needed.

     When using filesystem-based publication, any pkg.depot(1M) processes
     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(1M) for more information.
[top]

List of man pages available for OpenIndiana

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net