Pak Man Page


SYNOPSIS

       pak
           --all
           --cache dir
           --details
           --dir dir
           --force
           --log file:level
           --init
           --name name
           --nodeps
           --optional
           --paks dir
           --quiet
           --silent
           --verbose
           --versions
           --write
           commands ...


       Commands:
           cache packages...
           cached packages...
           config
           depend packages...
           edit key[=value]
           help
           init [name [version]]
           install packages...
           list packages...
           lockdown
           profile [debug|release|...]
           prune packages...
           search packages...
           uninstall packages...
           update packages...
           upgrade packages...
           version [major|minor|patch|other]


DESCRIPTION

       Pak is a package manager for application components.



WHY PAK?

       Existing package managers like NPM are excellent, but they are heavily
       focussed the needs of NodeJS and not for non-Node applications or general
       application components. Pak is agnostic to its environment and can be
       used to install components for any application.


FEATURES

       Pak has the following major features:
           . Fast, fast, fast.
           . Local cache of packages supports fast offline use.
           . Catalog web portal to search published packages.
           . Package.json is compatible with nodejs.



BASIC USAGE

       To install packages:
           pak install Endpoints...

       Where an ENDPOINT can be the name of a package published in a GitHub
       account/repository or a path to a local package directory. For example:

           pak install jquery
           pak install embedthis/exp-js
           pak install https://github.com/embedthis/exp-js.git
           pak install git@github.com:embedthis/jquery
           pak install ./my-source/graphics

       To uninstall
           pak uninstall Endpoints...

       To list installed packages
           pak list

       To display package dependencies
           pak depend

       To show what packages are present in the cache and where they originated
           pak cached

       To download and cache a package but not install in the local directory
           pak cache Name

       To prune old versions from the cache
           pak prune



OVERVIEW

       A package is described by a pak.json file (similar to the NPM
       package.json file). This provides at a minimum the following properties.

            {
                "name": "Package name - one word"
                "description": "Package description - one line"
                "version": "1.2.3",
                "keywords": [
                    "comms", "websockets", "sockets", "ssl",
                ],
                "author": {
                    "name": "Your name",
                    "email": "Your email",

           https://npmjs.org/doc/json.html




RUNNING

       To run Pak with more verbose trace output, use the [-v] --verbose switch.
       To run with less trace, use the [-q] --quiet switch.  To run completely
       silently except for hard-errors, use --silent.



CONFIGURATION

       On startup, Pak reads configuration from a pakrc file. This file defines
       the operational configuration for Pak.

       The "catalogs" property defines sites that index and catalog packs. The
       "paks" directory is the name of the local directory in which to store
       packages. The "pakcache" directory defines where to cache packages on the
       local system.

       Pak locates a valid pakrc file by searching in order:

           pakrc, .pakrc, ../pakrc, ../.pakrc, /etc/pakrc, pak.json



COMMANDS

       cache [packages...]
              Download and populate the cache with packages.

       cached [packages...]
              List packages in the cache.

       config Show the Pak configuration.

       depend [packages...]
              Display installed package dependencies.

       edit key[=value]...
              Edit a value in the pak.json package description file.

       help ...
              Display this Pak usage help.

       info packages...
              Display the README for a cached package.

       init [name [version]]
              Create a new pak.json.

       install packages...
              Install a package on the local system. The package name can be a
              name in an online catalog or it can be a GitHub endpoint URL or of
              the form 'account/repositiory'. Use the --write option to update
              "debug" or "release" configuration.

       prune [packages...]
              Prune named packages.

       search packages...
              Search for packages in the catalogs.

       uninstall
              Uninstall an installed package. Use --write to remove from the
              package dependencies.

       update [packages...]
              Update the pak cache with latest available version of the package.
              This will check with catalogs to determine the most recent
              versions of a package and will download the package and save in
              the cache.

       upgrade [packages...]
              Upgrade installed packages with the latest version of the package.
              This will update the cache if required.  Use --noupdate to upgrade
              only from the local cache without downloading new versions.

       version [major|minor|patch|other]
              Update the version by incrementing the relevant major, minor or
              patch portion of the version string.  Alternatively, provide an
              exact version string to set. Without any argument, 'pak version'
              will print the current version.



OPTIONS

       --all URI
              Show all versions of a package.


       --cache directory
              Specify the directory to use for the paks cache. This overrides
              the values specified in the various pakrc or pak.json files.


       --details URI
              Show more package details. Useful with "pak list".


       --dir directory
              Change to the given directory before running.


       --force
              Force the command to continue. This is useful to install or cache
              a package when dependencies cannot be satisfied.  It is also
              useful to cache or install an already cached/installed pack.

       --nodeps
              Used to suppress installing or upgrading dependent packages.


       --optional
              Used when installing packages to add them to the
              'optionalDependencies' list instead of as a hard dependency.


       --paks directory
              Specify the local "paks" directory in which to install packages.
              This overrides the values specified in the various pakrc or
              pak.json files.


       --quiet
              Run in quiet mode with less verbose otuput. Aliased as -q.


       --silent
              Run in silent mode suppressing all but hard errors. Aliased as -s.


       --versions URI
              Show package version information.


       --write URI
              Write installed packages to pak.json dependencies. Use --optional
              to update optionalDependencies.  When uninstalling, --write will
              remove the package from the dependencies and update the pak.json.



REPORTING BUGS

       Report bugs to dev@embedthis.com.


COPYRIGHT

       Copyright © Embedthis Software. Bit and Ejscript are a trademarks of
       Embedthis Software.


SEE ALSO

       https://www.embedthis.com/pak/



pak                                March 2014                             PAK(1)

Man(1) output converted with man2html

© Embedthis Software. All rights reserved.