OOo2 installation and multiple instances


Fri 05 August 2005 By nuxeo

OOo2 slightly changed its installation layout. Here are some notes i took
while trying to launch multiple instance of the same installation, under the
same user but using different settings.

These tests have been, conducted under OOo1.9.122 but will remain the same
in the future (or at least a near future). I'll only speak here about OOo
official releases. I let you search for your distro-specific-install ;)

Installing OOo2.0


By design, OpenOffice.org 2.0 is now installed in admin mode as root. The
usual directory under Linux is /opt/openoffice.org1.9.122. Note that
this directory contains a program and share sub-directories.




Once the core program installed, a user (name it Gooffy) can now launch


    /opt/openoffice.org1.9.122/program/soffice

The first time, he will be driven throughout a wizard for its personnal
information collecting. All the datas will be stored in its home directory,
under an hidden directory

    /home/Gooffy/.openoffice.org2

Note that this directory contains user subdirectory and no
program nor share ones



Concerning the settings priority, the structure is the same as
OOo1.1.x

    - share level : where all common parameters are
set. Dictionnaries, Fonts, OOo registry settings can be store in this
directory structure. They will be accessible to all users using this OOo
installation. They are located in /opt/OpenOffice.org1.9.122/share and can
then only modified by authorized users (root usually)

    - user level : unless settings are blocked at
share lever using the
finalize attribute
in the xml node, the settings located in user
registry sub-directory override the default ones of the share level.
In this directory can also be stored user-specific dictionaries or
fonts

    

For windows users, obviously the path are different but replace /opt
by "Program Files" and .openoffice.org2 by "Documents and
settingsGooffyApplication Dataopenoffice.org2 "
and you should not be
too far. The spirit remains the same    



And that's all. Gooffy user has only the use of one set of OOo.

Moreover, normal packaging of OOo2 do not allow to install an other version
(no problem with 1.1.x branch though). It is possible though using some
self-made packaging from its own build

Multiple Instances


If you try to launch more than one time the
/opt/openoffice.org1.9.122/program/soffice program, you always will
end with only one instance (with a multiple document view) of OpenOffice.org
based on the user installation settings
/home/Gooffy/.openoffice.org2.



How does OOo know he has to use /home/Gooffy/.openoffice.org2
?



When launching, OOo looks at
/opt/openoffice.org1.9.122/program/bootstraprc file

Doing the same, we see a line like

   
UserInstallation=$SYSUSERCONFIG/.openoffice.org2

So, changing this will allow to change the default behaviour

   
UserInstallation=$SYSUSERCONFIG/.GooffyOOoSettings2.0



If you now launch OOo2, a new directory will be created and the user will
again be driven through the first launching wizard.



$SYSUSERCONFIG is used by OOo to resolve the user home directory
/home/Gooffy



Note that if you want to use fully qualified path, thy need to be noted as
an URI    


   
UserInstallation=file:///home/Gooffy/.GooffyOOoSettings2.0


    

Be carefull that this setting will be used by all OOo users. So, if an
other user launches OOo, he will use these settings but will probably run
into access rights problems ...   

    

While we managed to redirect user specific datas to an other directory,
ending with 2 different directories for one user, we are only able to use
one as the parameter UserInstallation remains global to the OOo
installation.



Nevertheless, an undocumented command line argument, comming from
udk bootstraping features
, will allow us to create and use a specific
UserInstallation parameter, overriding the bootstrprc one



Now, the user can launch 2 command lines

    /opt/openoffice.org1.9.122/program/soffice
-env:UserInstallation=$SYSUSERCONFIG/.GooffyOOo1


    /opt/openoffice.org1.9.122/program/soffice
-env:UserInstallation=file://home/Gooffy/.GooffyOOo2



Note that the $ sign has to be escaped and remember that
UserInstallation parameter is an URI (this point is now adressed by a
RFE)
 



Two different instances of OOo2 will be launched, with two startup wizards,
leading to 2 independant user settings (eg. one instance in french, the
other in english)



So using the -env:UserInstallation command line argument lets us
define multiple OOo2 configurations and allow to launch more than one OOo
instance using the same installation under the same user account.



(Post originally written by Laurent Godard on the old Nuxeo blogs.)


Category: Product & Development