当尝试建立一个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.h
:gcc-i686-linux-android
、libcap-dev
和的文件libklibc-dev
;这三个包中可能有一个是缺失的。
具体来说,对于openvpn3
,当从源代码构建时,您遇到的错误消息列出了文件引用sys/capability.h
- 您可以git blame <refering file>
找到哪个提交引入了 的依赖项sys/capability.h
,并检查该提交以获取有关添加了哪些依赖项的其他线索。 如果新的依赖项是一个未针对 Ubuntu 打包的库,git blame
将使您更接近了解缺少的内容。
我相信你的情况,libcap-dev
正如@lacostenycoder 指出的那样,你忽略了这一点。
我提供这个改进的答案是希望它能让未来的搜索者更直接、更快地了解在哪里可以找到答案。