[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[equinox-dev] [prov] Shared install filesystem layout
|
Hi,
After discussing shared installs with Pascal a bit more, we decided that
it would be best for me to come up with an ideal file system layout and
work backwards from there. So in an ideal, FHS-compliant [1] world
(this is just my interpretation of the FHS but it'll suffice for
arguments sake) we'd have:
/usr/bin/eclipse - actual launcher binary (preferably not a wrapper)
/usr/share/eclipse/plugins - platform-independent plugins
/usr/share/eclipse - rest of platform-independent stuff
/usr/lib/eclipse/plugins - platform-dependent plugins (fragments)
/usr/lib64/eclipse/plugins - platform-dependent plugins for bi-arch
systems (ex. if both x86 and x86_64 version
of Eclipse are installed on the same x86_64
system)
/etc/eclipse - machine-specific (system-wide) Eclipse configuration information
/var/lib/eclipse - variable state information for running Eclipse
/var/cache/eclipse - cached Eclipse application information
/var/lock/eclipse - lock file(s)
/var/log/eclipse - log file(s)
--------------
/home/<user>/.eclipse - user-specific configuration, preferences, profile, etc.
A few questions that remain:
- Do we really need to separate things in /var like that?
-- Probably not, but it'd be nice if we could.
- Where would a system-wide profile go? /var/lib/eclipse? The FHS
states that /usr should be read-only except at
installation/un-installation time so a literal interpretation may
preclude putting the profile there.
I realize that some of this is already achievable with 3.3 or 3.4
I-builds of the SDK. For fun, I tried the following:
<grab I20070809-1105>
mkdir slash; cd slash
mkdir -p usr/{bin,lib,share}
cd usr/share
tar zxf ~/eclipse-SDK-I20070809-1105-linux-gtk.tar.gz
cd eclipse
# Let's try moving the binary:
mv eclipse ../../bin
pushd ../../bin
./eclipse --launcher.library \
../share/eclipse/plugins/org.eclipse.equinox.launcher.gtk.linux.x86_1.0.100.v20070730/eclipse_1101.so
# Error: The Eclipse executable launcher was unable to locate its
# companion launcher jar
popd
Perhaps I'm just not using --launcher.library correctly. We (Fedora
Eclipse) currently carry a patch to the launcher to make it find the
sharedConfiguration area in /usr/lib{,64}/eclipse/configuration and to
make it see that the rest of the install is in /usr/share/eclipse. But
it's a lame patch that just hard-codes the values.
So assuming we can find a solution to the separate binary launcher
issue, let's look at the idea of putting fragments into
/usr/lib{,64}/eclipse/plugins while keeping the rest of the plugins in
/usr/share/eclipse. We currently use a links file to do this. Can we
expect to support this with the provisioning work? What about setting
up such a split install at instance provisioning time?
I realize some of these may be trivial concerns, but if we can hammer
these out, we can work towards the shared/hierarchical/composite
profiles I brought up earlier.
Andrew
[1]
http://www.pathname.com/fhs/
Attachment:
pgpEDTTUrWopR.pgp
Description: PGP signature