Flutter Doctor 显示在 Doctor 上运行的 CentOS Linux 7 的 GTK 3.0 存在问题

问题描述 投票:0回答:5

目标:在 CentOS 7 docker 容器上编译并运行模拟 Linux 桌面的 flutter 示例

(注意:无法使用 snapd - Docker 内不支持)手动安装

设法把其他所有事情都清理干净,除了这个:

  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

另一个线程在诊断此问题时询问了特定版本。 他们在这里:

pkg-config --modversion gtk+-3.0 30.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 配置:

希望得到一些帮助来解决这个问题!!!!

linux flutter centos7 gtk3
5个回答
3
投票

我最近在我的机器上重新安装了操作系统,我决定通过FVM安装和使用flutter。我还有很多其他问题。

    [✓] 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

解决方案: 叮当++

sudo apt-get -y install clang

CMake 我正在尝试

sudo snap install cmake
,但它返回了一个错误,这是因为快照审查“cmake”是使用经典限制发布的,因此可以在快照通常限制的安全沙箱之外进行任意系统更改,这可以使系统有危险。

有人向我建议:“如果您理解并想继续,请重复包含 --classic 的命令? 为了解决它,我只是理解并继续

sudo snap install cmake --classic

GTK 3.0开发库

sudo apt install libgtk-3-dev

这解决了这里的所有问题,它没有执行顺序,每个依赖项都是独立添加的。

我希望我有所贡献!


2
投票

看起来大部分与路径有关,一些库的名称略有不同(gtk3-devel、libblkid-devel、xz-devel)。 围绕 cmake3 的一些烦恼,以及获取更新版本的 pkg-config、xproto、kbproto、xextproto 以及所述软件包的配置。 至少现在我有一个干净的扑医生了。

现在,尝试运行它...


2
投票

我将 Ubuntu 更新到版本 22.04 LTS,当我需要安装 Flutter 和 Android Studio 时,我在

flutter doctor
输出中遇到了类似的错误:

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
返回了各种错误,起初类似于:

libgtk-3-dev is already the newest version 

然后我尝试更新所有软件包:

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

这些命令都没有执行任何操作...

所以,我尝试删除

libgtk-3-dev
,然后重复自动删除并尝试再次安装
libgtk-3-dev
。但现在它向我表明它有一些未满足的依赖项(看起来它依赖于某些版本的
libpcre3
和\或
libpcre3-dev
)并且由于某种原因
apt
拒绝安装它。

我尝试了很多方法来删除这个该死的包,但我做不到。据我了解,最初的问题是这个垃圾包(

libpcre3
)的版本是我从Ubuntu 18开始就一直在拉伸的,并且既有32位版本,也有x64版本,并且依赖关系在某些方面是歪曲的。其中......好吧,或者其他一些问题 - 也许在下次更新期间没有删除某些内容,尽管它应该被删除。

最终,我成功地使用图形 shell 通过 apt 解决了这个问题 -

synaptic
(它很棒,我推荐给大家)。设置非常简单:

sudo apt install synaptic

之后我在列表中找到amd64版本

libpcre3
,标记为安装并安装。之后,只需通过控制台安装即可

sudo apt install libgtk-3-dev

工作正常,更新了所有依赖项。

附注我要指出的第一件事是 Flutter 是极其扭曲的狗屎(仅是我的意见)。如果你还没有开始开发,就不要开始,选择更稳定的东西。如果能利用这些垃圾的话,最多也就五年吧……

其次,我花了很多时间搜索和解决库的问题,本质上是perl依赖。尽管我自己根本不使用perl。看来臭名昭著的“依赖地狱”已经到来了。


2
投票

我这里也遇到了类似的问题,但找到了解决方法。 所有库都已安装,但

flutter doctor
说的是其他内容。

[✓] Chrome - develop for the web
    • Chrome at google-chrome

[✗] Linux toolchain - develop for Linux desktop
    • clang version 15.0.7
    • cmake version 3.17.0
    • ninja version 1.10.0
    • pkg-config version 0.29.2
    ✗ 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 2022.2)

当我检查

pkg-config --list-all |grep gtk
时,它显示“gtk+-3.0”就在那里。

gtk+-3.0                       GTK+ - GTK+ Graphical UI Library
gtk+-unix-print-3.0            GTK+ - GTK+ Unix print support
gtk+-wayland-3.0               GTK+ - GTK+ Graphical UI Library
gtk+-broadway-3.0              GTK+ - GTK+ Graphical UI Library
gtk+-x11-3.0                   GTK+ - GTK+ Graphical UI Library

但是当我这样做时

pkg-config --exists 'gtk+-3.0'; echo $?
它总是返回 1。 我花了一段时间才发现 pkg-config 有额外的选项
--print-errors
来显示当我们使用
--exists
时小屋后面发生了什么。

在我的情况下做

pkg-config --exists --print-errors 'gtk+-3.0'
它给了我

Package wayland-client was not found in the pkg-config search path.
Perhaps you should add the directory containing `wayland-client.pc'
to the PKG_CONFIG_PATH environment variable
Package 'wayland-client', required by 'gdk-3.0', not found

就是这么小气

flutter doctor
不告诉你背后发生了什么。

挖掘了一下,发现

wayland-client
是基于rpm的发行版中
wayland-devel
的一部分,顺便说一句,我使用openSUSE。安装完
wayland-devel
后,
flutter doctor
表示一切正常。

[✓] Chrome - develop for the web
    • Chrome at google-chrome

[✓] Linux toolchain - develop for Linux desktop
    • clang version 15.0.7
    • cmake version 3.17.0
    • ninja version 1.10.0
    • pkg-config version 0.29.2

[✓] Android Studio (version 2022.2)

好吧,你现在可以找出你的错误了。

希望有帮助。


0
投票

在 popos-24 上安装了 libgtk-3-dev,但 flutter 没有检测到它

首先检查

pkg-config --exists --print-errors 'gtk+-3.0'

在我的例子中 libei-1 错误 只需安装 libei-dev 问题就解决了

sudo apt install libei-dev
© www.soinside.com 2019 - 2024. All rights reserved.