Skip to content

Difficulty installing LabRecorder on Ubuntu 22.04 (jammy) from prebuilt .deb package #143

@jseyelink

Description

@jseyelink

The LabRecorder installation instructions state that:

The Ubuntu releases do not typically ship with their dependencies, so you must download and install those

This was done by downloading liblsl-1.17.5-jammy_amd64.deb and running,

sudo apt-get -y install ./liblsl-1.17.5-jammy_amd64.deb

which creates a conflict when attempting to install LabRecorder,

$ sudo apt-get -y install ./LabRecorder-1.17.0-jammy_amd64.deb 
⋮
The following NEW packages will be installed:
  labrecorder
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
⋮
Unpacking labrecorder (1.17.0) ...
dpkg: error processing archive /home/display/Builds/LabRecorder/LabRecorder-1.17.0-jammy_amd64-broken.deb (--unpack):
 trying to overwrite '/usr/lib/liblsl.so.1.17.5', which is also in package liblsl 1.17.5

The installation fails when the labrecorder package tries to create the /usr/lib/liblsl.so* files, which have already been installed by the liblsl package.

It is possible to recover the situation by re-building the labrecorder package without the liblsl.so files.

$ dpkg-deb -R LabRecorder-1.17.0-jammy_amd64.deb tmp
$ rm tmp/usr/lib/liblsl.so*
$ dpkg-deb -b tmp LabRecorder-1.17.0-jammy_amd64-fixed.deb

Now labrecorder will be installed,

$ sudo apt-get -y install ./LabRecorder-1.17.0-jammy_amd64-fixed.deb 
⋮
Unpacking labrecorder (1.17.0) ...
Setting up labrecorder (1.17.0) ...
$ which LabRecorder
/usr/bin/LabRecorder

The installation instructions then go on to say that,

  • For most cases, this will amount to installing Qt and its dependencies:
    • Ubuntu >= 22.04: sudo apt-get install qt6-base-dev freeglut3-dev

These packages were installed using the given command. But LabRecorder will abort execution when it finds that the Qt libraries are obsolete,

$ LabRecorder
LabRecorder: /lib/x86_64-linux-gnu/libQt6Core.so.6: version `Qt_6.8' not found (required by LabRecorder)

Presuming that this refers to the ABI version, we can see that,

$ ls -l /lib/x86_64-linux-gnu/libQt6Core.so.6
lrwxrwxrwx 1 root root 19 May  2  2022 /lib/x86_64-linux-gnu/libQt6Core.so.6 -> libQt6Core.so.6.2.4

version Qt 6.2 is installed by the qt6-base-dev package on Ubuntu 22.04. Note that LabRecorder v1.16 runs properly on this version of Qt.

Versions

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions