# Problems at installing Lazarus with fpcupdeluxe on Linux Mint

**URL:** <https://forum.castle-engine.io/t/problems-at-installing-lazarus-with-fpcupdeluxe-on-linux-mint/2123>\
**Category:** FPC and Lazarus\
**Created:** [February 24, 2026, 7:13pm UTC](https://forum.castle-engine.io/t/problems-at-installing-lazarus-with-fpcupdeluxe-on-linux-mint/2123 "2026-02-24T19:13:04Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Didi](https://forum.castle-engine.io/user_avatar/forum.castle-engine.io/didi/32/1908_2.png) [@Didi](https://forum.castle-engine.io/u/Didi)\
**Post date:** [February 24, 2026, 7:13pm UTC](https://forum.castle-engine.io/t/problems-at-installing-lazarus-with-fpcupdeluxe-on-linux-mint/2123/1 "2026-02-24T19:13:04Z")

</div>

Hi, I need help. Since one week my notebook is running on linux mint. Now I try to install FPC and Lazarus with the help of fpcupdeluxe.

The installation of FPC (3.2.2.zip) was successful.

The installation of Lazarus gives me some errors:

 ![Bildschirmfoto vom 2026-02-24 19-50-24](https://forum.castle-engine.io/uploads/default/original/2X/8/89703639333c78e3f0d77ee60712766cbe40de1b.png)

I tried stable.zip and 3.6.zip but with the same result.

I think that this 3 files are in an other folder:

 ![Bildschirmfoto vom 2026-02-24 19-52-25](https://forum.castle-engine.io/uploads/default/original/2X/c/c777dd7e7814c9e85ea8aa5420cd19efd5fb30c2.png)

Besides I can not find the folder /usr/bin/ld there is only /usr/bin.

many thanks in advance

---

<div class="post-metadata">

**Author:** ![michalis](https://forum.castle-engine.io/user_avatar/forum.castle-engine.io/michalis/32/3_2.png) [@michalis](https://forum.castle-engine.io/u/michalis)\
**Post date:** [February 24, 2026, 9:15pm UTC](https://forum.castle-engine.io/t/problems-at-installing-lazarus-with-fpcupdeluxe-on-linux-mint/2123/2 "2026-02-24T21:15:10Z")

</div>

In short: you need `sudo apt install libgtk2.0-dev`.

Longer explanation: when linking applications that use GTK 2, the Unix linker needs a file `libgtk-x11-2.0.so` (just `.so` extension, no extra numbers afterwards). This file is installed on Debian-based Linux distros by package `libgtk2.0-dev`, and it is a symlink to the actual GTK library.

This is how it should look once you install `libgtk2.0-dev`:

```auto
$ cd /usr/lib/x86_64-linux-gnu
$ ls -Flah libgtk-x11-2.0.so*
lrwxrwxrwx 1 root root 27 lip 15 2024 libgtk-x11-2.0.so -> libgtk-x11-2.0.so.0.2400.33
lrwxrwxrwx 1 root root 27 lip 15 2024 libgtk-x11-2.0.so.0 -> libgtk-x11-2.0.so.0.2400.33
-rw-r--r-- 1 root root 4,5M lip 15 2024 libgtk-x11-2.0.so.0.2400.33

```

When linking, the linker actually records in the Linux exe the information that it is linked with `/usr/lib/x86_64-linux-gnu/libgdk-x11-2.0.so.0`. That is, linker looks at where the symlink points to, and records the version of file with one extra number `.0`, which in theory can be incremented on incompatible GTK changes (in practice, GTK 3 has a different naming altogether). You can confirm it by inspecting the build `lazarus` executable file (once you successfully make it) with `ldd`, like

```auto
$ ldd lazarus
....
        libgtk-x11-2.0.so.0 => /lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0 (...)
...

```

The `libgtk-x11-2.0.so.0` is provided by other package that is almost for sure already installed on your system (esp. since you run fpcupdeluxe which itself uses GTK 2). On Ubuntu it is `libgtk2.0-0t64`, in general it’s called like `libgtk2.0*` but without any `-dev` suffix.

So regular users (that just _run_ applications using GTK 2, don’t link such applications) don’t need the `libgtk2.0-dev` package. They only need the version of the file with `.0` suffix, from package like `libgtk2.0-0t64` (installed by default on ~most Linux distros I guess). You need to install `libgtk2.0-dev` to be able to link applications using GTK 2, not only execute them.

Note that Castle Game Engine requirements also mention this package: [Compiling from source | Manual | Castle Game Engine](https://castle-engine.io/compiling_from_source#_linux_freebsd) . Although we also recommend `libgtk-3-dev` since we [migrated to GTK 3](https://castle-engine.io/wp/2026/02/09/upgrade-to-gtk-3/) so your typical CGE applications will use GTK 3, not GTK 2.

---

<div class="post-metadata">

**Author:** ![Didi](https://forum.castle-engine.io/user_avatar/forum.castle-engine.io/didi/32/1908_2.png) [@Didi](https://forum.castle-engine.io/u/Didi)\
**Post date:** [February 24, 2026, 10:46pm UTC](https://forum.castle-engine.io/t/problems-at-installing-lazarus-with-fpcupdeluxe-on-linux-mint/2123/3 "2026-02-24T22:46:34Z")

</div>

Heureka, Lazarus install was successful. 😀 Thanks a lot.

And now I tried to compile a project. Every project gives the same error.

> _Fatal: Can’t find unit system used by walk\_3d\_game\_controllers\_standalone_

 ![Bildschirmfoto vom 2026-02-24 23-33-07](https://forum.castle-engine.io/uploads/default/original/2X/b/ba1572168d1cad13ad9ffc1fe37f91ffb815f436.png)

Preferences look good, Lazarus packages are registered.

hmmm…. 🤔

---

<div class="post-metadata">

**Author:** ![hal09](https://forum.castle-engine.io/letter_avatar_proxy/v4/letter/h/e9c0ed/32.png) [@hal09](https://forum.castle-engine.io/u/hal09)\
**Post date:** [February 24, 2026, 11:39pm UTC](https://forum.castle-engine.io/t/problems-at-installing-lazarus-with-fpcupdeluxe-on-linux-mint/2123/4 "2026-02-24T23:39:50Z")

</div>

Today was my first experience with Linux ever– zero experience 🙂  
This morning I installed Debian 13 on a virtual machine, then set up Lazarus 4.99 + FPC 3.3.1.  
I tested everything it’s great!  
So I saved these commands — maybe they will be useful for anyone trying Linux for the first time:

```auto
-1 Update package lists
sudo apt update

-2 Install essential development tools
sudo apt install -y build-essential fpc git wget curl

-3 Download GTK2 libraries required by FPCUpDeluxe
cd ~/Downloads
wget -nc http://snapshot.debian.org/archive/debian/20210412T000000Z/pool/main/g/gtk+2.0/libgtk2.0-0_2.24.32-3_amd64.deb
wget -nc http://snapshot.debian.org/archive/debian/20210412T000000Z/pool/main/g/gtk+2.0/libgtk2.0-dev_2.24.32-3_amd64.deb

4-Install GTK2 packages
sudo dpkg -i libgtk2.0-0_2.24.32-3_amd64.deb libgtk2.0-dev_2.24.32-3_amd64.deb || true

5-Fix broken dependencies if any
sudo apt --fix-broken install -y

6-Update shared library cache
sudo ldconfig

7-Verify libgdk-x11-2.0.so.0 is available
ldconfig -p | grep libgdk-x11-2.0.so.0

Run FPCUpDeluxe to install FPC and Lazarus

```

It’s also a good idea to set up a shared folder between Windows and Linux inside the virtual machine –this makes testing and transferring files much easier. 👍

Linux first day… and I already like it 😊

---

<div class="post-metadata">

**Author:** ![michalis](https://forum.castle-engine.io/user_avatar/forum.castle-engine.io/michalis/32/3_2.png) [@michalis](https://forum.castle-engine.io/u/michalis)\
**Post date:** [February 24, 2026, 11:51pm UTC](https://forum.castle-engine.io/t/problems-at-installing-lazarus-with-fpcupdeluxe-on-linux-mint/2123/5 "2026-02-24T23:51:30Z")

</div>

> [@Didi](#):
>
> Fatal: Can’t find unit system used by walk\_3d\_game\_controllers\_standalone

The error message says it’s trying to execute system-wide FPC (`/usr/bin/ppcx64`) which for some reason cannot find it’s packages (is `/etc/fpc.cfg` valid?).

You mentioned in thread above that you install FPC using fpcupdeluxe, so this is also weird. We’re not using FPC from fpcupdeluxe here.

Troubleshooting, outside of Castle Game Engine:

- What system-wide FPC packages do you have installed? Do you have `fpc`? Do you have `fp-compiler`? What packages whose names start with `fp-units-*` you have? Use any GUI / command-line application that reliably shows all Debian-style packages, like Synaptic.
- What does `fpc helloworld.lpr` do on your system, if you create trivial file like

```delphi
begin
  Writeln('hello');
end.

```

- What does `which fpc` say?
- Do you want to use system-wide FPC at all? 🙂 If not, remove all packages related to it. Right now it seems you have half-broken installation of it, with `fp-compiler` but without any `fp-units-*`.
- Did you configure editor preferences to point CGE to use the FPC version from fpcupdeluxe? How do the _“Preferences → FPC and Lazarus”_ look like?

---

<div class="post-metadata">

**Author:** ![michalis](https://forum.castle-engine.io/user_avatar/forum.castle-engine.io/michalis/32/3_2.png) [@michalis](https://forum.castle-engine.io/u/michalis)\
**Post date:** [February 25, 2026, 12:04am UTC](https://forum.castle-engine.io/t/problems-at-installing-lazarus-with-fpcupdeluxe-on-linux-mint/2123/6 "2026-02-25T00:04:22Z")

</div>

> [@hal09](#):
>
> ```auto
> -3 Download GTK2 libraries required by FPCUpDeluxe
> cd ~/Downloads
> wget -nc http://snapshot.debian.org/archive/debian/20210412T000000Z/pool/main/g/gtk+2.0/libgtk2.0-0_2.24.32-3_amd64.deb
> wget -nc http://snapshot.debian.org/archive/debian/20210412T000000Z/pool/main/g/gtk+2.0/libgtk2.0-dev_2.24.32-3_amd64.deb
> 
> 4-Install GTK2 packages
> sudo dpkg -i libgtk2.0-0_2.24.32-3_amd64.deb libgtk2.0-dev_2.24.32-3_amd64.deb || true
> 
> ```

You should not download `.deb` packages like this – it will break as soon as their version changes. Above you assume very specific package files versions are “the right ones”, but the URLs and the assumption may be invalid next week.

Instead of above, use this to install GTK 2, along with their development files:

```auto
sudo apt update
sudo apt install libgtk2.0-dev 

```

This will reliably install the packages, with version suitable for your system, and will work on any version of Debian/Ubuntu/Mint etc., and will work in the future 🙂 We also mention this in [our instructions here](https://castle-engine.io/compiling_from_source#_linux_freebsd).

> [@hal09](#):
>
> ```auto
> 5-Fix broken dependencies if any
> sudo apt --fix-broken install -y
> 
> ```

You should not need to do this 🙂 Install packages by simple `sudo apt install <package-name>`, and there should be no need to do post-fixes like above.

> [@hal09](#):
>
> ```auto
> 6-Update shared library cache
> sudo ldconfig
> 
> ```

You should not need to do this. Installing packages should do any refresh (like done by `ldconfig`) automatically.

In total, I would recommend to shorten your script to do just this:

```auto
-1 Update package lists
sudo apt update

-2 Install essential development tools
sudo apt install -y build-essential fpc git wget curl libgtk2.0-dev 

```

This will really do the same thing (install the same packages as you have in your script), and be simpler 🙂

Also note that our [engine downloads](https://castle-engine.io/download) already contain FPC and we will automatically use it. So there’s no need to have system-wide `fpc`, unless of course you use it for other development. (You can point our engine to use system-wide FPC, instead of the “bundled” version, by _“Preferences → FPC and Lazarus”_; or just brutally remove the subdirectory `tools/contrib/fpc` from the unpacked engine version, that will also work 🙂 ).

---

<div class="post-metadata">

**Author:** ![Didi](https://forum.castle-engine.io/user_avatar/forum.castle-engine.io/didi/32/1908_2.png) [@Didi](https://forum.castle-engine.io/u/Didi)\
**Post date:** [February 25, 2026, 12:52am UTC](https://forum.castle-engine.io/t/problems-at-installing-lazarus-with-fpcupdeluxe-on-linux-mint/2123/7 "2026-02-25T00:52:23Z")

</div>

Yes you are right, the FPC and Lazarus path was wrong.

It was /usr/bin/, changing to /fpcupdeluxe/… and the project can be compiled.

 ![Bildschirmfoto vom 2026-02-25 01-44-05](https://forum.castle-engine.io/uploads/default/original/2X/5/501a6565f272e22bb7f35b7f067b023a261ad173.png)

Thanks!
