Difference between revisions of "Installing Lazarus on Linux"

From Free Pascal wiki
Jump to navigationJump to search
(Added fpcupdeluxe)
(Added fpcupdeluxe)
Line 19: Line 19:
  
 
* Install FPC from either your Package Manager or SourceForge and then download the Lazarus '''source code and compile''' it yourself. May take a touch longer but is almost as easy and you do end up with the ability to add extra Lazarus installs, perhaps a 'production' version and a version based on the next release candidate. Or an old version to work on legacy code. In addition, you can easily make your own changes to the Lazarus Component Library, maybe just debug statements, maybe additional features you can feed back to help improve Lazarus further.
 
* Install FPC from either your Package Manager or SourceForge and then download the Lazarus '''source code and compile''' it yourself. May take a touch longer but is almost as easy and you do end up with the ability to add extra Lazarus installs, perhaps a 'production' version and a version based on the next release candidate. Or an old version to work on legacy code. In addition, you can easily make your own changes to the Lazarus Component Library, maybe just debug statements, maybe additional features you can feed back to help improve Lazarus further.
 +
 +
* Use fpcupdeluxe - it can install a range of versions of both FPC and Lazarus for you without requiring you to understand the underlying structure.
  
 
=== The Package Manager Model ===
 
=== The Package Manager Model ===

Revision as of 02:46, 17 January 2021


Introduction

This page is about installing FPC and Lazarus on a Linux system. Its intended for new and 'regular' users, it does not cover some very advanced methods and concentrates on current releases. Linux users should think of FPC and Lazarus as being two distinct but related processes, FPC does not change much, on the other hand, you will probably want to update your Lazarus install or perhaps install multiple Lazarus versions. Mixing the install methods, especially after V2.0 may cause problems so please read carefully.

Notes about terms used on this page -

  • We refer to various downloadable files such as fpc_something - you should replace the 'something' with whats appropriate for your system, for example, early 2019 using a DEB based 64bit distro it might be fpc-laz_3.0.4-1_amd64.deb.
  • Package Manager means a range of things on different different Linux systems. While we give command line examples, thats just because its easier to write. You will get the same result if you use your favourite GUI Tool such as Synaptic, Ubuntu Software Centre or YaST2. Maybe try double clicking on a downloaded package in your file manager.
  • What ever Package manager tool you use, make sure you are using one that resolves dependencies (that is, it also installs thing that are required by the main package you are installing), most GUI apps do. You should avoid using tools like dpkg or rpm and instead use apt or yum depending on your flavour of Linux.

Make a Choice

You do need to decide, early on, where you will be getting your Lazarus install from. You can, at any stage change your mind but at the cost of some backtracking. We don't recomend you get your FPC and Lazarus install kits from different places, its sometimes possible but sometimes unreliable. Broadly, your choices are -

  • Use your Package Manager to install both FPC and Lazarus. This means you are locked into the version of Lazarus that your distribution maintainers offer. Due to distro and Lazarus release cycles being out of sync, at any one time, its unlikely that your distribution will have the latest release of Lazarus. And many users do find those new releases attractive. You can install only one version of Lazarus under this model. But on the other hand, using the package manager approach is very easy and probably suits casual users.
  • Use the pre compiled packages (both FPC and Lazarus) made available by the FPC/Lazarus Team at SourceForge. Here you will find a wide choice of matched versions but you can only install one version at a time. The install process is still very easy ! This is possibly the best bet for new users.
  • Install FPC from either your Package Manager or SourceForge and then download the Lazarus source code and compile it yourself. May take a touch longer but is almost as easy and you do end up with the ability to add extra Lazarus installs, perhaps a 'production' version and a version based on the next release candidate. Or an old version to work on legacy code. In addition, you can easily make your own changes to the Lazarus Component Library, maybe just debug statements, maybe additional features you can feed back to help improve Lazarus further.
  • Use fpcupdeluxe - it can install a range of versions of both FPC and Lazarus for you without requiring you to understand the underlying structure.

The Package Manager Model

If you are happy with the versions offered by your distribution this might be the way to go. Almost all Linux distributions come with some sort of Package Manager, you are probably familiar with your's. Between then, the DEB and RPM based package systems represent much of the Linux community. And if you soon run into the limitations of this model, your package manager will help you back out again. But first, check the version available. Look up 'lazarus' in your GUI Package Manager or do -

// DEB Users -
apt-get pkgnames lazarus <enter>

// RPM User -
yum search lazarus <enter>

Note the names as well as the versions, we need three packages, fpc-something, fpc-source-something and, finally lazarus_something. Assuming you distribution's package has its dependencies set up correctly, all you need do is choose to install Lazarus in either your Package Manage GUI or do:

// DEB Users -
sudo apt-get install lazarus <enter>

// RPM Users -
sudo yum install lazarus <enter>

Note: Some distro prepared packages do not include the tools necessary to add cross compiling to its capabilities. If you may want to cross compile in the future, please consider the next listed model.

FPC and Lazarus from SourceForge

If your Package Manager cannot offer you the correct version of FPC then SourceForge can ! But be prepared for your package manager to complain about being bypassed, just insist you know what you are doing !

All packages can be found at https://sourceforge.net/projects/lazarus/files/ , if you want just FPC, you will find it down in the corresponding Lazarus release directory.

Navigate down, select the appropriate packages, again, fpc_something, fpc-src_something and lazarus_something, save them locally and install. WARNING, very important, this catches many users out ! Like most Linux packages, these packages have dependencies, you must install using a tool that resolves dependencies. Commands like "dpkg -i fpc_something.deb" will, most definitely leave an incomplete installation !

