Multiple Lazarus

From Free Pascal wiki
Revision as of 21:09, 28 August 2013 by HowardPC (talk | contribs) (Windows - Using the installer: minor spelling/phrasing improvements)

Deutsch (de) English (en) español (es) français (fr) português (pt) русский (ru)

Multiple Lazarus instances

You can have one directory with Lazarus in it on your system or more. These directories can contain the same or different versions of Lazarus and can be made to work independent of each other (see the section dealing with --primary-config-dir below). Because you don't have to install Lazarus and the versions may be the same, the concept of having more than one Lazarus directory on your system will be called "multiple instances" in this article.


  • Make Backups of
    • Your primary config
    • Your projects *.lpi and *.lps

Who needs multiple Lazarus instances and who does not?

You need multiple Lazarus instances...

  • to have several versions of Lazarus
  • to have one Lazarus version compiled with several different versions of FPC

You don't need multiple instances...

  • to test your project with different widgetsets
  • to cross compile

The Lazarus directory

The Lazarus directory (i.e. the directory where the Lazarus application is) is overridable using --lazarusdir, this is useful when running Lazarus from e.g. USB sticks with varying mountpoints or driveletters.

The config directory

All IDE options for an instance are saved to a config directory. Under Linux, Mac OS X and BSD the default config directory is ~/.lazarus. Note the beginning dot, which makes it a hidden directory.

On Windows, settings are saved to the User AppData folder, which maps to a different directory depending on the Windows version (and language, in Windows XP and earlier). See also information here: Multiple Lazarus#Windows. Note that you won't see the configuration directory in Windows unless you select to see hidden and system files. To view the directory, type:


in the Start/Run box or in the address bar of Windows Explorer, which should bring you to the Local Application Data directory. For default installs, the settings are stored in the Lazarud directory showed there.

Operating System Default location for the config directory Remarks
Linux, Mac OS X, BSD, other UNIXes ~/.lazarus Hidden directory
Windows XP C:\Documents and Settings\<User name>\Local Settings\Application Data\lazarus English Windows; others may have different paths
Windows Vista and higher C:\Users\<User name>\AppData\Local\lazarus\ Regardless of selected language

The config directory can not be shared between different Lazarus versions. A newer Lazarus can read older configs and will update them automatically. There is no guarantee that an older version can read config files of a newer version. It is always a good idea to make a backup of your configs from time to time for the case you changed something weird and don't know what it was.

Solution for separating instances using multiple config dirs

The config directory can be given at the command line with the --primary-config-path parameter (shorter version: --pcp). For example

lazarus --primary-config-path=~/.lazarus2

will start an IDE using ~/.lazarus2 as config directory. This way you can have an arbitrary number of config directories and start several independent Lazarus instances. As Lazarus creates the settings files from default if they don't exist, you can specify empty directories if you want.

If you use this often, then a small bash script can be created:

/path/to/lazarus --primary-config-path=~/.lazarus2

In Windows you cannot use ~ so use instead for example a shortcut in the desktop with the following parameters to call Lazarus:

/path/to/lazarus --primary-config-path=lazarusconf

This will place the lazarus configuration directory inside the lazarus directory.

The Lazarus files

The Lazarus source archive is contained in one directory. You can simply compile Lazarus (see installation instructions) and a lot of files and subdirectories will be created, but still in that single directory.

A Lazarus instance (sources and resources) is only one directory. Just copy this directory and you get a whole new Lazarus instance.

You don't need to 'install Lazarus. But if you do install Lazarus you get some nice shortcuts on your desktop and some file types (e.g. lpk, lpi, pas) are associated with that Lazarus installation. These things are platform dependent and there is always only one Lazarus installed. The official installers do not support installing Lazarus multiple times. But you can add another Lazarus instance manually quite easily (of course, file associations etc are still only linked to one Lazarus instance).


Example 1 : A normally installed Lazarus instance plus the svn version

Download and install the Lazarus packages as normal.

Then download the Lazarus svn archive to a directory of your choice, preferably somewhere in your home directory. See here Installing_Lazarus#Downloading_Lazarus_SVN.

Example 2 : A normally installed Lazarus instance plus a copy in the home directory

Download and install the Lazarus packages as normal.

Then copy the Lazarus directory to your home directory and change the ownership of the files:

cp -a /usr/lib/lazarus $(HOME)/
chown $USER:$USER -R $(HOME)/lazarus

(Note: The chown line assumes that your group has the same name as your username. If not, replace $USER:$USER with your username:groupname)

Then change your Lazarus desktop/menu shortcut to start

/home/username/lazarus/startlazarus --pcp=~/.lazaruslocal

Then start the IDE and change the environment options: Tools -> Options -> Environment / Lazarus directory to /home/username/lazarus

Now you have a local copy that you can edit and recompile. Don't forget to close source files of /usr/lib/lazarus.


Example 1: SVN and Release

This is to have both SVN and last release version of Lazarus.

1) Install Lazarus last release and check setup option 'create desktop shortcut', you will get 'Lazarus.lnk' on the desktop.

2) Get Lazarus from SVN and compile, then create a shortcut on your desktop for 'lazarus.exe' and rename it to 'Lazarus SVN.lnk'.

Then you can set the config dir for each version editing the shortcut path to the executable:

This is for release, because you don't change the primary config path parameter, the config will be saved in the default path:


For SVN, store the settings e.g. in the folder 'C:\lazsvncfg\':

C:\FPC\laz\startlazarus.exe --primary-config-path=C:\lazsvncfg

Installation of multiple Lazarus

Windows - Using the installer

On Windows the installer (Version 1.1) can create a secondary installation. And it will ask for a folder to store the config.

  • Install:
    • Make sure you back up ALL your existing configurations BEFORE you install.
    • AGAIN: Make sure you back up ALL your existing configurations BEFORE you install.
    • After install check that the correct config is used
See the file "lazarus.cfg" in the installation directory. And Menu "View" > "IDE Internals" > "About IDE"
  • Usage
    • Do not share packages between installations; rather you must have several independent copies of each package
    • Backup lpi and lps files (if you share projects). Ideally store sessions (lps) in the "IDE config directory"
Menu: "Project" > "Project Options" > Session
  • Uninstall:
    • If you plan to uninstall: back up everything again
  • Update:
    • If you plan to update, back up everything again
    • After updating, check that the correct config is still being used
See the file "lazarus.cfg" in the installation directory. And Menu "View" > "IDE Internals" > "About IDE"

The Windows Installer is able to create secondary installations, which allows you to have different versions installed that do not interfere with each other.

All you need to do is tick the checkbox "secondary installation" (when choosing the install directory), and follow the instructions. You will then be asked for a new empty folder where the config will be stored (this can be a subfolder in the install directory).

If you update an installation using the Windows Installer it will detect when the selected directory contains a secondary install.

In order to always be able to quickly see which IDE you are using, and also to check that the correct config is loaded, it is advisable to make changes to some visual attributes. A possibility is to change the gutter color in the editor.