Install libgtk-3-dev on Ubuntu 20.04

Viewed 4890

I would like to write a GUI in cpp. As far as I know gtk is a nice solution for this. Sadly it appears to me that gtk is no longer available under Ubuntu 20.04. (I am using Xubuntu if this matters)

Executing: sudo apt install libgtk-3-dev

Leads to:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 libgtk-3-dev : Depends: gir1.2-gtk-3.0 (= 3.24.20-0ubuntu1) but 3.24.20-1 is to be installed
                Depends: libatk-bridge2.0-dev but it is not going to be installed
                Depends: libatk1.0-dev (>= 2.15.1) but it is not going to be installed
                Depends: libcairo2-dev (>= 1.14.0) but it is not going to be installed
                Depends: libfontconfig1-dev but it is not going to be installed
                Depends: libgdk-pixbuf2.0-dev (>= 2.40.0) but it is not going to be installed
                Depends: libglib2.0-dev (>= 2.57.2) but it is not going to be installed
                Depends: libpango1.0-dev (>= 1.41) but it is not going to be installed
                Depends: libxi-dev but it is not going to be installed
                Depends: libgtk-3-0 (= 3.24.20-0ubuntu1) but 3.24.20-1 is to be installed
E: Unable to correct problems, you have held broken packages.

I added "deb http://archive.ubuntu.com/ubuntu focal-updates main" as suggested and tried again resulting in:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 libgtk-3-dev : Depends: libatk-bridge2.0-dev but it is not going to be installed
                Depends: libatk1.0-dev (>= 2.15.1) but it is not going to be installed
                Depends: libcairo2-dev (>= 1.14.0) but it is not going to be installed
                Depends: libfontconfig1-dev but it is not going to be installed
                Depends: libgdk-pixbuf2.0-dev (>= 2.40.0) but it is not going to be installed
                Depends: libglib2.0-dev (>= 2.57.2) but it is not going to be installed
                Depends: libpango1.0-dev (>= 1.41) but it is not going to be installed
                Depends: libxi-dev but it is not going to be installed
                Depends: libgtk-3-0 (= 3.24.20-0ubuntu1) but 3.24.20-1 is to be installed
E: Unable to correct problems, you have held broken packages.

I am looking for a solution to install libgtk-3-dev.

2 Answers

The problem is that the proper version of the library libgtk-3-dev and related dependencies are not in the main focal repository yet. My solution was to add focal-updates repo. You can do it through GUI (Software&Update) or by manually editing file:

/etc/apt/sources.list

and adding following line:

deb http://archive.ubuntu.com/ubuntu focal-updates main

Then I was able to install the library (I used Synaptic manager) without any problems. And finally I have disabled the focal-updates repo to stay just with release repo as before, not to automatically update other not-yet-released libraries.

I would first make sure I have all the required dependencies, make sure to install the specific version required. The dependencies can be found here on Ubuntu 's website

If the dependencies can not be found in the apt repository, you can always download the source files for each missing package from their respective websites, and build libgtk from source.

You most likely have a package that's incompatible with one of the others needed installed however it would require a bit more digging to find the root.

Related