# Running update manager from command line

In addition to the install wizard and configuration dialog, it is possible to perform update manager operations by running eclipse in a command line mode. You can install, update, enable, disable features, or list installed features, or features available on an update site, or adding an extension product site to the local install, etc.
You can also, mirror chosen features from an update site to a local update site location.
Launch eclipse as follows, where [ ] means optional argument and arguments in italics must be provided by the user.
Installing a feature from a remote site:
java -cp startup.jar org.eclipse.core.launcher.Main
-application org.eclipse.update.core.standaloneUpdate
-command install
-featureId feature_id
-version version
-from remote_site_url
[-to target_site_dir]

Example: `java -cp startup.jar org.eclipse.core.launcher.Main -application org.eclipse.update.core.standaloneUpdate -command install -from http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-update-home/optionalSite/ -featureId com.example.root -version 1.0.0`

Updating an existing feature or all features:
java -cp startup.jar org.eclipse.core.launcher.Main
-application org.eclipse.update.core.standaloneUpdate
-command update
[-featureId feature_id ]
[-version version ]
Enabling (configuring) a specified feature:
java -cp startup.jar org.eclipse.core.launcher.Main
-application org.eclipse.update.core.standaloneUpdate
-command enable
-featureId feature_id
-version version
[-to target_site_dir]
Disabling (unconfiguring) a specified feature:
java -cp startup.jar org.eclipse.core.launcher.Main
-application org.eclipse.update.core.standaloneUpdate
-command disable
-featureId feature_id
-version version
[-to target_site_dir]
Uninstalling a specified feature:
java -cp startup.jar org.eclipse.core.launcher.Main
-application org.eclipse.update.core.standaloneUpdate
-command uninstall
-featureId feature_id
-version version
[-to target_site_dir]
In all the above commands where the -to target_site_dir is specified, corresponding configured target site at given directory will be used. If it is not specified, then the default local product site is used.
If you only need to verify if the operation would succeed, in the above commands, (i.e. it satisfies the constraints), without actually performing it, then add -verifyOnly=true to the list of arguments.
Searching a remote site, listing all available features for install:
java -cp startup.jar org.eclipse.core.launcher.Main
-application org.eclipse.update.core.standaloneUpdate
-command search
-from remote_site_url
Listing installed features:
java -cp startup.jar org.eclipse.core.launcher.Main
-application org.eclipse.update.core.standaloneUpdate
-command listFeatures
-from local_site_dir
The features are listed as:
`Site: site url
Feature: id version enabled (or disabled)`
Adding a local site with more features:
java -cp startup.jar org.eclipse.core.launcher.Main
-application org.eclipse.update.core.standaloneUpdate
-command addSite
-from local_site_dir
Removing a local site:
java -cp startup.jar org.eclipse.core.launcher.Main
-application org.eclipse.update.core.standaloneUpdate
-command removeSite
-to local_site_dir
Mirroring feature(s) from a remote site:
java -cp startup.jar org.eclipse.core.launcher.Main
-application org.eclipse.update.core.standaloneUpdate
-command mirror
-from remote_site_url
-to target_site_dir
[-featureId feature_id]
[-version version]
[-mirrorURL mirror_site_url]
If -mirrorURL is specified, an update policy will be generated in <target_site_dir>/policy.xml file. The resulting policy.xml maps all features from the mirror site to the specified URL. The policy.xml can be used as is, or its fragments can be included into custom designed policy file.
The return code for each command is either 0 (success) or 1 (failure).
Additionally, most options accepted by Eclipse executable can be passed. They are especially useful during debugging and for specifying target environment for installed features. For example, passing option `-data some_path` will set the workspace to some_path.