platform-update-home/doc/shared_eclipse_installs.html
Parent Directory
|
Revision Log
Revision 1.1 - (view) (download) (as text)
| 1 : | jeem | 1.1 | <html> |
| 2 : | |||
| 3 : | <head> | ||
| 4 : | <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> | ||
| 5 : | <meta name="GENERATOR" content="Microsoft FrontPage 4.0"> | ||
| 6 : | <meta name="ProgId" content="FrontPage.Editor.Document"> | ||
| 7 : | <title>Multi-user Installs of Eclipse-based Products</title> | ||
| 8 : | </head> | ||
| 9 : | |||
| 10 : | <body> | ||
| 11 : | |||
| 12 : | <h1>Multi-user Installs of Eclipse-based Products</h1> | ||
| 13 : | <p>Last revised 15:30 Monday May 6, 2002</p> | ||
| 14 : | <p>There are special considerations when a product is installed somewhere in a | ||
| 15 : | shared file system so that the installed base of files can be used | ||
| 16 : | simultaneously by several users. Doing this requires making and maintaining a | ||
| 17 : | clear separation between files containing information that should be common | ||
| 18 : | across users from files containing user-specific information, for which each user will | ||
| 19 : | need personal copies. It helps to think of the installed | ||
| 20 : | based of files as being read-only (which they often are), and imagine that these | ||
| 21 : | installed files can only be created or changed when the product is installed (or | ||
| 22 : | updated). The user-specific files are stored elsewhere in some read-write user | ||
| 23 : | space.</p> | ||
| 24 : | <p>This note describes how shared, multi-user installs of Eclipse-based products work.</p> | ||
| 25 : | <h2>What product developers need to know</h2> | ||
| 26 : | <p>When an Eclipse-based product is installed on a disk, various files are laid | ||
| 27 : | out in the product install directory (denoted <code><<i>install</i>></code>) | ||
| 28 : | which is specified at the time the product is installed. Installed files | ||
| 29 : | directly related to Eclipse are in the <code><<i>install</i>>/eclipse/</code> | ||
| 30 : | subdirectory. Installed files are neither written nor deleted during the normal | ||
| 31 : | course of operating the Eclipse-based product.</p> | ||
| 32 : | <p>When an Eclipse-base product is installed, special one-time initialization is | ||
| 33 : | initiated with the <code>-initialize</code> option. This invocation creates and | ||
| 34 : | modifies files in <code><<i>install</i>>/eclipse/</code>. These files | ||
| 35 : | ensure that the product starts quickly, with the correct splash screen, on | ||
| 36 : | subsequent occasions. Once installed and initialized, | ||
| 37 : | the <code><<i>install</i>></code> directory can be write-protected without | ||
| 38 : | impacting the ability for a user to successfully operate the product stored | ||
| 39 : | there. The product installer and the Eclipse update manager are the only parties | ||
| 40 : | that alter the installed base of files. </p> | ||
| 41 : | <p>Running an Eclipse-based product requires a read-write "workspace" | ||
| 42 : | area (denoted <code><<i>workspace</i>></code>) to hold Eclipse platform | ||
| 43 : | and plug-in data. The user can specify the location of the workspace area explicitly with <code>-data | ||
| 44 : | <<i>workspace</i>></code> on the command line. If not specified on the | ||
| 45 : | command line, the location of the workspace defaults to <code><<i>current | ||
| 46 : | working directory</i>>/workspace/</code>. The user can have any number of | ||
| 47 : | workspaces for use with a given product. Because of this, a single user with | ||
| 48 : | several workspaces is the small scale version of a multi-user install; the only | ||
| 49 : | significant difference is that in the former case the user is likely to also | ||
| 50 : | have write access to the installed base of files.</p> | ||
| 51 : | <p>To make things confusing, a common Windows shortcut to <code><<i>install</i>>/eclipse/eclipse.exe</code> | ||
| 52 : | will default <code><<i>current working directory</i>></code> to the | ||
| 53 : | directory holding the executable. As a direct consequence, the default workspace | ||
| 54 : | will appear inside the install directory (!), at <code><<i>install</i>>/eclipse/workspace/</code>. | ||
| 55 : | Similarly, a Windows shortcut to <code><<i>install</i>>/<i>myproduct</i>.exe</code> | ||
| 56 : | will cause the default workspace to appear up one directory level, at <code><<i>install</i>>/workspace/</code>. | ||
| 57 : | Both arrangements work fine for a single-user install, but are problematic for a | ||
| 58 : | shared, multi-user install.</p> | ||
| 59 : | <p>For a multi-user install, <code><<i>current working directory</i>></code> | ||
| 60 : | should be a read-write directory in user space, apart from the <code><<i>install</i>></code> | ||
| 61 : | directory. This ensures that the default workspace location is a different place | ||
| 62 : | for each user. With a multi-user install, a user without write access to the install | ||
| 63 : | directory would be unable to run the product installer or use the Eclipse update | ||
| 64 : | manager to change the product install (however, it is still possible to use the | ||
| 65 : | update manager to install and configure new features and product updates, just | ||
| 66 : | not into the <code><<i>install</i>></code> directory).</p> | ||
| 67 : | <h2>What product developers do not need to know</h2> | ||
| 68 : | <p><b>N.B. The details in this section are not Eclipse platform API, and may | ||
| 69 : | change over time. Do not rely on anything described in this section.</b></p> | ||
| 70 : | <p>(0) Initial launch behavior</p> | ||
| 71 : | <ul> | ||
| 72 : | <li>done at install time</li> | ||
| 73 : | <li>performs one-time initialization</li> | ||
| 74 : | <li>optional, but highly recommended</li> | ||
| 75 : | <li>done with <code>-initialize</code> option</li> | ||
| 76 : | <li>runs headless</li> | ||
| 77 : | <li>can use other options -data, -ws, -os, -nl, etc.</li> | ||
| 78 : | <li>entails creating a scratch workspace somewhere (deleted on completion of install)</li> | ||
| 79 : | <li>determines set of installed features and plug-ins</li> | ||
| 80 : | <li>computes a maximal configuration using the most recent versions of all | ||
| 81 : | features</li> | ||
| 82 : | <li>unconditionally writes configuration info to <code><<i>install</i>>/eclipse/.config/platform.cfg</code></li> | ||
| 83 : | <li> initial launch of a new workspace will be case (1)</li> | ||
| 84 : | <li> <code><<i>install</i>>/eclipse/.config/platform.cfg</code> is used (only) on first user launches</li> | ||
| 85 : | </ul> | ||
| 86 : | <p>(1) New workspace - precomputed configuration in install (no <code><<i>workspace</i>>/.metadata/.config/platform.cfg</code>; | ||
| 87 : | but <code><<i>install</i>>/eclipse/.config/platform.cfg</code> present)</p> | ||
| 88 : | <ul> | ||
| 89 : | <li>reads configuration <code><<i>install</i>>/eclipse/.config/platform.cfg</code> | ||
| 90 : | </li> | ||
| 91 : | <li>unconditionally writes configuration info to <code><<i>workspace</i>>/.metadata/.config/platform.cfg</code></li> | ||
| 92 : | <li>this behavior ensures that workspace in not affected even if <code><<i>install</i>>/eclipse/.config/platform.cfg</code> | ||
| 93 : | were to later change</li> | ||
| 94 : | <li>happens once for each workspace</li> | ||
| 95 : | </ul> | ||
| 96 : | <p>(2) New workspace - no precomputed configuration in install (no <code><<i>workspace</i>>/.metadata/.config/platform.cfg</code>; | ||
| 97 : | no <code><<i>install</i>>/eclipse/.config/platform.cfg</code> either)</p> | ||
| 98 : | <ul> | ||
| 99 : | <li>puts up simple splash screen saying "Completing the install. Please | ||
| 100 : | wait..."</li> | ||
| 101 : | <li>determines set of installed features and plug-ins</li> | ||
| 102 : | <li>computes a maximal configuration using the most recent versions of all | ||
| 103 : | features</li> | ||
| 104 : | <li>unconditionally writes configuration info to <code><<i>workspace</i>>/.metadata/.config/platform.cfg</code></li> | ||
| 105 : | <li>exit and relaunch</li> | ||
| 106 : | </ul> | ||
| 107 : | <p>(3) Existing workspace (<code><<i>workspace</i>>/.metadata/.config/platform.cfg</code>)</p> | ||
| 108 : | <ul> | ||
| 109 : | <li>reads configuration <code><<i>workspace</i>>/.metadata/.config/platform.cfg</code></li> | ||
| 110 : | <li>may rewrite configuration info file</li> | ||
| 111 : | </ul> | ||
| 112 : | <p>Note that the above behavior is independent of whether the install is | ||
| 113 : | single-user or multi-user.</p> | ||
| 114 : | <p>Using Eclipse update manager to update an install</p> | ||
| 115 : | <ul> | ||
| 116 : | <li>allows privileged user to upgrade a multi-user install</li> | ||
| 117 : | <li>allows user to upgrade a single-user install in a way that affects new | ||
| 118 : | workspaces</li> | ||
| 119 : | <li>user must have write access to <code><<i>install</i>></code></li> | ||
| 120 : | <li> | ||
| 121 : | <p ALIGN="LEFT">user launches eclipse with <code>-configuration | ||
| 122 : | <install>/eclipse/.config/platform.cfg</code></li> | ||
| 123 : | <li>installs new and updated features into <code><<i>install</i>>/eclipse/</code></li> | ||
| 124 : | <li>creates new configurations in <code><<i>install</i>>/eclipse/.config/platform.cfg.metadata/</code></li> | ||
| 125 : | <li>new configurations must only contain features and plug-ins within <code><<i>install</i>></code> | ||
| 126 : | local site (or a local site linked to it)</li> | ||
| 127 : | <li>sets default configuration by rewriting <code><<i>install</i>>/eclipse/.config/platform.cfg</code></li> | ||
| 128 : | <li>deletes configurations from <code><<i>install</i>>/eclipse/.config/platform.cfg.metadata/</code></li> | ||
| 129 : | <li>new configurations appear for all users</li> | ||
| 130 : | <li>changes default configuration used for all new workspaces</li> | ||
| 131 : | </ul> | ||
| 132 : | <p>Using Eclipse update manager to update in the context of a single workspace</p> | ||
| 133 : | <ul> | ||
| 134 : | <li>user does not require write access to <code><<i>install</i>></code></li> | ||
| 135 : | <li> | ||
| 136 : | <p ALIGN="LEFT">user launches eclipse normally</li> | ||
| 137 : | <li>installs new and updated features into any local site (possibly <code><<i>install</i>></code>)</li> | ||
| 138 : | <li>creates new configurations in standard place (<code><<i>workspace</i>>/.metadata/.config/platform.cfg.metadata/</code>)</li> | ||
| 139 : | <li>new configurations may contain features and plug-ins in any local | ||
| 140 : | site </li> | ||
| 141 : | <li>sets configuration for workspace by rewriting <code><<i>workspace</i>>/.metadata/.config/platform.cfg</code></li> | ||
| 142 : | <li>sets configuration for workspace to default configuration for install</li> | ||
| 143 : | <li>deletes configurations from <code><<i>workspace</i>>/.metadata/.config/platform.cfg.metadata/</code></li> | ||
| 144 : | <li>features and configurations only appear when using <code><<i>workspace</i>></code></li> | ||
| 145 : | </ul> | ||
| 146 : | |||
| 147 : | </body> | ||
| 148 : | |||
| 149 : | </html> |
| help@eclipse.org | ViewVC Help |
| Powered by ViewVC 1.0.3 |
