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



目标:编译并运行在CentOS 7 docker容器上模拟Linux Desktop的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.03.22.30

pkg-config——modversion glib-2.02.56.1

pkg-config——modversion gio-2.02.56.1

pkg-config——modversion blkid2.23.0

PKG_CONFIG_PATH =/usr/地方/lib/pkgconfig:/usr/lib64/pkgconfig:/usr/地方/lib/包裹配置:

希望有人帮助解决这个问题!!!!

我将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)

命令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版本,其中一些依赖关系是扭曲的……好吧,或者是一些其他的问题——也许有些东西在下次更新时没有被删除,尽管它应该被删除。

最后,我设法通过apt -synaptic的图形shell解决了这个问题(它很棒,我向每个人推荐它)。很容易设置:

sudo apt install synaptic

之后,我在列表中找到amd64版本libpcre3,标记为安装并安装。之后,只需通过控制台

安装
sudo apt install libgtk-3-dev

运行正常,更新了所有依赖项。

注:首先我想指出的是,Flutter是一个非常狡猾的家伙(这只是我的观点)。如果你还没有开始开发它,不要开始,选择更稳定的东西。如果有可能利用这些垃圾,那么最多只需要五年时间……

其次,我花了很多时间搜索和解决库的问题,它本质上是perl依赖。尽管事实上我自己根本不使用perl。看起来就像臭名昭著的"依赖地狱">

似乎大部分都与路径有关,有些库的名称略有不同(gtk3-devel, libblkid-devel, xz-devel)。关于cmake3的一些问题,以及获取更多最新版本的pkg-config、xproto、kbproto、xextproto,以及这些包的配置。至少现在我有一个干净的医生了。

现在,试着运行它…

我最近在我的机器上重新安装了操作系统,我决定通过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,但它返回了一个错误,这是因为snap审查" CMake "使用经典约束发布,因此可以在快照通常限制的安全沙箱之外进行任意系统更改,这可能使系统处于危险之中。

有人建议我:"如果你明白并想继续,重复命令,包括——经典?为了解决它,我只是理解并继续

sudo snap install cmake --classic

GTK 3.0开发库

sudo apt install libgtk-3-dev

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

我希望我有贡献!

我在这里遇到了类似的问题,但是找到了解决它的方法。所有的库都安装好了,但是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)

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

希望对你有帮助。

相关内容

  • 没有找到相关文章

最新更新