我正在尝试安装 pcsc-lite 并注意到文档说需要 libudev。
当我尝试安装 libudev 时,出现以下信息:
sudo apt-get install libudev
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
E: Unable to locate package libudev
但是当我安装 libudev-dev 时,没有遇到任何问题。
sudo apt-get install libudev-dev
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages were automatically installed and are no longer required:
libraspberrypi0 libwpe-1.0-1 libwpebackend-fdo-1.0-1
Use 'sudo apt autoremove' to remove them.
The following NEW packages will be installed:
libudev-dev
0 upgraded, 1 newly installed, 0 to remove and 21 not upgraded.
通过安装 libudev-dev 我是否也安装了 libudev?
您的安装尝试
libudev
失败,因为没有这样的包。在 Debian 及其衍生产品(使用 的发行版apt
)中,库包的命名方式通常反映了库的“soname”,即包括库的 ABI“版本”指示。在libudev
的情况下,包名为libudev1
。lib…
-dev
不附带库二进制文件的软件包,即运行时使用库的程序所需的一切。有相应的-dev
软件包附带构建依赖库的程序所需的一切。这些软件包通常不编码版本。在libudev
的情况下,软件包名为libudev-dev
,正如您所发现的。使用库构建还需要库本身,因此-dev
软件包依赖于匹配的库软件包(因此是一种安装库的简单方法,而不必知道库软件包的具体名称)。在您的设置中,安装
libudev-dev
仅安装了-dev
包;这是因为libudev1
已经安装了。如果您尝试构建 pcsc-lite,则-dev
无论如何都需要该包。请参阅libc6-dev 和 libc6 之间的区别,了解另一个示例。
一般来说,对于任何给定的包
package
:package
是图书馆的集合。package-dev
是用于开发该包所提供的库的库和代码的集合package
。