我正在使用 Arch Linux 并尝试创建一个 AUR 文件来下载驱动程序的源代码、编译并安装它。我想知道的是 - 如何检查编译成功所需的包(这样我就可以在 AUR 中声明这些依赖项)?我真的必须分析很长的configure
文件还是有更好的方法?
编辑:或者也许我不应该将构建依赖项添加到 AUR 中的使用依赖项中?
编辑#2:我正在尝试为此创建 AUR:http://www.acs.com.hk/download-driver-unified/6258/ACS-Unified-Driver-Lnx-Mac-113-P.zip
答案1
大多数软件包都希望在安装时有所帮助,因此它们将在README
或INSTALL
文件中包含一些依赖项信息。否则,是的,检查configure
脚本是唯一真正的选择(注意:autoconf
生成configure.log
枚举依赖项,并且其他几个配置脚本在最后打印依赖项摘要,以使打包者更容易)。
对于手头的问题,自述文件是最有用的,它说:
Linux
- pcsclite 1.8.3 or above
- libusb 1.0.9 or above
- flex
- perl
- pkg-config
现在,让我们看一下。 AUR 包可以假设安装了base
一base-devel
组包,这使得事情更容易推理。枚举我们看到的依赖关系:
pkg-config
: 中base-devel
,我们不需要关心它。perl
: 是 的一部分base
,很好。flex
:base-devel
再次。libusb 1.0.9 or above
和pcsclite 1.8.3 or above
pacman -Ss libusb core/libusb 1.0.20-1 Library that provides generic access to USB devices pacman -Ss pcsclite community/pcsclite 1.8.16-1 PC/SC Architecture smartcard middleware library
前滚发行版的美妙之处在于,您可以假设用户拥有最新的软件包(如果他是一个理智的用户,他会pacman -Syu
在安装您的 AUR 软件包之前这样做)。因此我们可以简单地做(内部PKGBUILD
):
depends=(libusb pcsclite)
README
额外注意:有时找到a或INSTALL
谈论的包并不那么容易。在这种情况下谷歌-fu是需要的。然而,arch 还具有pkgfile
哪个数据库,其中哪些文件位于哪个包中。
为了查找要添加到 AUR 包的依赖项,我强烈建议安装pkgfile
,即
pacman -S pkgfile
然后你可以查询可疑包的库,例如
pkgfile -l <package> | grep lib