如何知道命令在我的 Linux 发行版中是否可用

san*_*ika 1 linux libraries pkg-config

我们正在为我们的 USB 产品提供一些 linux 的驱动程序。在我们的驱动程序代码中,为了使其独立于发行版,我们必须动态获取发行版名称,并在运行时查找每个目标发行版中是否有可用的库。

为此,我们需要运行一些命令,如 ldconfig、pkg-config 等。这个问题与this相关。因此,根据答案,某些发行版可能有命令,并且在执行这些命令之前找出这些命令在发行版中是否可用总是好的。

所以问题是找出这些命令是否可用。我正在考虑检查可执行文件是否存在。例如,

if [ -f /usr/bin/pkg-config ] ; then
Run Code Online (Sandbox Code Playgroud)

还有其他更好的方法来做到这一点吗?

Ser*_*rge 5

我会这样做:

if type pkg-config >/dev/null 2>/dev/null; then …
Run Code Online (Sandbox Code Playgroud)

但是正如我对您之前的问题所评论的那样,pkg-config即使在使用pkg-config. 为什么不希望根据发行版特定标准打包驱动程序?Debian 和 RedHat 软件包都有要求安装特定库/版本的规定。

与您为使您的设备驱动程序打包所做的工作相比,即使对于几个不同的发行版也几乎算不了什么。