pkg-config 在 Ubuntu 24.04 上找不到足够的 gobject-introspection-1.0 依赖项

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

我的介子构建失败了:

Called: `/usr/bin/pkg-config --modversion gobject-introspection-1.0` -> 1
stderr:
Package dependency requirement 'glib-2.0 >= 2.80.0' could not be satisfied.
Package 'glib-2.0' has version '2.72.0', required version is '>= 2.80.0'
Package dependency requirement 'gobject-2.0 >= 2.80.0' could not be satisfied.
Package 'gobject-2.0' has version '2.72.0', required version is '>= 2.80.0'

据我了解,这是因为

/usr/lib/x86_64-linux-gnu/pkgconfig/gobject-introspection-1.0.pc
包含:

Name: gobject-introspection
Description: GObject Introspection
Version: 1.80.1
Requires: glib-2.0 >= 2.80.0, gobject-2.0 >= 2.80.0

如果我检查我安装的内容:

Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                             Version        Architecture Description
+++-================================-==============-============-===========================================================
un  gir1.2-gobject-2.0               <none>         <none>       (no description available)
un  gir1.2-gobject-2.0-dev           <none>         <none>       (no description available)
ii  gobject-introspection:amd64      1.80.1-1       amd64        Generate interface introspection data for GObject libraries
ii  gobject-introspection-bin        1.80.1-1       amd64        Executables for gobject-introspection
un  gobject-introspection-bin-linux  <none>         <none>       (no description available)
un  gobject-introspection-repository <none>         <none>       (no description available)
ii  libcairo-gobject2:amd64          1.18.0-3build1 amd64        Cairo 2D vector graphics library (GObject library)
un  libgobject-2.0-0                 <none>         <none>       (no description available)

...我的系统上没有安装

libgobject-2.0
软件包,但如果我尝试安装它:

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Note, selecting 'libglib2.0-0t64' instead of 'libgobject-2.0-0'
libglib2.0-0t64 is already the newest version (2.80.0-6ubuntu3.1).

还有

/usr/lib/x86_64-linux-gnu/pkgconfig/gobject-2.0.pc
说:

Name: GObject
Description: GLib Type, Object, Parameter and Signal Library
Version: 2.80.0
Requires: glib-2.0
Requires.private: libffi >=  3.0.0
Libs: -L${libdir} -lgobject-2.0
Cflags: -I${includedir}

那么 pkg-config 会根据什么来确定

2.72
版本?因为
ind /usr -name *.pc -exec grep -l -F '2.72' {} +
没有找到任何东西,而
find /usr -name *.pc -exec grep -l -F '2.80' {} +
却找到了一些...

更一般地说,我该如何解决这个问题?

系统是新安装的(K)Ubuntu-24.04,在

apt-update
+
apt-upgrade
后重新启动。

我已经看到了这个问题,但我已经有了开发包。我也看过这个但是没有

requirements.txt

linux ubuntu pkg-config gobject-introspection
1个回答
0
投票

那么

pkg-config
是通过什么来确定 2.72 版本的呢?

我们无法具体说明,因为这取决于您的机器和个人环境,但您可以让

pkg-config
告诉您。 例如,

pkg-config --path glib-2.0

除了几个标准目录之外,

pkg-config
还将查阅环境变量
PKG_CONFIG_PATH
中指定的任何目录,以及在命令行上指定的任何其他目录。 命令行参数可能会以多种方式在您不知情的情况下潜入,但如果您从非标准源获取配置,那么我的第一个猜测是它是在
PKG_CONFIG_PATH
中命名的。

我该如何解决这个问题?

这取决于恶意 PC 目录的配置位置,但如果它确实来自

PKG_CONFIG_PATH
,那么最好的修复方法可能是对 shell 配置脚本进行适当修改,或者删除为该变量设置不适当的自定义值的行,或者添加行来覆盖来自其他地方的不适当的值。

© www.soinside.com 2019 - 2024. All rights reserved.