软件包安装到与现有软件包不同的路径

软件包安装到与现有软件包不同的路径

DPDK 通过管理器安装pkg-config。我使用以下命令从源代码构建:

git clone https://github.com/DPDK/dpdk.git
cd dpdk
meson setup build
cd build
ninja
ninja install
ldconfig

https://doc.dpdk.org/guides/linux_gsg/build_dpdk.html

但是,它安装到了/usr/local/lib/x86_64-linux-gnu/pkgconfig。相比之下,我的所有其他包都位于/usr/lib/x86_64-linux-gnu/pkgconfig

因此pkg-config --list-all找不到我的 DPDK 包。

我甚至设置PKG_CONFIG_PATH并重/usr/lib/x86_64-linux-gnu/pkgconfig试,但它仍然安装到相同的路径。

  1. 有人可以确认这是否是 Ubuntu 的问题以及应如何将其与其他软件包一起正确安装?

  2. 有没有更简单的方法通过 Ubuntu 包管理器安装 DPDK?我找不到。

答案1

您没有“DPDK 软件包”。您从源代码构建了软件,并使用非 Debian 工具 (ninja) 安装了它。这不符合软件包的最低定义。

你可以用这种方式安装软件,但不是错误的. 这不是一个包裹

对于像 Ubuntu 这样的基于 Debian 的系统,你的忍者将 DPDK 安装到正确的位置。

  • /usr/local适用于非 deb 软件,包括您自己从源代码构建的软件。
  • /usr/lib适用于 deb 软件包提供的软件(您的软件包不是)

很明显,你被 DPDK 文档误导了,认为从源代码构建是最好的安装方式。

它不是。

dpdk软件包已在 Ubuntu 存储库中存在多年。

让我们看看如何在 22.10 系统中找到它:(提示:这是第一个结果)
您将获得任何受支持的 Ubuntu 版本的类似结果。

$ apt search dpdk | grep dpdk

dpdk/kinetic 21.11.2-0ubuntu1 amd64
dpdk-dev/kinetic 21.11.2-0ubuntu1 amd64
dpdk-doc/kinetic,kinetic 21.11.2-0ubuntu1 all
dpdk-kmods-dkms/kinetic 0~20220111+git-1ubuntu1 amd64
libdpdk-dev/kinetic 21.11.2-0ubuntu1 amd64
libuhd4.2.0-dpdk/kinetic 4.2.0.1+ds1-1 amd64
libuhd4.2.0-dpdk-tests/kinetic 4.2.0.1+ds1-1 amd64
openvswitch-switch-dpdk/kinetic-updates,kinetic-security 3.0.3-0ubuntu0.22.10.2 amd64

接下来,我们检查一下包裹描述,以验证该dpdk包裹是否真的是我们想要的:

$ apt show dpdk
[... snip ...]
Description: Data Plane Development Kit (runtime)
 DPDK is a set of libraries for fast packet processing. Applications run
 in user-space and communicate directly with dedicated network interfaces.
 .
 This package contains the runtime environment to run DPDK applications.

好的,如果匹配,那么安装有两个步骤:

  1. (可选)删除手动安装的重复项以避免混淆。
  2. sudo apt install dpdk

相关内容