Fedora 软件包中没有文件?

Fedora 软件包中没有文件?

这与以下问题有关堆栈溢出。该家伙正在尝试安装一个名为的新分配器,tcmalloc它是gperftools。我们都在 Fedora 上安装了它,但我们都找不到这个库。

$ find /lib -name '*tcmalloc*'
$ find /lib64 -name '*tcmalloc*'
$

进一步查看似乎没有安装文件:

$ dnf repoquery gperftools
Last metadata expiration check: 0:07:58 ago on Thu 30 Aug 2018 04:59:15 PM EDT.
gperftools-0:2.6.3-2.fc28.x86_64
$ dnf repoquery -l gperftools
Last metadata expiration check: 0:08:16 ago on Thu 30 Aug 2018 04:59:15 PM EDT.
Package gperftools-2.6.3-2.fc28.x86_64 contains no files

我试图了解发生了什么事。我不记得以前的情况了。

这是包装错误吗?还是空包裹有其他含义?


$ lsb_release -a
LSB Version:    :core-4.1-amd64:core-4.1-noarch
Distributor ID: Fedora
Description:    Fedora release 28 (Twenty Eight)
Release:        28
Codename:       TwentyEight

$ uname -a
Linux goldmont 4.17.12-200.fc28.x86_64 #1 SMP Fri Aug 3 15:01:13 UTC 2018 x86_64 GNU/Linux

答案1

事实证明这是一次不寻常的练习。没有gperftools-devgperftools-devel包裹。有一个gperftools-libs软件包,但它没有安装到/libor中/lib64

$ dnf repoquery -l gperftools-libs
Fedora 28 - x86_64 - Updates                    9.6 MB/s |  23 MB     00:02
Last metadata expiration check: 0:00:13 ago on Fri 31 Aug 2018 12:40:20 AM EDT.
/usr/lib/.build-id
/usr/lib/.build-id/4a
/usr/lib/.build-id/4a/f4daa98151a84c8d1bc754e67a2858dd2007f7
/usr/lib/.build-id/56
/usr/lib/.build-id/56/fbe67cd746e213211226bc753dc3924e53d883
/usr/lib/.build-id/59
/usr/lib/.build-id/59/4af3ce60de4d29e773f783c434786d87e0431a
/usr/lib/.build-id/5d
/usr/lib/.build-id/5d/26545cd8d2417e42085614cecfb11bfcbbef58
/usr/lib/.build-id/66
/usr/lib/.build-id/66/bc072ca02ea7494c5f61d62c5d4f8abb83a37c
/usr/lib/.build-id/ef
/usr/lib/.build-id/ef/eedf93824216ffecac806dd60e3b4d23a7d8d1
/usr/lib64/libprofiler.so.0
/usr/lib64/libprofiler.so.0.4.16
/usr/lib64/libtcmalloc.so.4
/usr/lib64/libtcmalloc.so.4.5.1
/usr/lib64/libtcmalloc_and_profiler.so.4
/usr/lib64/libtcmalloc_and_profiler.so.4.5.1
/usr/lib64/libtcmalloc_debug.so.4
/usr/lib64/libtcmalloc_debug.so.4.5.1
/usr/lib64/libtcmalloc_minimal.so.4
/usr/lib64/libtcmalloc_minimal.so.4.5.1
/usr/lib64/libtcmalloc_minimal_debug.so.4
/usr/lib64/libtcmalloc_minimal_debug.so.4.5.1
/usr/lib/.build-id
/usr/lib/.build-id/70
/usr/lib/.build-id/70/532fbec5f8efae416a3d93452a41f40e866256
/usr/lib/.build-id/73
/usr/lib/.build-id/73/b36a618c8b93ffc6fb8bb6ac29932446b38c9f
/usr/lib/.build-id/73/ce1d567d60ea7a3fc84d6439e7e969465f6eb0
/usr/lib/.build-id/98
/usr/lib/.build-id/98/0ba2c89b28afdcec32e60fbba456fe9185e631
/usr/lib/.build-id/9e
/usr/lib/.build-id/9e/eb05e4484712cb7986c9e809d40d2869e3ab1f
/usr/lib/.build-id/b1
/usr/lib/.build-id/b1/be0e43fcc0d1fda1c56672f550046cc37ac9e8
/usr/lib/libprofiler.so.0
/usr/lib/libprofiler.so.0.4.16
/usr/lib/libtcmalloc.so.4
/usr/lib/libtcmalloc.so.4.5.1
/usr/lib/libtcmalloc_and_profiler.so.4
/usr/lib/libtcmalloc_and_profiler.so.4.5.1
/usr/lib/libtcmalloc_debug.so.4
/usr/lib/libtcmalloc_debug.so.4.5.1
/usr/lib/libtcmalloc_minimal.so.4
/usr/lib/libtcmalloc_minimal.so.4.5.1
/usr/lib/libtcmalloc_minimal_debug.so.4
/usr/lib/libtcmalloc_minimal_debug.so.4.5.1

我认为这解释了为什么-ltcmalloc在 Fedora 上无法链接。显然链接器不使用/usr/libor /usr/lib64

答案2

我不确定您为什么没有找到该gperftools-devel软件包,但这就是您正在寻找的软件包。确实,我认为软件包维护者打算让用户安装gperftools,因为该包的描述说

这是一个元包,它提取所有gperftools(和pprof)二进制文件、库和开发头文件,以便您可以使用它们。

gperftools-devel提供 的开发符号链接libtcmalloc。 FC 28 的最新版本时间可以追溯到2018年2月并在所有架构上都取得了成功。安装gperftools拉入gperftools-devel

相关内容