The kDeploy.sh script is used to install Deployment Management Extensions, PPM Best Practices, language packs, hot fixes, and PPM product service packs. This software is distributed as a deployment (a software bundle that contains files) in the following format:




represents the PPM version for which you can install the Extension, Best Practices, or service pack


represents the unique identifier for service pack

(Optional) .#'

represents the revision number for the deployment.


To install a product service pack SP1:

  1. Make sure that the deployment JAR file is in the <PPM_Home> directory.

    Note: There is no need to extract anything. The kdeploy.sh script does that for you.

  2. To apply the SP1 service pack, run the command:

    sh ./kDeploy.sh -i SP1

The following table displays the key command-line options for kDeploy.sh. To generate a list of options, run the command sh ./kDeploy.sh -h.




Installs deployments.


To install a PPM service pack (SP) 14, run the command:

sh ./kDeploy.sh -i SP14


Lists the deployments installed on an instance.


Searches for bundles in a given directory.


To search for a file in the DIR directory, run the command:

sh ./kDeploy.sh -D DIR


Provides help for kDeploy.sh. Lists all the command-line options.


Deploys hotfixes.

If a new hotfix conflicts with the existing hotfixes, it cannot be deployed


Forcibly deploy a new hotfix regardless of the conflicts with the existing hotfixes. Consult with PPM support before using this option.


Undeploys an existing hotfix.

If this hotfix conflicts with other existing hotfixes that we deployed later than it, the hotfix cannot be un-deployed.

-validate Validates an existing hotfix and checks whether the files are deployed correctly.
-nv Deploys hotfixes without validation.
-debug Prints debug message for the troubleshooting purpose.


Installs a language pack after PPM installation or upgrade. For information about how to install a language pack, see the Multilingual User Interface Guide.


Includes the PPM database schema password in the command. Automates command execution but may be a security risk.


Includes the PPM user name in the command.


Includes the password for the PPM user name in the command. Automates command execution but may be a security risk.


Cleans up unnecessary deployment files.

-skip -database

Specifies that database changes are not to be applied if they already exist.

-update- deploy

Extracts the new kDeploy.sh file, if a new version exists.

The kDeploy.sh script performs conflict check before installing a hotfix:

  • If the hotfix files do not exist on the current instance, running the deployment command successfully installs the hotfix.
  • If the hotfix is checked to be conflicting with some files on the current instance, the installation would fail.

    To address the conflict issue and to continue the installation, you can contact PPM Support who would provide a .lst file that contains the latest MD5 code.

After the hotfix is deployed successfully, the kDeploy.sh tool continues to verify whether or not the hotfix is deployed correctly.

Deploying Hotfixes with kDeploy.sh

To deploy a hotfix, run the following command:

sh ./kDeploy.sh -hotfix <Deployment_Hotfix>

where <Deployment_Hotfix> is the hotfix bundle name.

For example, if the bundle name is 912-debug-QCIM1L12345.jar, then the corresponding deployment command is as follows:

sh kDeploy.sh -hotfix 912-debug-QCIM1L12345.jar

Viewing hotfix deployment information

To view the hotfix deployment information after you run kSupport.sh:

  1. Navigate to and open the <kSupport_zip_file>/ppm/index.html file.

  2. Click the Patches Information link.

    The patches.html file opens and displays the following information:

    • Version of PPM instance

    • Service packs applied in current PPM version

    • All files in the PPM file system

    • Additional files applied in the current PPM instance, including SQL files and imported entities (packages, request types, requests, and so on)

    • Service packs deployed in your current PPM version

  3. Check the details in the section(s) of interest.

Undeploying Hotfixes

Running the command sh ./kDeploy.sh –undeploy <Deployment_Hotfix> undeploys a hotfix, and this command would perform files dependency check before undeploying the hotfix:

  • If the hotfix files are not included in any other hotfix, running the command undeploys it directly.
  • If some files in the hotfix are also included in the hotfixes that are installed later than it, you should undeploy those hotfixes first by running the above command.

    Note: In undeploying a hotfix, running the undeploy command rolls back only DB changes and file changes. It does not roll back DML (Data Modification Language) changes.

Redeploying Hotfixes

If you have successfully deployed a hotfix, and you want to redeploy it, you can run the deployment command sh ./kDeploy.sh –hotfix <hotfix_bundle_name> again.

When running this command for redeploying purpose, it would:

  1. Perform conflict check.
  2. Perform files dependency check.
  3. Undeploy the hotfix.
  4. Deploy the hotfix again.


The kDepoly.sh script contains the following limitations:

  • Only DDLs which are used to update a view or a package are fully supported. Other SQLs, like DML or DDL used for altering a table can be deploy successfully but cannot be rolled back by this tool.

  • The files contained in the fs_home directory are not fully supported by this tool. You can deploy those files using the script, but cannot roll back them.

  • This script does not support a patch that is completely composed of SQLs. You cannot use this tool to deploy, undeploy, or redeploy such patches.