Glib-2.28 RPM包依赖问题

Glib-2.28 RPM包依赖问题

rpmfind.net 的 glibc-2.28.9000-6.fc30 RPM for i686 页面libc.so.6(GLIBC_2.28)列在下面两个都「提供」“需要”,所以是不可能的满足包依赖性?

答案1

事实上,纳西尔的回答有点错误。由于更正时间较长,我决定提供另一个答案,而不仅仅是评论。

需要意味着运行时需要此功能。它可以是包的名称或某个包提供的其他名称。它可以是库的名称libc.so.6或某些功能,例如包httpd提供www-server

提供是软件包提供的东西。如上所述,包httpd提供了www-server.并且 glibc 提供了libc.so.6(GLIBC_2.28).

通常,包不需要某些东西并提供其他东西。然而,glibc 包则不同。它是非常基本的包,它既需要又提供 libc.so 库。所以它确实需要自己从源头上构建。诡异的?是的。但它与编译器类似。你需要编译器来编译编译器。通常您可以使用旧版本来构建新版本。所以这实际上不是问题。唯一的问题是当你想获得第一个实例时。例如,您想第一次为新架构构建它。这是可行的,这个过程称为引导程序,它需要魔术师而不是普通程序员:)

答案2

这仅仅意味着它需要这些库才能运行(就像 32 位Fedora系统本身一样)。它并不是指包依赖性。

假设您有 64 位 Fedora,如果您

dnf install glibc.i686

然后它将安装没有问题。 64 位Fedora(以及 RHEL 和 CentOS)已经有了,/usr/lib64/libc.so.6这只是 64 位版本(同样,没有它们系统将无法运行)。该文件本身只是libc-2.27.so(实际库)的符号链接,如果您运行以下命令:

strings -d /usr/lib/libc.so.6 | grep GLIBC_2

您将看到所有可用的 GLIBC 字符串。

您需要该包或那些 32 位库的唯一原因是:

1) 您正在运行 32 位,Fedora例如 Netinstall 或 Live Image,在这种情况下它们已经存在。

2) 您有一些针对这些库构建的东西(默认情况下不存在 32 位版本)。

3) 您需要使用这些 32 位库来编译一些东西。

无论如何,通过安装它dnf不会有任何问题。

相关内容