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  gen-
       eral application components. Pak is agnostic to its environment and can
       be used to install components for any application.


       While Pak has a strong feature set, there are some characteristics that
       make Pak particularly sweet.

           . 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 origi-
       nated
           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  pack-
       age.json file). This provides at a minimum the following properties.

            {
                "name": "Package name - one word"
                "description": "Package description - one line"
                "version": "1.2.3",
                    "name": "version"
                } }

       For more details, see:
           http://package.json.nodejitsu.com
           http://wiki.commonjs.org/wiki/Packages/1.1
           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]]
              rewrites the pak.json to define a compatible version  expression
              for all installed dependencies.

       profile
              Index in the profiles property. The selected property collection
              is copied up to the top level. This may  be  used  to  select  a
              "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  pack-
              age.  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 pack-
              age. This will update the cache if required.  Use --noupdate  to
              upgrade  only  from the local cache without downloading new ver-
              sions.

       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
       --log logName[:logLevel]
              Specify  a file to log internal execution messages. Bit will log
              execution related trace to the log file. The log level specifies
              the  desired  verbosity  of output. Level 0 is the least verbose
              and level 9 is the most. The '-v' switch is an alias for  '--log
              stderr:2'.


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


       --optional
              Used when installing packages to add them to the 'optionalDepen-
              dencies' 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 (C) Embedthis Software. Bit and Ejscript are a trademarks  of
       Embedthis Software.


SEE ALSO



Man(1) output converted with man2html