我喜欢这种方式,例如 ArchLinux'yaourt
(或者如果你没那么懒的话,abs
+ makepkg
;从我目前读到的来看,Gentoo 的ebuild
以及)自动处理获取、编译和安装依赖项(以及他们的依赖项等)在编译所需的包之前。目前我正在使用一个本身不提供这种机制的系统(aBuffalo LinkStation Pro 双核通过 ssh 进行 root 访问)并且需要编译一些具有极其复杂的依赖链的程序,手动爬行确实很乏味,所以我想知道是否有
- 与上述工具类似的工具,它基本上需要一个源代码目录(或
.tar.gz
或 git-repo 或...),并且在编译之前检查是否缺少依赖项,或多或少自动获取其源代码(递归直到解决所有依赖项) - 一种配置这些工具之一的方法,使其尊重与其自己的发行版的偏差,例如安装所有内容
/opt
而不是尝试升级(特定于固件的)内核?
果然,一般情况下有很多特殊性,但为此假设 90% 的依赖项只需要运行./configure --prefix=/opt && make && make install
。
答案1
我不认为这样的事情真的可行,所以简短的答案是:
不
您提到的示例确实是为从头开始构建所有内容而定制的,因此您有一个工作流程可以做到这一点(构建所有内容,包括依赖项)。
其他发行版(例如 Debian 及其所有衍生版本)更专注于下载预编译的二进制文件(而不是从头开始在本地构建它们),因此它们不提供仅自动编译依赖项的框架。
更新
就简单地解决给定包的依赖关系而言,这是发行版的主要任务之一维护者面临的问题:找出哪些软件包需要哪些(版本的)库,...
由于发行版重人类力量进入这项任务,我怀疑它是否可以自动化。