如何修复致命错误:sys/capability.h:没有此文件或目录

如何修复致命错误:sys/capability.h:没有此文件或目录

当尝试建立一个Openvpn3 来自源代码并遇到了此错误。需要什么包或库来修复此问题?

答案1

这一页包含查找缺失依赖项错误时有用的信息。如果我们在这里搜索,sys/capability.h我们会在页面中找到:

错误:sys/capability.h:没有这样的文件或目录

如果您遇到错误sys/capability.h: No such file or directory,那是因为您的系统上没有安装所需的包。

在 Debian 或 Ubuntu 上,类似下面的操作应该可以工作:

sudo apt-get install libcap-dev

答案2

一般来说,要查找哪个包包含丢失的文件,您可以使用apt-file(默认情况下未安装):

$ apt-file search sys/capability.h

gcc-i686-linux-android: /usr/x86_64-linux-gnu/i686-linux-android/include/sys/capability.h
libcap-dev: /usr/include/sys/capability.h
libklibc-dev: /usr/lib/klibc/include/sys/capability.h

上面的例子列出了三个包,它们提供了一个名为sys/capability.hgcc-i686-linux-androidlibcap-dev和的文件libklibc-dev;这三个包中可能有一个是缺失的。

具体来说,对于openvpn3,当从源代码构建时,您遇到的错误消息列出了文件引用sys/capability.h- 您可以git blame <refering file>找到哪个提交引入了 的依赖项sys/capability.h,并检查该提交以获取有关添加了哪些依赖项的其他线索。 如果新的依赖项是一个未针对 Ubuntu 打包的库,git blame将使您更接近了解缺少的内容。

我相信你的情况,libcap-dev正如@lacostenycoder 指出的那样,你忽略了这一点。

我提供这个改进的答案是希望它能让未来的搜索者更直接、更快地了解在哪里可以找到答案。

相关内容