skip to Main Content

Goal: Compile and run flutter examples emulating Linux Desktop on CentOS 7 docker container

(Note: Can’t use snapd – not supported within Docker) Installed manually

Managed to get everything else cleared up but this one:

  GTK 3.0 development libraries are required for Linux development.
  They are likely available from your distribution (e.g.: apt install
  libgtk-3-dev)
The others show OK:
Γú[Γ£ù] Linux toolchain - develop for Linux desktop
    ΓÇó clang version 3.4.2 (tags/RELEASE_34/dot2-final)
    ΓÇó cmake3 version 3.17.5
    ΓÇó ninja version 1.10.2
    ΓÇó pkg-config version 0.29.2

Γú[Γ£ô] Connected device (1 available)
    ΓÇó Linux (desktop) ΓÇó linux ΓÇó linux-x64 ΓÇó CentOS Linux 7 (Core)
      4.19.76-linuxkit

Another thread had asked for specific versions when diagnosing this. Here they are:

pkg-config –modversion gtk+-3.0
3.22.30

pkg-config –modversion glib-2.0
2.56.1

pkg-config –modversion gio-2.0
2.56.1

pkg-config –modversion blkid
2.23.0

PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib64/pkgconfig:/usr/local/lib/pkg
config:

Would LOVE some help getting this resolved!!!!

3

Answers


  1. Chosen as BEST ANSWER

    It appears most of this has to do with pathing, some of the libs have slightly different names (gtk3-devel, libblkid-devel, xz-devel). Some irritations around cmake3, and getting more current versions of pkg-config, xproto, kbproto, xextproto, and the configuration of said packages. At least now I have a clean flutter doctor.

    Now, on to trying to run it...


  2. I updated my Ubuntu to version 22.04 LTS, and when I needed to install Flutter and Android Studio I ran into a similar error in flutter doctor output:

    GTK 3.0 development libraries are required for Linux development.
    They are likely available from your distribution (e.g.: apt install libgtk-3-dev)
    

    Command apt install libgtk-3-dev returned various errors, at first something like:

    libgtk-3-dev is already the newest version 
    

    And then i tried to update all packages:

    sudo apt-get update
    sudo apt-get autoremove
    dpkg --get-selections | grep hold
    

    None of these commands didn’t do anything…

    So, i try to remove libgtk-3-dev, and after that repeat autoremove and try to install libgtk-3-dev again. But now it showed me that it has some unmet dependency (it looks like it depended on some version of libpcre3 andor libpcre3-dev) and for some reason apt refused to install it.

    I tried so many ways to remove this damn package, but I could not do it. As far as I understand, initially the problem is that the version of this shitty package (libpcre3) that I have has been stretching since Ubuntu 18, and there is both a 32-bit version and x64, and dependencies are crooked in some of them … Well, or some other problem – maybe something was not deleted during the next update, although it should have been.

    In the end, I managed to solve the problem using a graphical shell over apt – synaptic (its great stuff, I recommend it to everyone). It’s very easy to set up:

    sudo apt install synaptic
    

    After that, I found the amd64 version libpcre3 in list, marked it for installation and installed it. After that, just install through the console

    sudo apt install libgtk-3-dev
    

    It worked fine, updating all dependencies.

    P.S. First thing I want to note is that Flutter is incredibly crooked shit (only my opinion). If you haven’t started developing on it yet, don’t start, choose something more stable. If it will be possible to use this garbage, then only in five years at best…

    And secondly, I spent a lot of time searching and solving the problem with the library, which is essentially perl dependencies. Despite the fact that I myself do not use perl at all. Looks like the notorious "Dependency Hell" is already here.

    Login or Signup to reply.
  3. I recently reinstalled the OS on my machine, I decided to install and use flutter through FVM. I had many other problems.

        [✓] Flutter (Channel stable, 3.0.5, on Ubuntu 20.04.3 LTS 5.15.0-41-generic, locale en_US.UTF-8)
    [!] Android toolchain - develop for Android devices (Android SDK version 33.0.0)
        ! Some Android licenses not accepted.  To resolve this, run: flutter doctor --android-licenses
    [✓] Chrome - develop for the web
    [✗] Linux toolchain - develop for Linux desktop
        ✗ clang++ is required for Linux development.
          It is likely available from your distribution (e.g.: apt install clang), or can be downloaded from https://releases.llvm.org/
        ✗ CMake is required for Linux development.
          It is likely available from your distribution (e.g.: apt install cmake), or can be downloaded from https://cmake.org/download/
        ✗ ninja is required for Linux development.
          It is likely available from your distribution (e.g.: apt install ninja-build), or can be downloaded from https://github.com/ninja-build/ninja/releases
        ✗ GTK 3.0 development libraries are required for Linux development.
          They are likely available from your distribution (e.g.: apt install libgtk-3-dev)
    [✓] Android Studio (version 2021.2)
    [✓] VS Code
    [✓] Connected device (2 available)
    [✓] HTTP Host Availability
    

    Solutions:
    clang++

    sudo apt-get -y install clang
    

    CMake
    I was trying sudo snap install cmake, But it returned an error, this is because the snap review "cmake" was published using classic confinement and therefore can make arbitrary system changes outside the security sandbox that snaps are usually confined to, which can put the system at risk.

    It was suggested to me: "If you understand and want to continue, repeat the command including –classic?
    To solve it, I just understood and continued

    sudo snap install cmake --classic
    

    GTK 3.0 development libraries

    sudo apt install libgtk-3-dev
    

    This solved everything here, it doesn’t have an execution order, each dependency is added independently.

    I hope I contributed!

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search