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