目标:在 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 配置:
希望得到一些帮助来解决这个问题!!!!
我最近在我的机器上重新安装了操作系统,我决定通过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
这解决了这里的所有问题,它没有执行顺序,每个依赖项都是独立添加的。
我希望我有所贡献!
看起来大部分与路径有关,一些库的名称略有不同(gtk3-devel、libblkid-devel、xz-devel)。 围绕 cmake3 的一些烦恼,以及获取更新版本的 pkg-config、xproto、kbproto、xextproto 以及所述软件包的配置。 至少现在我有一个干净的扑医生了。
现在,尝试运行它...
我将 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。看来臭名昭著的“依赖地狱”已经到来了。
我这里也遇到了类似的问题,但找到了解决方法。 所有库都已安装,但
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)
好吧,你现在可以找出你的错误了。
希望有帮助。
在 popos-24 上安装了 libgtk-3-dev,但 flutter 没有检测到它
首先检查
pkg-config --exists --print-errors 'gtk+-3.0'
在我的例子中 libei-1 错误 只需安装 libei-dev 问题就解决了
sudo apt install libei-dev