On a DEB based System. On a DEB based system, you almost certainly should use gdebi to install any downloaded DEB. It might already be installed, if not, install it first. You can use gdebi at the command line or double click a downloaded package in your file manager. But remember, most important, install first fpc, then fpc-src, then and only then, Lazarus.


On an RPM Based System Installing downloaded packages at the command line as shown below. (Author is unaware of the GUI Package tool that does, in fact, resolve dependancies) -

// RPM Users -
yum localinstall fpc_something.rpm <enter>
yum localinstall fpc-src_something.rpm <enter>
yum localinstall lazarus-something.rpm <enter>

Build Lazarus from Source

Surprisingly easy, but that is because Lazarus routinely rebuilds itself, eg when a Lazarus package is added. So, its also a useful test that all required dependencies are really present. It allows you to have multiple versions of Lazarus installed (see --pcp=xxx) and both Lazarus and LCL are in your own disk space so no write issues. However, you will need to manually add an entry in your OS Menu system and, perhaps distinctive Lazarus icons.

Light bulb  Note: Remember, FPC and Lazarus are two, separate products. Before thinking about building Lazarus, you must have a working and tested FPC. Mid 2020 FPC 3.2.0 was released and its probably what you want. Some distributions may not have it for awhile so, you need to install it from one of the ways documented on https://wiki.lazarus.freepascal.org/Installing_the_Free_Pascal_Compiler#Linux
Light bulb  Note: Dependencies - you probably want to build the GTK2 version of Lazarus, most distros will have gtk2 preinstalled but you may need to install its dev libraries. So, install gdb, libx11-dev and libgtk2.0-dev, that will bring gtk2 itself along if necessary. If building a QT5 version, you will need libqt5pas-dev
Light bulb  Note: Systems with limited memory, such as the Raspberry Pi may need you to increase swap space to at least a Gig before building Lazarus.

The example here pulls down what is a good choice in 2020, the newly released V2.0.10. By time you read this, it is possible a better option is available so please do your research. Note this is not a script, it is a series of commands, to be copied one at a time, so you can see whats happening !


mkdir -p $HOME/bin/Lazarus
cd $HOME/bin/Lazarus
wget https://sourceforge.net/projects/lazarus/files/Lazarus%20Zip%20_%20GZip/Lazarus%202.0.10/lazarus-2.0.10-2.tar.gz
tar xzf lazarus-2.0.10-2.tar.gz
mv lazarus lazarus_2_0_10
cd lazarus_2_0_10
make clean
make bigide

You can now start Lazarus with the command ./lazarus or, if you are in another directory, something like -

/home/[your-user-name]/bin/Lazarus/lazarus_2_0_10/lazarus <enter>

You can add that directory to your path, put a script in ~/bin to start it or whatever, its Linux, you choose !

Possible versions to download using SVN

It probably makes sense to svn to download Lazarus source for trunk (and maybe fixes) as you may generate patches to fix bugs but release versions, such as 2.0.10 are immutable so, far quicker to download a .tag.gz or .zip.

Menu items and Icons

Building from source leaves you without the nice main menu entries and pretty icons that people who installed using packages get. But even that is easy to fix. You need two things, a suitable icon and an appropriate desktop file. Here is how -

First, download a Lazarus icon to use (its just an image, does not need to be from right version of Lazarus),

cd ~/.icons; wget https://svn.freepascal.org/svn/lazarus/branches/fixes_2_0/images/icons/lazarus256x256.png; cd -

Then create a desktop file, eg ~/.local/share/applications/lazarus.desktop that looks a bit like this

[Desktop Entry]
Name=Lazarus Fix
GenericName=ide
Comment=ide
Exec=/home/myusername/bin/Lazarus/fixes_2_0/lazarus --pcp=/home/myusername/.fixes_2_0
Icon=/home/myusername/.icons/lazarus256x256.png
Terminal=false
Type=Application
Categories=Utility;Development;

You will almost certainly have to change some things and might want to change more -

  • Name= - This is what will appear in your main menu.
  • Exec= - This is the path to your executable lazarus, in my case I keep my various installs in ~/bin/Lazarus, yours may be different. Its unlikely your user name is 'myusername' so please change it. Note that I also include a --pcp command line switch, this tells Lazarus which set of config files to use. If you have multiple installs of Lazarus, make multiple desktop files and make sure each uses a separate set of config files. Most important !
  • Icon= The full path to the icon we downloaded earlier. You don't have to put the icon there, but its a good place.
  • Categories= This line determines which sub-menu Lazarus will show up under. As shown, its under "Programing" on my system, "GNOME;Utility" will pop it up under "Accessories".

Fpcupdeluxe

Another approach is fpcupdeluxe, its an application that you run on your computer to manage your FPC / Lazarus install. Its very suited to people who just want to get a working install quickly and are happy to allow fpcupdeluxe to do the thinking for them.

Testing FPC installation

See Testing the FPC Install for a very simple test that FPC is working.

If that worked, well done ! Now proceed to installing Lazarus.

Further Reading

Much discussion in a forum thread created by Handoko, https://forum.lazarus.freepascal.org/index.php/topic,41524.0.html This forum thread may be of particular interest to people who have upgraded an existing Linux install to a more recent version (ie Ubuntu 10.04 to 18.04) as that does seem to trigger some unexpected dependency problems. Please, ask for help, document such problems here when you fix them.