Installs HAWQ extensions such as pgcrypto, PL/R, PL/Java, and MADlib, along with their dependencies across an entire cluster.


gppkg [-i package | -u package | -r  name-version | -c] 
        [-d master_data_directory] [-a] [-v]

gppkg --migrate GPHOME_1 GPHOME_2 [-a] [-v]

gppkg [-q | --query] query_option

gppkg -? | --help | -h 

gppkg --version


The Package Manager (gppkg) utility installs HAWQ extensions, along with any dependencies, on all hosts across a cluster.

First, download one or more of the available packages from Pivotal Network; then copy it to the master host. Use the Package Manager to install each package using the options described below.

Note: After a major upgrade to HAWQ, you must download and install all extensions again.

Examples of database extensions and packages software that are delivered using the Package Manager are:

  • PL/Java
  • PL/R
  • PL/Perl
  • MADlib
  • pgcrypto

Note that Package Manager installation files for extension packages might release outside of standard product release cycles. Current packages are available from Pivotal Network.


-a (do not prompt)
Do not prompt the user for confirmation.

-c | –clean
Reconciles the package state of the cluster to match the state of the master host. Running this option after a failed or partial install/uninstall ensures that the package installation state is consistent across the cluster.

-d master_data_directory
The master data directory. If not specified, the value set for $MASTER_DATA_DIRECTORY will be used.

-i package | –install=package
Installs the given package. This includes any pre/post installation steps and installation of any dependencies.

–migrate GPHOME_1 GPHOME_2
Migrates packages from a separate $GPHOME. Carries over packages from one version of HAWQ to another.

For example: gppkg --migrate /usr/local/hawq-old-version /usr/local/hawq-new-version

This option is automatically invoked by the installer during minor upgrades. This option is given here for cases when the user wants to migrate packages manually.

Migration can only proceed if gppkg is executed from the installation directory to which packages are being migrated. That is, GPHOME_2 must match the $GPHOME from which the currently executing gppkg is being run.

-q | –query query_option
Provides information specified by query_option about the installed packages. Only one query_option can be specified at a time. The following table lists the possible values for query_option. <package_file> is the name of a package.

Table 1. Query Options for gppkg

query_option Returns
<package_file> Whether the specified package is installed.
--info <package_file> The name, version, and other information about the specified package.
--list <package_file> The file contents of the specified package.
--all List of all installed packages.

-r name-version | –remove=name-version
Removes the specified package.

-u package | –update=package
Updates the given package.

Warning: The process of updating a package includes removing all previous versions of the system objects related to the package. For example, previous versions of shared libraries are removed. After the update process, a database function will fail when it is called if the function references a package file that has been removed.

–version (show utility version)
Displays the version of this utility.

-v | –verbose
Sets the logging level to verbose.

-? | -h | –help
Displays the online help.